mister-wolf 2.18.5 → 2.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -1
- package/README.ru.md +33 -14
- package/dist/adapters/cli/cli-entry.d.ts.map +1 -1
- package/dist/adapters/cli/cli-entry.js +10 -1
- package/dist/adapters/cli/cli-entry.js.map +1 -1
- package/dist/adapters/cli/commands/memory-doctor.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-doctor.js.map +1 -1
- package/dist/adapters/cli/commands/memory-sync.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-sync.js +3 -0
- package/dist/adapters/cli/commands/memory-sync.js.map +1 -1
- package/dist/adapters/cli/commands/memory-uninstall.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-uninstall.js.map +1 -1
- package/dist/adapters/cli/commands/memory-upgrade.d.ts +274 -0
- package/dist/adapters/cli/commands/memory-upgrade.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-upgrade.js +1354 -6
- package/dist/adapters/cli/commands/memory-upgrade.js.map +1 -1
- package/dist/adapters/cli/commands/upgrade-projects.d.ts +19 -0
- package/dist/adapters/cli/commands/upgrade-projects.d.ts.map +1 -0
- package/dist/adapters/cli/commands/upgrade-projects.js +85 -0
- package/dist/adapters/cli/commands/upgrade-projects.js.map +1 -0
- package/dist/adapters/cli/report-renderer.d.ts +43 -0
- package/dist/adapters/cli/report-renderer.d.ts.map +1 -0
- package/dist/adapters/cli/report-renderer.js +184 -0
- package/dist/adapters/cli/report-renderer.js.map +1 -0
- package/dist/adapters/fs/projects-registry.d.ts +21 -0
- package/dist/adapters/fs/projects-registry.d.ts.map +1 -1
- package/dist/adapters/fs/projects-registry.js +54 -1
- package/dist/adapters/fs/projects-registry.js.map +1 -1
- package/dist/adapters/fs/update-map.d.ts +102 -0
- package/dist/adapters/fs/update-map.d.ts.map +1 -0
- package/dist/adapters/fs/update-map.js +95 -0
- package/dist/adapters/fs/update-map.js.map +1 -0
- package/dist/adapters/fs/upgrade-lock.d.ts +23 -0
- package/dist/adapters/fs/upgrade-lock.d.ts.map +1 -0
- package/dist/adapters/fs/upgrade-lock.js +59 -0
- package/dist/adapters/fs/upgrade-lock.js.map +1 -0
- package/dist/adapters/render/opencode/opencode-renderer.d.ts +45 -5
- package/dist/adapters/render/opencode/opencode-renderer.d.ts.map +1 -1
- package/dist/adapters/render/opencode/opencode-renderer.js +434 -86
- package/dist/adapters/render/opencode/opencode-renderer.js.map +1 -1
- package/dist/adapters/render/stamp.d.ts +2 -0
- package/dist/adapters/render/stamp.d.ts.map +1 -1
- package/dist/adapters/render/stamp.js +9 -1
- package/dist/adapters/render/stamp.js.map +1 -1
- package/dist/adapters/render/sync-state.d.ts +15 -3
- package/dist/adapters/render/sync-state.d.ts.map +1 -1
- package/dist/adapters/render/sync-state.js +52 -8
- package/dist/adapters/render/sync-state.js.map +1 -1
- package/dist/app/use-cases/decisions.d.ts +247 -0
- package/dist/app/use-cases/decisions.d.ts.map +1 -0
- package/dist/app/use-cases/decisions.js +528 -0
- package/dist/app/use-cases/decisions.js.map +1 -0
- package/dist/app/use-cases/init-project.d.ts.map +1 -1
- package/dist/app/use-cases/init-project.js +34 -1
- package/dist/app/use-cases/init-project.js.map +1 -1
- package/dist/app/use-cases/platform-mismatch.d.ts +2 -1
- package/dist/app/use-cases/platform-mismatch.d.ts.map +1 -1
- package/dist/app/use-cases/platform-mismatch.js.map +1 -1
- package/dist/app/use-cases/project-step.d.ts +71 -0
- package/dist/app/use-cases/project-step.d.ts.map +1 -0
- package/dist/app/use-cases/project-step.js +163 -0
- package/dist/app/use-cases/project-step.js.map +1 -0
- package/dist/app/use-cases/repair-platform.d.ts +2 -1
- package/dist/app/use-cases/repair-platform.d.ts.map +1 -1
- package/dist/app/use-cases/repair-platform.js.map +1 -1
- package/dist/app/use-cases/scan-unregistered.d.ts +25 -0
- package/dist/app/use-cases/scan-unregistered.d.ts.map +1 -0
- package/dist/app/use-cases/scan-unregistered.js +74 -0
- package/dist/app/use-cases/scan-unregistered.js.map +1 -0
- package/dist/app/use-cases/seed-base-playbooks.d.ts +10 -0
- package/dist/app/use-cases/seed-base-playbooks.d.ts.map +1 -1
- package/dist/app/use-cases/seed-base-playbooks.js +54 -13
- package/dist/app/use-cases/seed-base-playbooks.js.map +1 -1
- package/dist/app/use-cases/sync-base-set.d.ts +4 -2
- package/dist/app/use-cases/sync-base-set.d.ts.map +1 -1
- package/dist/app/use-cases/sync-base-set.js +4 -2
- package/dist/app/use-cases/sync-base-set.js.map +1 -1
- package/dist/app/use-cases/uninstall.d.ts +2 -1
- package/dist/app/use-cases/uninstall.d.ts.map +1 -1
- package/dist/app/use-cases/uninstall.js.map +1 -1
- package/dist/app/use-cases/upgrade-projects.d.ts +91 -0
- package/dist/app/use-cases/upgrade-projects.d.ts.map +1 -0
- package/dist/app/use-cases/upgrade-projects.js +494 -0
- package/dist/app/use-cases/upgrade-projects.js.map +1 -0
- package/dist/app/use-cases/verify-against-map.d.ts +52 -0
- package/dist/app/use-cases/verify-against-map.d.ts.map +1 -0
- package/dist/app/use-cases/verify-against-map.js +189 -0
- package/dist/app/use-cases/verify-against-map.js.map +1 -0
- package/dist/domain/line-diff.d.ts +36 -0
- package/dist/domain/line-diff.d.ts.map +1 -0
- package/dist/domain/line-diff.js +175 -0
- package/dist/domain/line-diff.js.map +1 -0
- package/dist/domain/protect-key.d.ts +21 -0
- package/dist/domain/protect-key.d.ts.map +1 -0
- package/dist/domain/protect-key.js +112 -0
- package/dist/domain/protect-key.js.map +1 -0
- package/dist/ports/base-set-renderer.port.d.ts +62 -1
- package/dist/ports/base-set-renderer.port.d.ts.map +1 -1
- package/package.json +3 -2
- package/templates/.wolf/router.log +1 -1
- package/templates/base/AGENTS.md +6 -3
- package/update-map.json +204 -0
|
@@ -25,6 +25,7 @@ async function activeLegacyHead(store, ownerSkill) {
|
|
|
25
25
|
* для каждого шаблона base-set с owner_skill. */
|
|
26
26
|
export async function seedBasePlaybooks(deps) {
|
|
27
27
|
const outcomes = [];
|
|
28
|
+
const missingOnly = deps.mode === 'seed-missing-only';
|
|
28
29
|
const processedOwners = new Set();
|
|
29
30
|
// ponytail: без .sort() — порядок вставки Map функционально не важен
|
|
30
31
|
for (const [file, raw] of deps.files) {
|
|
@@ -35,6 +36,9 @@ export async function seedBasePlaybooks(deps) {
|
|
|
35
36
|
file,
|
|
36
37
|
action: 'skipped',
|
|
37
38
|
reason: `owner_skill=${ownerSkill} already seeded from another template in this run`,
|
|
39
|
+
// 2.19.0: структурный код для сверки (T5) — дедуп означает живое лицо
|
|
40
|
+
// уже посеяно в этом прогоне; не error (риск №2 отчёта T5).
|
|
41
|
+
...(missingOnly ? { kind: 'skipped-live' } : {}),
|
|
38
42
|
});
|
|
39
43
|
continue;
|
|
40
44
|
}
|
|
@@ -55,21 +59,51 @@ export async function seedBasePlaybooks(deps) {
|
|
|
55
59
|
.filter(Boolean),
|
|
56
60
|
legacyHeadId: legacyHead?.id,
|
|
57
61
|
});
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
62
|
+
if (missingOnly) {
|
|
63
|
+
outcomes.push(legacyHead !== null
|
|
64
|
+
? {
|
|
65
|
+
file,
|
|
66
|
+
action: 'created',
|
|
67
|
+
kind: 'legacy-absorbed',
|
|
68
|
+
reason: `seeded from template; superseded legacy howto ${legacyHead.id}`,
|
|
69
|
+
}
|
|
70
|
+
: { file, action: 'created', kind: 'seeded' });
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
outcomes.push(legacyHead !== null
|
|
74
|
+
? {
|
|
75
|
+
file,
|
|
76
|
+
action: 'created',
|
|
77
|
+
reason: `seeded from template; superseded legacy howto ${legacyHead.id}`,
|
|
78
|
+
}
|
|
79
|
+
: { file, action: 'created' });
|
|
80
|
+
}
|
|
65
81
|
continue;
|
|
66
82
|
}
|
|
67
83
|
// лицо есть: идемпотентный skip либо решение о шаблонном обновлении
|
|
68
84
|
if (active.body === body) {
|
|
69
|
-
outcomes.push(
|
|
85
|
+
outcomes.push(missingOnly
|
|
86
|
+
? {
|
|
87
|
+
file,
|
|
88
|
+
action: 'skipped',
|
|
89
|
+
kind: 'skipped-live',
|
|
90
|
+
reason: `live face v${active.version} matches template — untouched (seed-missing-only)`,
|
|
91
|
+
}
|
|
92
|
+
: { file, action: 'skipped', reason: `active face v${active.version} matches template` });
|
|
70
93
|
continue;
|
|
71
94
|
}
|
|
72
95
|
if (active.initiator === 'seed' || active.initiator === 'migration') {
|
|
96
|
+
// seed-missing-only: живое лицо не трогаем — штатное отставание (ADR-3,
|
|
97
|
+
// REQ-03 AC2 / REQ-07): обновление живых лиц — зона Стюарда (кандидат 2.20.0)
|
|
98
|
+
if (missingOnly) {
|
|
99
|
+
outcomes.push({
|
|
100
|
+
file,
|
|
101
|
+
action: 'skipped',
|
|
102
|
+
kind: 'skipped-live',
|
|
103
|
+
reason: `live face v${active.version} lags template (initiator ${active.initiator}) — untouched (seed-missing-only)`,
|
|
104
|
+
});
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
73
107
|
await createFaceVersion(deps, {
|
|
74
108
|
command: 'seed',
|
|
75
109
|
ownerSkill,
|
|
@@ -88,11 +122,18 @@ export async function seedBasePlaybooks(deps) {
|
|
|
88
122
|
});
|
|
89
123
|
}
|
|
90
124
|
else {
|
|
91
|
-
outcomes.push(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
125
|
+
outcomes.push(missingOnly
|
|
126
|
+
? {
|
|
127
|
+
file,
|
|
128
|
+
action: 'diverged',
|
|
129
|
+
kind: 'diverged',
|
|
130
|
+
reason: `diverged: face v${active.version} initiator=${active.initiator} — left untouched (steward zone, D4)`,
|
|
131
|
+
}
|
|
132
|
+
: {
|
|
133
|
+
file,
|
|
134
|
+
action: 'diverged',
|
|
135
|
+
reason: `diverged: face v${active.version} initiator=${active.initiator} — left untouched (steward zone, D4)`,
|
|
136
|
+
});
|
|
96
137
|
}
|
|
97
138
|
}
|
|
98
139
|
return outcomes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed-base-playbooks.js","sourceRoot":"","sources":["../../../src/app/use-cases/seed-base-playbooks.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"seed-base-playbooks.js","sourceRoot":"","sources":["../../../src/app/use-cases/seed-base-playbooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
-
import { BaseSetRenderer, ModelContext } from '../../ports/base-set-renderer.port.js';
|
|
1
|
+
import { BaseSetRenderer, ModelContext, SyncBaseSetOptions } from '../../ports/base-set-renderer.port.js';
|
|
2
2
|
/**
|
|
3
3
|
* Sync (спека §7): только штампованные файлы; orphaned — в отчёт;
|
|
4
4
|
* память (.wolf/, seeded playbook'и) НЕ трогается никогда (мутации — зона Стюарда, D4).
|
|
5
5
|
* Bake-in при sync не используется: opencode = plugin-inject; bake-in — механизм
|
|
6
6
|
* минимальных платформ (вызывается адаптером с BakeResolver, Task 4).
|
|
7
7
|
* models — контекст routing-объекта (§4.5); без него рендер сам применяет omit.
|
|
8
|
+
* opts — режим прохода (§4.12): `takeMutated` (правило 6′) доходит до рендерера
|
|
9
|
+
* как есть, включая `AGENTS.md`: один механизм take/бэкап на все цели (§4.5).
|
|
8
10
|
*/
|
|
9
|
-
export declare function syncBaseSet(renderer: BaseSetRenderer, baseDir: string, models?: ModelContext | 'omit'): Promise<{
|
|
11
|
+
export declare function syncBaseSet(renderer: BaseSetRenderer, baseDir: string, models?: ModelContext | 'omit', opts?: SyncBaseSetOptions): Promise<{
|
|
10
12
|
outcomes: import("../../ports/base-set-renderer.port.js").RenderOutcome[];
|
|
11
13
|
orphaned: string[];
|
|
12
14
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-base-set.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/sync-base-set.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-base-set.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/sync-base-set.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAE1G;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,EAC9B,IAAI,CAAC,EAAE,kBAAkB;;;GAG1B"}
|
|
@@ -4,8 +4,10 @@
|
|
|
4
4
|
* Bake-in при sync не используется: opencode = plugin-inject; bake-in — механизм
|
|
5
5
|
* минимальных платформ (вызывается адаптером с BakeResolver, Task 4).
|
|
6
6
|
* models — контекст routing-объекта (§4.5); без него рендер сам применяет omit.
|
|
7
|
+
* opts — режим прохода (§4.12): `takeMutated` (правило 6′) доходит до рендерера
|
|
8
|
+
* как есть, включая `AGENTS.md`: один механизм take/бэкап на все цели (§4.5).
|
|
7
9
|
*/
|
|
8
|
-
export async function syncBaseSet(renderer, baseDir, models) {
|
|
9
|
-
return renderer.syncBaseSet(baseDir, models);
|
|
10
|
+
export async function syncBaseSet(renderer, baseDir, models, opts) {
|
|
11
|
+
return renderer.syncBaseSet(baseDir, models, opts);
|
|
10
12
|
}
|
|
11
13
|
//# sourceMappingURL=sync-base-set.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-base-set.js","sourceRoot":"","sources":["../../../src/app/use-cases/sync-base-set.ts"],"names":[],"mappings":"AAGA
|
|
1
|
+
{"version":3,"file":"sync-base-set.js","sourceRoot":"","sources":["../../../src/app/use-cases/sync-base-set.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAyB,EACzB,OAAe,EACf,MAA8B,EAC9B,IAAyB;IAEzB,OAAO,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACrD,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import type { SyncStateFiles } from '../../adapters/render/sync-state.js';
|
|
1
2
|
import type { PlatformAdapter } from '../../ports/platform-adapter.port.js';
|
|
2
3
|
export interface UninstallDeps {
|
|
3
4
|
baseDir: string;
|
|
4
5
|
/** Записи wolf-sync-state; null — файла нет; 'broken' — битый JSON (F-11: без fallback). */
|
|
5
|
-
syncStateFiles: () =>
|
|
6
|
+
syncStateFiles: () => SyncStateFiles | null | 'broken';
|
|
6
7
|
readFile: (abs: string) => string | null;
|
|
7
8
|
exists: (abs: string) => boolean;
|
|
8
9
|
listFiles: (dir: string) => string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/uninstall.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAW5E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,4FAA4F;IAC5F,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/uninstall.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAW5E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,4FAA4F;IAC5F,cAAc,EAAE,MAAM,cAAc,GAAG,IAAI,GAAG,QAAQ,CAAC;IACvD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACzC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACjC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACrC,yDAAyD;IACzD,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACrC,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3C,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,2FAA2F;AAC3F,wBAAsB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CA8F/E;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACrC,OAAO,CAAC,eAAe,CAAC,CAmD1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/app/use-cases/uninstall.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,8EAA8E;AAC9E,qFAAqF;AACrF,0FAA0F;AAC1F,sDAAsD;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/app/use-cases/uninstall.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { type RegisteredProject } from '../../adapters/fs/projects-registry.js';
|
|
2
|
+
import { type UpdateMap } from '../../adapters/fs/update-map.js';
|
|
3
|
+
import type { Counter, ReportNode } from '../../adapters/cli/report-renderer.js';
|
|
4
|
+
import { runProjectStep, type ProjectReport, type ProjectStepDeps } from './project-step.js';
|
|
5
|
+
import { type VerifyResult } from './verify-against-map.js';
|
|
6
|
+
import { scanUnregistered } from './scan-unregistered.js';
|
|
7
|
+
import type { JsonPlan, JsonProject } from './decisions.js';
|
|
8
|
+
export interface UpgradeProjectsDeps {
|
|
9
|
+
/** Реестр проектов; listStrict различает «пусто» и «нечитаем» (T4). */
|
|
10
|
+
registry: {
|
|
11
|
+
listStrict(): Promise<RegisteredProject[]>;
|
|
12
|
+
};
|
|
13
|
+
/** Карта установленного релиза (T1), один раз на проход. */
|
|
14
|
+
loadMap: () => UpdateMap;
|
|
15
|
+
/** Проектный шаг (T6); мок в юнит-контуре, дефолт — runProjectStep. */
|
|
16
|
+
runStep?: typeof runProjectStep;
|
|
17
|
+
/** Фабрика проектных deps: адаптеры памяти привязаны к корню проекта
|
|
18
|
+
* (store/log/lock — per-project), один набор на весь парк невозможен.
|
|
19
|
+
* Собирает вызывающий слой (T8-контейнер), не проход. */
|
|
20
|
+
makeStepDeps: (root: string) => ProjectStepDeps;
|
|
21
|
+
/** Lock параллельного upgrade (T4); отсутствует — проход без lock. */
|
|
22
|
+
upgradeLock?: {
|
|
23
|
+
acquire(id: string): boolean;
|
|
24
|
+
release(id: string): void;
|
|
25
|
+
};
|
|
26
|
+
/** Скан незарегистрированных (REQ-09, T12); отсутствует — скан не выполняется
|
|
27
|
+
* (изоляция юнит-контура: дефолт скана — домашний каталог). */
|
|
28
|
+
scan?: typeof scanUnregistered;
|
|
29
|
+
}
|
|
30
|
+
export interface UpgradeProjectsOpts {
|
|
31
|
+
/** --yes: применить список без вопросов (REQ-02). */
|
|
32
|
+
yes?: boolean;
|
|
33
|
+
/** TTY-режим caller'а: подтверждение возможно только в TTY. */
|
|
34
|
+
tty?: boolean;
|
|
35
|
+
/** Интерактивное подтверждение списка; вызывается при tty && !yes.
|
|
36
|
+
* Аргумент — plans-секция (список+категории REQ-02): caller показывает её
|
|
37
|
+
* ДО вопроса (design «Фазы»: список+категории → подтверждение). */
|
|
38
|
+
confirm?: (plans: ReportNode) => boolean | Promise<boolean>;
|
|
39
|
+
/** Дефолт часов шагов (NFR-03), если фабрика шага не задала свои. */
|
|
40
|
+
now?: () => number;
|
|
41
|
+
}
|
|
42
|
+
export interface UpgradeRunResult {
|
|
43
|
+
exitCode: 0 | 1 | 2;
|
|
44
|
+
report: ReportNode;
|
|
45
|
+
counters: Counter[];
|
|
46
|
+
/** Машинное представление прогона (design §4.13, `--json`): документ собирает
|
|
47
|
+
* CLI-слой — здесь только факты прохода (без решений/лиц/защит). */
|
|
48
|
+
projects: JsonProject[];
|
|
49
|
+
plan: JsonPlan;
|
|
50
|
+
}
|
|
51
|
+
/** Статус проекта в проходе (REQ-05, палитра T3); T9 (--here) переиспользует
|
|
52
|
+
* словарь точечным импортом — единая семантика статусов для одной поверхности. */
|
|
53
|
+
export type OutcomeStatus = 'updated' | 'up-to-date' | 'needs-decision' | 'error';
|
|
54
|
+
/** Статус плана: показан, пропущен (гварды прохода). Экспорт (T7, §4.7):
|
|
55
|
+
* реестр решений использует тот же фильтр — второй реализации статусов нет. */
|
|
56
|
+
export type PlanStatus = 'worktree' | 'pinned' | 'missing';
|
|
57
|
+
export interface ProjectPlan {
|
|
58
|
+
name: string;
|
|
59
|
+
/** realpath (несуществующий путь — как есть в реестре). */
|
|
60
|
+
path: string;
|
|
61
|
+
status: PlanStatus | null;
|
|
62
|
+
/** Справочный состав (REQ-02): max set= по штампам свидетеля рендера. */
|
|
63
|
+
composition: string | null;
|
|
64
|
+
/** Минимальный set= — свидетель неоднородности штампов. */
|
|
65
|
+
stampFloor: string | null;
|
|
66
|
+
}
|
|
67
|
+
/** Файлы прогона для `--json.projects[].files`: путь, код, признак карты. */
|
|
68
|
+
export declare function jsonProjectFiles(report: ProjectReport, map: UpdateMap): JsonProject['files'];
|
|
69
|
+
export declare function runUpgradeProjects(deps: UpgradeProjectsDeps, opts?: UpgradeProjectsOpts): Promise<UpgradeRunResult>;
|
|
70
|
+
/** План одной записи реестра: realpath → статусы (порядок гвардов: missing →
|
|
71
|
+
* worktree → pinned); состав/штамп — справочно, только для активных планов.
|
|
72
|
+
* Экспорт (T7, design §4.7): `collectDecisions` нумерует те же активные проекты —
|
|
73
|
+
* второй реализации фильтра worktree/pinned/missing нет. */
|
|
74
|
+
export declare function planOf(entry: RegisteredProject): ProjectPlan;
|
|
75
|
+
/** Статус проекта по отчёту шага (REQ-05): done с фактическими изменениями
|
|
76
|
+
* этого прохода — updated, без — up-to-date; needs-decision/error — как есть.
|
|
77
|
+
* «Действие» берём из фаз шага, не из кодов сверки: verify-код removed —
|
|
78
|
+
* состояние «подтверждённо отсутствует» (идемпотентность NFR-02), в повторном
|
|
79
|
+
* прогоне это не изменение. */
|
|
80
|
+
export declare function statusOf(report: ProjectReport): OutcomeStatus;
|
|
81
|
+
/** Категории карты (числами, REQ-02/R11.6) — считаются один раз по карте.
|
|
82
|
+
* Экспорт — точечный reuse для T9 (--here, одиночный план). */
|
|
83
|
+
export declare function mapCategories(map: UpdateMap): Record<'new' | 'changed' | 'deprecated' | 'removed', number>;
|
|
84
|
+
/** Отображение статуса в строке отчёта (REQ-05): «требует решения» — текст
|
|
85
|
+
* счётчика, не литерал ExitKind шага. Экспорт — точечный reuse для T9 (--here). */
|
|
86
|
+
export declare const STATUS_TEXT: Record<OutcomeStatus, string>;
|
|
87
|
+
export declare function verifyNameLines(verify: VerifyResult, map: UpdateMap): ReportNode[];
|
|
88
|
+
/** Дайджест бэкапов проекта (§4.12): файл и путь копии; take — «took base»,
|
|
89
|
+
* удаление — «removed». Единственная реализация формата: проход и `--here`. */
|
|
90
|
+
export declare function backupDigestLines(report: ProjectReport): ReportNode[];
|
|
91
|
+
//# sourceMappingURL=upgrade-projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrade-projects.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/upgrade-projects.ts"],"names":[],"mappings":"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"}
|