Spațiu de programare cu AI
Abateri în blocarea dependențelor
Comparați specificațiile directe ale manifestului cu intrările rădăcină din fișierul de blocare.
● ● ●Lockstep Desk●
Fluxuri de lucru · Abateri în blocarea dependențelor ×
const root = lockfile.packages?.[""];
if (!root) return showDrift(["lockfile.root.missing"]);
const drift = [];
for (const group of ["dependencies", "devDependencies", "optionalDependencies"]) {
const wanted = manifest[group] ?? {};
const pinned = root[group] ?? {};
for (const name of new Set([...Object.keys(wanted), ...Object.keys(pinned)])) {
if (wanted[name] !== pinned[name]) drift.push(group + ":" + name);
}
}
return drift.length ? showDrift(drift) : reportAgreement();✳Abateri în blocarea dependențelor
✓ ModificăriVerifică înainte de aplicare ↗
Ilustrarea spațiului de lucru
- Proiect
- Raportați absențe sau schimbări fără rescriere ori instalare de pachete.
- Verifică înainte de aplicare
- Compară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.
- Modele
- Configurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.
Fluxuri de lucru
const root = lockfile.packages?.[""];
if (!root) return showDrift(["lockfile.root.missing"]);
const drift = [];
for (const group of ["dependencies", "devDependencies", "optionalDependencies"]) {
const wanted = manifest[group] ?? {};
const pinned = root[group] ?? {};
for (const name of new Set([...Object.keys(wanted), ...Object.keys(pinned)])) {
if (wanted[name] !== pinned[name]) drift.push(group + ":" + name);
}
}
return drift.length ? showDrift(drift) : reportAgreement();