mister-wolf 2.19.0 → 2.20.1
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 +19 -2
- 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-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 +143 -2
- package/dist/adapters/cli/commands/memory-upgrade.d.ts.map +1 -1
- package/dist/adapters/cli/commands/memory-upgrade.js +887 -41
- package/dist/adapters/cli/commands/memory-upgrade.js.map +1 -1
- package/dist/adapters/cli/commands/upgrade-projects.d.ts +4 -2
- package/dist/adapters/cli/commands/upgrade-projects.d.ts.map +1 -1
- package/dist/adapters/cli/commands/upgrade-projects.js +17 -7
- package/dist/adapters/cli/commands/upgrade-projects.js.map +1 -1
- package/dist/adapters/platforms/index.d.ts.map +1 -1
- package/dist/adapters/platforms/index.js +2 -1
- package/dist/adapters/platforms/index.js.map +1 -1
- package/dist/adapters/platforms/opencode-adapter.d.ts +13 -4
- package/dist/adapters/platforms/opencode-adapter.d.ts.map +1 -1
- package/dist/adapters/platforms/opencode-adapter.js +278 -55
- package/dist/adapters/platforms/opencode-adapter.js.map +1 -1
- package/dist/adapters/platforms/opencode-config-keys.d.ts +78 -0
- package/dist/adapters/platforms/opencode-config-keys.d.ts.map +1 -0
- package/dist/adapters/platforms/opencode-config-keys.js +169 -0
- package/dist/adapters/platforms/opencode-config-keys.js.map +1 -0
- package/dist/adapters/render/opencode/opencode-renderer.d.ts +35 -7
- package/dist/adapters/render/opencode/opencode-renderer.d.ts.map +1 -1
- package/dist/adapters/render/opencode/opencode-renderer.js +395 -115
- 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/doctor.d.ts.map +1 -1
- package/dist/app/use-cases/doctor.js +6 -0
- package/dist/app/use-cases/doctor.js.map +1 -1
- package/dist/app/use-cases/init-project.d.ts.map +1 -1
- package/dist/app/use-cases/init-project.js +39 -3
- 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 +20 -1
- package/dist/app/use-cases/project-step.d.ts.map +1 -1
- package/dist/app/use-cases/project-step.js +101 -15
- package/dist/app/use-cases/project-step.js.map +1 -1
- 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 +4 -1
- package/dist/app/use-cases/repair-platform.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/tool-librarian.d.ts.map +1 -1
- package/dist/app/use-cases/tool-librarian.js +3 -1
- package/dist/app/use-cases/tool-librarian.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 +30 -0
- package/dist/app/use-cases/upgrade-projects.d.ts.map +1 -1
- package/dist/app/use-cases/upgrade-projects.js +119 -4
- package/dist/app/use-cases/upgrade-projects.js.map +1 -1
- package/dist/app/use-cases/verify-against-map.d.ts +5 -1
- package/dist/app/use-cases/verify-against-map.d.ts.map +1 -1
- package/dist/app/use-cases/verify-against-map.js +34 -6
- package/dist/app/use-cases/verify-against-map.js.map +1 -1
- 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 +51 -3
- package/dist/ports/base-set-renderer.port.d.ts.map +1 -1
- package/dist/ports/platform-adapter.port.d.ts +8 -2
- package/dist/ports/platform-adapter.port.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/.wolf/router.log +1 -1
- package/templates/base/AGENTS.md +6 -3
- package/update-map.json +2 -2
|
@@ -7,7 +7,10 @@ import { renderConfigYaml } from '../../adapters/fs/config-file.js';
|
|
|
7
7
|
import { configPath } from '../../adapters/fs/project-paths.js';
|
|
8
8
|
import { writeFileAtomic } from '../../adapters/fs/markdown-memory-store.js';
|
|
9
9
|
import { UserFacingError } from '../../domain/errors.js';
|
|
10
|
+
import { CONFIG_KEYS } from '../../adapters/platforms/opencode-config-keys.js';
|
|
10
11
|
import { addMemoryObject } from './add-memory-object.js';
|
|
12
|
+
/** Пути wolf-ключей для сообщений — из реестра (§6.2): литералов путей в use-case нет. */
|
|
13
|
+
const KEY_PATHS = CONFIG_KEYS.map((key) => key.writePath.join('.'));
|
|
11
14
|
/** REQ-04 (B0, design §3.4): базовые агенты набора — инвариант контракта
|
|
12
15
|
* BaseSetSpec: каждому agent_id соответствует активное лицо с
|
|
13
16
|
* owner_skill === agent_id (доставка plugin-inject ищет лицо по agent-id). */
|
|
@@ -191,7 +194,40 @@ export async function initProject(deps, baseDir, input) {
|
|
|
191
194
|
}
|
|
192
195
|
}
|
|
193
196
|
else {
|
|
194
|
-
//
|
|
197
|
+
// §4.14 (REQ-04): без --platform платформа уже настроена — чиним только
|
|
198
|
+
// отсутствующую/испорченную wolf-запись в СУЩЕСТВУЮЩЕМ конфиге. Новый конфиг
|
|
199
|
+
// не создаём (WP1: минимальный init остаётся минимальным), битый JSONC —
|
|
200
|
+
// fail-soft skipped (exit 0). Условие «надо ли писать» живёт только в
|
|
201
|
+
// writeConfig — второй копии каноничности здесь нет (design §4.14).
|
|
202
|
+
const BROKEN = Symbol('broken-config');
|
|
203
|
+
for (const adapter of deps.adapters) {
|
|
204
|
+
if (!adapter.detect(baseDir))
|
|
205
|
+
continue;
|
|
206
|
+
const cfg = await adapter.readConfig(baseDir).catch(() => BROKEN);
|
|
207
|
+
if (cfg === null)
|
|
208
|
+
continue; // конфиг-файла нет — минимальный init его не создаёт
|
|
209
|
+
if (cfg === BROKEN) {
|
|
210
|
+
platformOutcomes.push({
|
|
211
|
+
platform: adapter.id,
|
|
212
|
+
action: 'skipped',
|
|
213
|
+
reason: 'config is not valid JSONC — fix it first',
|
|
214
|
+
});
|
|
215
|
+
continue;
|
|
216
|
+
}
|
|
217
|
+
const r = await adapter.writeConfig(baseDir, deps.mcpCommand);
|
|
218
|
+
const repaired = r.action === 'written' || r.action === 'replaced';
|
|
219
|
+
platformOutcomes.push({
|
|
220
|
+
platform: adapter.id,
|
|
221
|
+
action: r.action,
|
|
222
|
+
...(repaired
|
|
223
|
+
? { reason: `init: repaired missing/corrupted ${adapter.id} wolf entry` }
|
|
224
|
+
: r.reason !== undefined
|
|
225
|
+
? { reason: r.reason }
|
|
226
|
+
: {}),
|
|
227
|
+
...(r.configFile !== undefined ? { configFile: r.configFile } : {}),
|
|
228
|
+
...(r.keys !== undefined ? { keys: r.keys } : {}),
|
|
229
|
+
});
|
|
230
|
+
}
|
|
195
231
|
}
|
|
196
232
|
// §4 п.8: реестр проектов
|
|
197
233
|
await deps.registry.register(baseDir, CURRENT_SCHEMA_VERSION);
|
|
@@ -289,11 +325,11 @@ function renderInitReportBody(deps, input, outcomes) {
|
|
|
289
325
|
}
|
|
290
326
|
// §4.4 граничный случай: явный выбор без opencode — набор отрендерен, но MCP не подключён (осознанное состояние)
|
|
291
327
|
if (input.platformChoice !== undefined && !input.platformChoice.includes('opencode')) {
|
|
292
|
-
needsFix.push(
|
|
328
|
+
needsFix.push(`- opencode not in the --platform list: Wolf agents are rendered into .opencode/, but ${KEY_PATHS.join('/')} are not written; connect: wolf init --platform opencode,…`);
|
|
293
329
|
}
|
|
294
330
|
const mcpWritten = platformOutcomes.some((o) => o.action === 'written' || o.action === 'replaced');
|
|
295
331
|
if (mcpWritten)
|
|
296
|
-
needsFix.push(
|
|
332
|
+
needsFix.push(`- connect MCP: restart the platform (opencode will pick up ${KEY_PATHS.join(', ')})`);
|
|
297
333
|
return [
|
|
298
334
|
'## Done (made)',
|
|
299
335
|
...made,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-project.js","sourceRoot":"","sources":["../../../src/app/use-cases/init-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,IAAI,MAAM,SAAS,CAAC;AAW3B,OAAO,EAA8B,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAazD;;8EAE8E;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,SAAS;IACT,eAAe;IACf,SAAS;IACT,oBAAoB;IACpB,mBAAmB;IACnB,iBAAiB;CACT,CAAC;AAEX,iEAAiE;AACjE,MAAM,UAAU,qBAAqB,CAAC,YAA8B;IAClE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC;IACrC,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC;AA2ED,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAEtD;wDACwD;AACxD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAkB,EAAE,OAAe,EAAE,KAAuB;IACzF,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,mFAAmF;IACnF,gFAAgF;IAChF,qEAAqE;IACrE,MAAM,IAAI,GAAG,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IACrD,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9E,MAAM,OAAO,GAAoB;QAC/B;YACE,SAAS,EAAE,UAAU;YACrB,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;YAChC,MAAM,EAAE,iDAAiD;SAC1D;QACD,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,uCAAuC,EAAE;QAC1G;YACE,SAAS,EAAE,WAAW;YACtB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;YAClC,MAAM,EAAE,gEAAgE;SACzE;QACD;YACE,SAAS,EAAE,UAAU;YACrB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM;YACxD,MAAM,EAAE,KAAK,CAAC,IAAI;gBAChB,CAAC,CAAC,gFAAgF;gBAClF,CAAC,CAAC,6DAA6D;SAClE;QACD;YACE,SAAS,EAAE,WAAW;YACtB,MAAM,EAAE,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;YACjG,MAAM,EAAE,KAAK,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,qBAAqB;SACrG;QACD,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,kCAAkC,EAAE;QAC1G;YACE,SAAS,EAAE,cAAc;YACzB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM;YAC3D,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,eAAe;SAC5E;QACD;YACE,SAAS,EAAE,WAAW;YACtB,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;YACxE,MAAM,EAAE,uEAAuE;SAChF;KACF,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC;AAqBD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAAW,EAAE,eAAe,CAAU,CAAC;AAExE,MAAM,oBAAoB,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;AAE7G,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAkB;IACrD,gFAAgF;IAChF,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAC3B,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,MAAM,KAAK,QAAQ;QACpB,CAAwB,CAAC,KAAK,KAAK,SAAS;QAC7C,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACpD,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,oBAAoB,CACjC,OAAwB,EACxB,OAAe,EACf,GAAe;IAEf,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,OAAO,GAAwB;QACnC,QAAQ,EAAE,OAAO,CAAC,EAAE;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC;IACF,IAAI,OAAO,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,OAAO;YAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IACzC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAqB,EACrB,OAAe,EACf,KAAuB;IAEvB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,eAAe,CACvB,yHAAyH,CAC1H,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAEtC,kEAAkE;IAClE,MAAM,SAAS,GAAmC,IAAI,CAAC,eAAe;QACpE,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;QACrC,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,OAAO,GAAG;QACd,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CAAC;IAEF,2FAA2F;IAC3F,MAAM,eAAe,GAAqB,EAAE,CAAC;IAC7C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,eAAe,CAAC,IAAI,CAAC;gBACnB,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,mDAAmD;aAC5D,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,IAAI,CAClB,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAC5G,CAAC;YACF,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC5D,qEAAqE;gBACrE,mEAAmE;gBACnE,mEAAmE;gBACnE,oDAAoD;gBACpD,MAAM,YAAY,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;qBAC3D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC;qBACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAA+B,CAAC,WAAW,CAAC;qBACxD,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;gBACrD,MAAM,UAAU,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;gBACvD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,eAAe,CAAC,IAAI,CAAC;wBACnB,IAAI,EAAE,kBAAkB;wBACxB,MAAM,EAAE,UAAU;wBAClB,MAAM,EAAE,iDAAiD,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB;qBAC/F,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,MAAM,gBAAgB,GAA0B,EAAE,CAAC;IACnD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,kEAAkE;QAClE,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAC,CAAC;IAChH,CAAC;SAAM,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QAC9C,8FAA8F;QAC9F,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC7C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3B,gBAAgB,CAAC,IAAI,CAAC,MAAM,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YACvF,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;gBAClD,gBAAgB,CAAC,IAAI,CAAC;oBACpB,QAAQ,EAAE,OAAO,CAAC,EAAE;oBACpB,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,eAAe;iBAC3E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,oFAAoF;IACtF,CAAC;IAED,0BAA0B;IAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;IAE9D,6FAA6F;IAC7F,IAAI,UAA2C,CAAC;IAChD,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,UAAU,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE;gBAChD,IAAI,EAAE,MAAM,EAAE,+CAA+C;gBAC7D,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,gBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE;gBAC1C,IAAI,EAAE,oBAAoB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC;gBAC9E,SAAS,EAAE,WAAW;gBACtB,IAAI,EAAE,CAAC,GAAG,gBAAgB,CAAC;gBAC3B,UAAU,EAAE,GAAG;aAChB,CAAC,CAAC;YACH,UAAU,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IAED,uFAAuF;IACvF,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;QACrE,MAAM,eAAe,CAAC,OAAO,EAAE;YAC7B,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,wCAAwC;YAC/C,IAAI,EAAE,KAAK,CAAC,OAAO;YACnB,SAAS,EAAE,WAAW;YACtB,IAAI,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;AACrF,CAAC;AAED,yDAAyD;AACzD,SAAS,oBAAoB,CAC3B,IAAqB,EACrB,KAAuB,EACvB,QAGC;IAED,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;IACvD,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3F,MAAM,iBAAiB,GACrB,KAAK,CAAC,cAAc;QACpB,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1G,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC;IAChD,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IAErE,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;YAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClH,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACjC,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAClH,CAAC;IACD,IAAI,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI,CAAC,gBAAgB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,aAAa,cAAc,GAAG,CAAC,CAAC;IAC7F,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CACP,4GAA4G,CAC7G,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CACP,oBAAoB,KAAK,CAAC,MAAM,CAAC,OAAO,aAAa,WAAW,8CAA8C,CAC/G,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;IACtG,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,mCAAmC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9F,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,gCAAgC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9G,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,IAAI,CAAC,WAAW;QAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAChE,QAAQ,CAAC,IAAI,CAAC,WAAW,sBAAsB,EAAE,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,eAAe,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEjD,kEAAkE;IAClE,MAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,EAAE,OAAO,CAAC;IACnF,IAAI,SAAS,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC3D,CAAC;SAAM,IAAI,SAAS,EAAE,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,eAAe,SAAS,CAAC,GAAG,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACxF,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACjC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,SAAS,EAAE,MAAM,KAAK,aAAa,EAAE,CAAC;QACxC,QAAQ,CAAC,IAAI,CACX,cAAc,SAAS,CAAC,OAAO,6EAA6E,CAC7G,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,EAAE,MAAM,KAAK,aAAa,EAAE,CAAC;QACxC,QAAQ,CAAC,IAAI,CACX,2CAA2C,SAAS,CAAC,GAAG,IAAI,cAAc,mCAAmC,CAC9G,CAAC;IACJ,CAAC;IACD,iHAAiH;IACjH,IAAI,KAAK,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACrF,QAAQ,CAAC,IAAI,CACX,sLAAsL,CACvL,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC;IACnG,IAAI,UAAU;QACZ,QAAQ,CAAC,IAAI,CACX,wGAAwG,CACzG,CAAC;IAEJ,OAAO;QACL,gBAAgB;QAChB,GAAG,IAAI;QACP,EAAE;QACF,qBAAqB;QACrB,GAAG,KAAK;QACR,EAAE;QACF,6BAA6B;QAC7B,GAAG,QAAQ;KACZ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAe;IAClD,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,GAAG,GAAkB,IAAI,CAAC;IAC9B,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,oCAAoC;IAC9C,CAAC;IACD,wEAAwE;IACxE,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,GAAG,SAAS,CAAC,CAAC,oCAAoC;IAC1D,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO;IAE1D,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1D,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;IAC3D,MAAM,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,CAAC"}
|
|
1
|
+
{"version":3,"file":"init-project.js","sourceRoot":"","sources":["../../../src/app/use-cases/init-project.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SyncStateFiles } from '../../adapters/render/sync-state.js';
|
|
1
2
|
import type { PlatformVersionInfo } from '../../ports/platform-adapter.port.js';
|
|
2
3
|
/** Выпуск, с которого шаблоны плагинов dual (v1+v2 в одном файле) — hotfix 2.14.1. */
|
|
3
4
|
export declare const DUAL_SINCE = "2.14.1";
|
|
@@ -13,7 +14,7 @@ export interface MismatchDeps {
|
|
|
13
14
|
runtime: () => PlatformVersionInfo;
|
|
14
15
|
/** Толерантная загрузка sync-state; null — файла/свидетельства нет. */
|
|
15
16
|
readSyncState: () => {
|
|
16
|
-
files:
|
|
17
|
+
files: SyncStateFiles;
|
|
17
18
|
} | null;
|
|
18
19
|
/** Прочитать файл проекта; null — нет/нечитаем. */
|
|
19
20
|
readFile: (absPath: string) => string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-mismatch.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/platform-mismatch.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,sFAAsF;AACtF,eAAO,MAAM,UAAU,WAAW,CAAC;AAEnC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,OAAO,EAAE,MAAM,mBAAmB,CAAC;IACnC,uEAAuE;IACvE,aAAa,EAAE,MAAM;QAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"platform-mismatch.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/platform-mismatch.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,sFAAsF;AACtF,eAAO,MAAM,UAAU,WAAW,CAAC;AAEnC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,OAAO,EAAE,MAAM,mBAAmB,CAAC;IACnC,uEAAuE;IACvE,aAAa,EAAE,MAAM;QAAE,KAAK,EAAE,cAAc,CAAA;KAAE,GAAG,IAAI,CAAC;IACtD,mDAAmD;IACnD,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CAC9C;AAED,sDAAsD;AACtD,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUjE;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CA8BjG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-mismatch.js","sourceRoot":"","sources":["../../../src/app/use-cases/platform-mismatch.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"platform-mismatch.js","sourceRoot":"","sources":["../../../src/app/use-cases/platform-mismatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,17 +18,30 @@ export interface ProjectStepDeps extends Omit<SeedDeps, 'mode'> {
|
|
|
18
18
|
* оставшиеся removed-цели дают error сверки — план не доведён). */
|
|
19
19
|
export interface ProjectStepOpts {
|
|
20
20
|
confirmedRemovals?: string[];
|
|
21
|
+
/** `--yes` (§4.12): правило 6′ — mutated → бэкап → эталон → свидетель.
|
|
22
|
+
* Хук собирается здесь, рядом с единственной реализацией формата бэкапа. */
|
|
23
|
+
takeMutated?: boolean;
|
|
21
24
|
}
|
|
22
25
|
/** Итог шага по exit-модели design §«Exit-модель»: 0-подобный / требует
|
|
23
26
|
* решения / error. Сам exit-код ставит CLI-слой (T7/T9), не шаг. */
|
|
24
27
|
export type ExitKind = 'done' | 'needs-decision' | 'error';
|
|
28
|
+
/** Локальная копия контента перед удалением/перезаписью (design §4.12, NFR-05):
|
|
29
|
+
* `.wolf/backup/upgrade/<YYYY-MM-DD>/<rel>`, при коллизии — `base-2.ext`,
|
|
30
|
+
* `base-3.ext` … (первый свободный, без перезаписи). Единственная реализация
|
|
31
|
+
* формата на волну: `--resolve` (T7) и `--yes` (T10) используют эту же функцию. */
|
|
32
|
+
export declare function backupLocalFile(root: string, rel: string, content: string, now: Date): Promise<{
|
|
33
|
+
path: string;
|
|
34
|
+
created: boolean;
|
|
35
|
+
}>;
|
|
25
36
|
/** Отчёт по проекту — вход рендера T3 и сводки парка T7. */
|
|
26
37
|
export interface ProjectReport {
|
|
27
38
|
/** Имя (basename) и корень проекта. */
|
|
28
39
|
name: string;
|
|
29
40
|
root: string;
|
|
30
41
|
/** Фазы 1-2: исходы sync; осиротевшие, ОСТАВШИЕСЯ после шага удалений
|
|
31
|
-
* (дрейф без объявления); удалённые в этом проходе (подтверждённые).
|
|
42
|
+
* (дрейф без объявления); удалённые в этом проходе (подтверждённые).
|
|
43
|
+
* `outcomes` включает факты защищённых removed-целей (`protected`): они не
|
|
44
|
+
* удаляются и в `removed` не попадают. */
|
|
32
45
|
sync: {
|
|
33
46
|
outcomes: SyncVerifyOutcome[];
|
|
34
47
|
orphaned: string[];
|
|
@@ -44,6 +57,12 @@ export interface ProjectReport {
|
|
|
44
57
|
};
|
|
45
58
|
/** Фаза 5: строгая сверка с картой — каждый пункт со статусом (T5). */
|
|
46
59
|
verify: VerifyResult;
|
|
60
|
+
/** Перезаписи и удаления с бэкапом локального контента (правила 6′/7 §4.3,
|
|
61
|
+
* §4.12): путь файла и путь копии — вход дайджеста и `--json.projects[].backups`. */
|
|
62
|
+
backups?: Array<{
|
|
63
|
+
file: string;
|
|
64
|
+
backup: string;
|
|
65
|
+
}>;
|
|
47
66
|
/** Замер шага (NFR-03), мс; минимум 1 — разрешение Date.now-обёртки. */
|
|
48
67
|
wallMs: number;
|
|
49
68
|
exitKind: ExitKind;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-step.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/project-step.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"project-step.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/project-step.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAc,eAAe,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACvG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAMjE,OAAO,EAAqB,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC9F,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,yBAAyB,CAAC;AAEjC;;4EAE4E;AAC5E,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC7D,QAAQ,EAAE,eAAe,CAAC;IAC1B,gFAAgF;IAChF,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAC/B,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED;;;mEAGmE;AACnE,MAAM,WAAW,eAAe;IAC9B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;iFAC6E;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;oEACoE;AACpE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,gBAAgB,GAAG,OAAO,CAAC;AAE3D;;;oFAGoF;AACpF,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,IAAI,GACR,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAY7C;AAED,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb;;;8CAG0C;IAC1C,IAAI,EAAE;QAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC/E,oEAAoE;IACpE,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB;+EAC2E;IAC3E,MAAM,EAAE;QAAE,MAAM,EAAE,IAAI,GAAG,UAAU,GAAG,SAAS,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,uEAAuE;IACvE,MAAM,EAAE,YAAY,CAAC;IACrB;0FACsF;IACtF,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,eAAe,EACrB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,SAAS,EACd,IAAI,GAAE,eAAoB,GACzB,OAAO,CAAC,aAAa,CAAC,CA0GxB"}
|
|
@@ -6,41 +6,85 @@
|
|
|
6
6
|
// (контракт для оркестратора T7 и рендера T3). Пофазная фиксация: записи фаз
|
|
7
7
|
// атомарны внутри шагов, сбой фазы k не откатывает k-1 — повтор доводит до
|
|
8
8
|
// конца (NFR-02). Единственная мутация памяти — посев (REQ-07).
|
|
9
|
-
import { existsSync } from 'fs';
|
|
10
|
-
import { unlink } from 'fs/promises';
|
|
11
|
-
import { basename, join } from 'path';
|
|
9
|
+
import { existsSync, readFileSync } from 'fs';
|
|
10
|
+
import { mkdir, unlink } from 'fs/promises';
|
|
11
|
+
import { basename, extname, join } from 'path';
|
|
12
12
|
import { ensureCurrentSchema } from '../../adapters/fs/schema-guard.js';
|
|
13
|
+
import { writeFileAtomic } from '../../adapters/fs/markdown-memory-store.js';
|
|
14
|
+
import { loadSyncState, sha256 } from '../../adapters/render/sync-state.js';
|
|
15
|
+
import { normalizeManaged, parseProtect } from '../../domain/protect-key.js';
|
|
13
16
|
import { syncBaseSet } from './sync-base-set.js';
|
|
14
17
|
import { seedBasePlaybooks } from './seed-base-playbooks.js';
|
|
15
18
|
import { projectPath as mapEntryProjectPath, verifyAgainstMap, } from './verify-against-map.js';
|
|
19
|
+
/** Локальная копия контента перед удалением/перезаписью (design §4.12, NFR-05):
|
|
20
|
+
* `.wolf/backup/upgrade/<YYYY-MM-DD>/<rel>`, при коллизии — `base-2.ext`,
|
|
21
|
+
* `base-3.ext` … (первый свободный, без перезаписи). Единственная реализация
|
|
22
|
+
* формата на волну: `--resolve` (T7) и `--yes` (T10) используют эту же функцию. */
|
|
23
|
+
export async function backupLocalFile(root, rel, content, now) {
|
|
24
|
+
const date = [now.getFullYear(), now.getMonth() + 1, now.getDate()]
|
|
25
|
+
.map((n, i) => (i === 0 ? String(n) : String(n).padStart(2, '0')))
|
|
26
|
+
.join('-');
|
|
27
|
+
const relTarget = `.wolf/backup/upgrade/${date}/${rel}`;
|
|
28
|
+
const ext = extname(relTarget);
|
|
29
|
+
const stem = relTarget.slice(0, relTarget.length - ext.length);
|
|
30
|
+
let path = relTarget;
|
|
31
|
+
for (let n = 2; existsSync(join(root, path)); n++)
|
|
32
|
+
path = `${stem}-${n}${ext}`;
|
|
33
|
+
await mkdir(join(root, path, '..'), { recursive: true });
|
|
34
|
+
await writeFileAtomic(join(root, path), content);
|
|
35
|
+
return { path, created: path === relTarget };
|
|
36
|
+
}
|
|
16
37
|
export async function runProjectStep(deps, root, map, opts = {}) {
|
|
17
38
|
const now = deps.now ?? Date.now;
|
|
18
39
|
const startedAt = now();
|
|
19
40
|
// 1. sync: перезапись / skip-mutated / identical; orphaned — вход шага удалений.
|
|
20
|
-
|
|
41
|
+
// `--yes` включает режим take-on-mutated (§4.3 правило 6′, §4.12): бэкап-хук —
|
|
42
|
+
// та же backupLocalFile, что у удалений (второго формата бэкапа нет).
|
|
43
|
+
const backupHook = (rel, content) => backupLocalFile(root, rel, content, new Date(now())).then((copy) => copy.path);
|
|
44
|
+
const { outcomes: syncOutcomes, orphaned } = await syncBaseSet(deps.renderer, root, deps.models ?? 'omit', opts.takeMutated === true ? { takeMutated: { backup: backupHook } } : undefined);
|
|
21
45
|
// 2. removals: удаляется только объявленное картой И подтверждённое списком
|
|
22
46
|
// REQ-02 (второго подтверждения нет — ADR-4). Прочий orphaned не трогаем.
|
|
47
|
+
// Защищённая цель не удаляется никогда (REQ-05, правило 2 §4.3): она остаётся
|
|
48
|
+
// `protected` с подсказкой, как снять защиту (`--resolve <путь>=keep` снимает
|
|
49
|
+
// ключ, после чего файл снова попадает в список удалений — матрица §4.8).
|
|
23
50
|
const removedTargets = new Set(map.files.filter((e) => e.category === 'removed').map((e) => mapEntryProjectPath(e)));
|
|
24
51
|
const confirmed = new Set(opts.confirmedRemovals ?? []);
|
|
25
52
|
const removed = [];
|
|
53
|
+
const removalBackups = [];
|
|
54
|
+
const heldRemovals = [];
|
|
26
55
|
for (const p of orphaned) {
|
|
27
56
|
if (!removedTargets.has(p) || !confirmed.has(p))
|
|
28
57
|
continue;
|
|
29
|
-
|
|
58
|
+
const abs = join(root, p);
|
|
59
|
+
if (!existsSync(abs))
|
|
60
|
+
continue; // исчез между сканом и удалением — удалять нечего
|
|
61
|
+
const current = readFileSync(abs, 'utf-8');
|
|
62
|
+
const protect = parseProtect(current);
|
|
63
|
+
if (protect.held) {
|
|
64
|
+
heldRemovals.push({
|
|
65
|
+
file: p,
|
|
66
|
+
action: 'skipped',
|
|
67
|
+
protected: true,
|
|
68
|
+
protect: protect.value ?? protect.raw ?? '',
|
|
69
|
+
reason: `declared removed but held by protect — unprotect to allow removal: wolf upgrade --resolve ${p}=keep`,
|
|
70
|
+
});
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
// NFR-05: у removed-цели эталона нет — локальный контент всегда сначала в бэкап.
|
|
74
|
+
removalBackups.push({ file: p, backup: (await backupLocalFile(root, p, current, new Date(now()))).path });
|
|
75
|
+
await unlink(abs);
|
|
30
76
|
removed.push(p);
|
|
31
77
|
}
|
|
32
78
|
// Контракт T5: removals = подтверждённо отсутствующие ПОСЛЕ шага — удалённые
|
|
33
79
|
// теперь или отсутствовавшие ранее (идемпотентность повтора, NFR-02).
|
|
34
80
|
const removals = [...removedTargets].filter((p) => confirmed.has(p) && !existsSync(join(root, p)));
|
|
35
|
-
// Дрейф без объявления: оставшийся orphaned вне карты — факт для
|
|
36
|
-
//
|
|
81
|
+
// Дрейф без объявления: оставшийся orphaned вне карты — факт для сверки.
|
|
82
|
+
// До генерации conflict проверяются protect и kept (§4.3, §4.6): защищённая
|
|
83
|
+
// вариация и принятый локальный контент — не решения, а свои коды.
|
|
84
|
+
const witness = loadSyncState(root);
|
|
37
85
|
const drift = orphaned
|
|
38
86
|
.filter((p) => !removedTargets.has(p))
|
|
39
|
-
.map((p) => (
|
|
40
|
-
file: p,
|
|
41
|
-
action: 'conflict',
|
|
42
|
-
reason: 'orphaned after pass — stamped file outside the map, not declared removed (drift without declaration)',
|
|
43
|
-
}));
|
|
87
|
+
.map((p) => orphanOutcome(root, p, witness.files[p]));
|
|
44
88
|
// 3. посев — только недостающие лица (mode задаёт шаг) и только шаблоны,
|
|
45
89
|
// объявленные картой с seed:true; deprecated-шаблоны не сеются (REQ-11).
|
|
46
90
|
const seedTemplates = new Set(map.faces.filter((f) => f.seed).map((f) => basename(f.template)));
|
|
@@ -55,23 +99,65 @@ export async function runProjectStep(deps, root, map, opts = {}) {
|
|
|
55
99
|
catch (err) {
|
|
56
100
|
schema = { status: 'refused', error: err instanceof Error ? err.message : String(err) };
|
|
57
101
|
}
|
|
58
|
-
// 5. сверка: исходы всех фаз → статус каждого пункта карты.
|
|
102
|
+
// 5. сверка: исходы всех фаз → статус каждого пункта карты. Факты
|
|
103
|
+
// защищённых removed-целей идут тем же кодом `protected` (не error/removed).
|
|
59
104
|
const verify = verifyAgainstMap(map, {
|
|
60
|
-
syncOutcomes: [...syncOutcomes, ...drift],
|
|
105
|
+
syncOutcomes: [...syncOutcomes, ...drift, ...heldRemovals],
|
|
61
106
|
seedOutcomes,
|
|
62
107
|
removals,
|
|
63
108
|
});
|
|
64
109
|
const errors = verify.summary.errors + (schema.status === 'refused' ? 1 : 0);
|
|
65
110
|
const exitKind = errors > 0 ? 'error' : verify.summary.needsDecision > 0 ? 'needs-decision' : 'done';
|
|
111
|
+
const backups = [
|
|
112
|
+
...syncOutcomes
|
|
113
|
+
.filter((o) => typeof o.backup === 'string')
|
|
114
|
+
.map((o) => ({ file: o.file, backup: o.backup })),
|
|
115
|
+
...removalBackups,
|
|
116
|
+
];
|
|
66
117
|
return {
|
|
67
118
|
name: basename(root),
|
|
68
119
|
root,
|
|
69
|
-
sync: {
|
|
120
|
+
sync: {
|
|
121
|
+
outcomes: [...syncOutcomes, ...heldRemovals],
|
|
122
|
+
orphaned: orphaned.filter((p) => !removed.includes(p)),
|
|
123
|
+
removed,
|
|
124
|
+
},
|
|
70
125
|
seed: seedOutcomes,
|
|
71
126
|
schema,
|
|
72
127
|
verify,
|
|
128
|
+
backups,
|
|
73
129
|
wallMs: Math.max(1, now() - startedAt),
|
|
74
130
|
exitKind,
|
|
75
131
|
};
|
|
76
132
|
}
|
|
133
|
+
/** Исход orphan для сверки: protect (§4.3) → protected; свидетель origin:'keep' → kept;
|
|
134
|
+
* иначе — конфликт дрейфа без объявления (путь печатается именем, REQ-01). */
|
|
135
|
+
function orphanOutcome(root, rel, entry) {
|
|
136
|
+
const abs = join(root, rel);
|
|
137
|
+
const current = existsSync(abs) ? readFileSync(abs, 'utf-8') : '';
|
|
138
|
+
const protect = parseProtect(current);
|
|
139
|
+
if (protect.held) {
|
|
140
|
+
return {
|
|
141
|
+
file: rel,
|
|
142
|
+
action: 'skipped',
|
|
143
|
+
protected: true,
|
|
144
|
+
protect: protect.value ?? protect.raw ?? '',
|
|
145
|
+
reason: 'orphaned but held by protect — sanctioned local variation',
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
const hash = typeof entry === 'string' ? entry : entry?.hash;
|
|
149
|
+
if (entry && typeof entry !== 'string' && entry.origin === 'keep' && hash === sha256(normalizeManaged(current))) {
|
|
150
|
+
return {
|
|
151
|
+
file: rel,
|
|
152
|
+
action: 'skipped',
|
|
153
|
+
kept: true,
|
|
154
|
+
reason: `orphaned but locally accepted (keep) at ${entry.base}`,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
file: rel,
|
|
159
|
+
action: 'conflict',
|
|
160
|
+
reason: 'orphaned after pass — stamped file outside the map, not declared removed (drift without declaration)',
|
|
161
|
+
};
|
|
162
|
+
}
|
|
77
163
|
//# sourceMappingURL=project-step.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-step.js","sourceRoot":"","sources":["../../../src/app/use-cases/project-step.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,4EAA4E;AAC5E,2EAA2E;AAC3E,yEAAyE;AACzE,gFAAgF;AAChF,6EAA6E;AAC7E,2EAA2E;AAC3E,gEAAgE;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"project-step.js","sourceRoot":"","sources":["../../../src/app/use-cases/project-step.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { RenderOutcome } from '../../ports/base-set-renderer.port.js';
|
|
2
2
|
import type { PlatformWriteResult } from '../../ports/platform-adapter.port.js';
|
|
3
|
+
import type { SyncStateFiles } from '../../adapters/render/sync-state.js';
|
|
3
4
|
export interface RepairPlatformDeps {
|
|
4
5
|
baseDir: string;
|
|
5
6
|
/** Платформа детектится по маркерам (конфиг/.opencode). */
|
|
6
7
|
detect: () => boolean;
|
|
7
8
|
/** Записи wolf-sync-state; null — файла нет. */
|
|
8
|
-
syncStateFiles: () =>
|
|
9
|
+
syncStateFiles: () => SyncStateFiles | null;
|
|
9
10
|
/** Прочитать файл проекта; null — нет/нечитаем (C-02: fallback-скан штампов). */
|
|
10
11
|
readFile: (abs: string) => string | null;
|
|
11
12
|
/** Файлы в каталоге (любая глубина); пусто — каталога нет. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repair-platform.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/repair-platform.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"repair-platform.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/repair-platform.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAEhF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAM1E,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,gDAAgD;IAChD,cAAc,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC;IAC5C,iFAAiF;IACjF,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACzC,8DAA8D;IAC9D,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;IACrC,kEAAkE;IAClE,QAAQ,EAAE,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClC,oEAAoE;IACpE,WAAW,EAAE,MAAM,OAAO,CAAC;QAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC9E,WAAW,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,oBAAoB;IACnC,+CAA+C;IAC/C,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,8CAA8C;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wEAAwE;IACxE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gCAAgC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,kBAAkB,EACxB,IAAI,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GACxB,OAAO,CAAC,oBAAoB,CAAC,CA+C/B"}
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
// Гвард (F-01/F-10): без установки или без wolf-контента — честный skip, ноль записей.
|
|
4
4
|
import { join } from 'path';
|
|
5
5
|
import { parseStamp } from '../../adapters/render/stamp.js';
|
|
6
|
+
import { CONFIG_KEYS } from '../../adapters/platforms/opencode-config-keys.js';
|
|
7
|
+
/** Пути ключей для плана — из реестра (§6.2): литералов путей в use-case нет. */
|
|
8
|
+
const KEY_PATHS = CONFIG_KEYS.map((key) => key.writePath.join('.'));
|
|
6
9
|
export async function repairPlatform(deps, opts) {
|
|
7
10
|
const empty = { plan: [], actions: [], orphaned: [], orphanedNote: '', skipped: null };
|
|
8
11
|
if (!deps.detect())
|
|
@@ -35,7 +38,7 @@ export async function repairPlatform(deps, opts) {
|
|
|
35
38
|
...mismatchLines.map((m) => `mismatch: ${m}`),
|
|
36
39
|
`syncBaseSet: re-render ${owned.length} stamped file(s) under current templates:`,
|
|
37
40
|
...fileList,
|
|
38
|
-
|
|
41
|
+
`writeConfig: canonicalize ${KEY_PATHS.join(' / ')}`,
|
|
39
42
|
];
|
|
40
43
|
if (opts.dryRun)
|
|
41
44
|
return { ...empty, plan };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repair-platform.js","sourceRoot":"","sources":["../../../src/app/use-cases/repair-platform.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,yEAAyE;AACzE,uFAAuF;AACvF,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"repair-platform.js","sourceRoot":"","sources":["../../../src/app/use-cases/repair-platform.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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-librarian.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/tool-librarian.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tool-librarian.d.ts","sourceRoot":"","sources":["../../../src/app/use-cases/tool-librarian.ts"],"names":[],"mappings":"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"}
|
|
@@ -138,12 +138,14 @@ export async function useTool(deps, input) {
|
|
|
138
138
|
/** Детерминированный контент SKILL.md из объекта tool — повторная генерация даёт тот же текст. */
|
|
139
139
|
export function toolSkillContent(tool) {
|
|
140
140
|
const description = tool.contract_output ?? 'script from Wolf memory';
|
|
141
|
+
// 6.5 (аудит opencode v2): frontmatter обязан быть первой строкой файла — маркер
|
|
142
|
+
// генерации идёт после блока, иначе `name`/`description` скилла не парсятся.
|
|
141
143
|
return [
|
|
142
|
-
`<!-- generated from tool:${tool.id} -->`,
|
|
143
144
|
'---',
|
|
144
145
|
`name: ${tool.name}`,
|
|
145
146
|
`description: Tool ${tool.name} — ${description}.`,
|
|
146
147
|
'---',
|
|
148
|
+
`<!-- generated from tool:${tool.id} -->`,
|
|
147
149
|
'',
|
|
148
150
|
`# Tool ${tool.name}`,
|
|
149
151
|
'',
|