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.
Files changed (92) hide show
  1. package/README.md +12 -1
  2. package/README.ru.md +19 -2
  3. package/dist/adapters/cli/commands/memory-doctor.d.ts.map +1 -1
  4. package/dist/adapters/cli/commands/memory-doctor.js.map +1 -1
  5. package/dist/adapters/cli/commands/memory-uninstall.d.ts.map +1 -1
  6. package/dist/adapters/cli/commands/memory-uninstall.js.map +1 -1
  7. package/dist/adapters/cli/commands/memory-upgrade.d.ts +143 -2
  8. package/dist/adapters/cli/commands/memory-upgrade.d.ts.map +1 -1
  9. package/dist/adapters/cli/commands/memory-upgrade.js +887 -41
  10. package/dist/adapters/cli/commands/memory-upgrade.js.map +1 -1
  11. package/dist/adapters/cli/commands/upgrade-projects.d.ts +4 -2
  12. package/dist/adapters/cli/commands/upgrade-projects.d.ts.map +1 -1
  13. package/dist/adapters/cli/commands/upgrade-projects.js +17 -7
  14. package/dist/adapters/cli/commands/upgrade-projects.js.map +1 -1
  15. package/dist/adapters/platforms/index.d.ts.map +1 -1
  16. package/dist/adapters/platforms/index.js +2 -1
  17. package/dist/adapters/platforms/index.js.map +1 -1
  18. package/dist/adapters/platforms/opencode-adapter.d.ts +13 -4
  19. package/dist/adapters/platforms/opencode-adapter.d.ts.map +1 -1
  20. package/dist/adapters/platforms/opencode-adapter.js +278 -55
  21. package/dist/adapters/platforms/opencode-adapter.js.map +1 -1
  22. package/dist/adapters/platforms/opencode-config-keys.d.ts +78 -0
  23. package/dist/adapters/platforms/opencode-config-keys.d.ts.map +1 -0
  24. package/dist/adapters/platforms/opencode-config-keys.js +169 -0
  25. package/dist/adapters/platforms/opencode-config-keys.js.map +1 -0
  26. package/dist/adapters/render/opencode/opencode-renderer.d.ts +35 -7
  27. package/dist/adapters/render/opencode/opencode-renderer.d.ts.map +1 -1
  28. package/dist/adapters/render/opencode/opencode-renderer.js +395 -115
  29. package/dist/adapters/render/opencode/opencode-renderer.js.map +1 -1
  30. package/dist/adapters/render/stamp.d.ts +2 -0
  31. package/dist/adapters/render/stamp.d.ts.map +1 -1
  32. package/dist/adapters/render/stamp.js +9 -1
  33. package/dist/adapters/render/stamp.js.map +1 -1
  34. package/dist/adapters/render/sync-state.d.ts +15 -3
  35. package/dist/adapters/render/sync-state.d.ts.map +1 -1
  36. package/dist/adapters/render/sync-state.js +52 -8
  37. package/dist/adapters/render/sync-state.js.map +1 -1
  38. package/dist/app/use-cases/decisions.d.ts +247 -0
  39. package/dist/app/use-cases/decisions.d.ts.map +1 -0
  40. package/dist/app/use-cases/decisions.js +528 -0
  41. package/dist/app/use-cases/decisions.js.map +1 -0
  42. package/dist/app/use-cases/doctor.d.ts.map +1 -1
  43. package/dist/app/use-cases/doctor.js +6 -0
  44. package/dist/app/use-cases/doctor.js.map +1 -1
  45. package/dist/app/use-cases/init-project.d.ts.map +1 -1
  46. package/dist/app/use-cases/init-project.js +39 -3
  47. package/dist/app/use-cases/init-project.js.map +1 -1
  48. package/dist/app/use-cases/platform-mismatch.d.ts +2 -1
  49. package/dist/app/use-cases/platform-mismatch.d.ts.map +1 -1
  50. package/dist/app/use-cases/platform-mismatch.js.map +1 -1
  51. package/dist/app/use-cases/project-step.d.ts +20 -1
  52. package/dist/app/use-cases/project-step.d.ts.map +1 -1
  53. package/dist/app/use-cases/project-step.js +101 -15
  54. package/dist/app/use-cases/project-step.js.map +1 -1
  55. package/dist/app/use-cases/repair-platform.d.ts +2 -1
  56. package/dist/app/use-cases/repair-platform.d.ts.map +1 -1
  57. package/dist/app/use-cases/repair-platform.js +4 -1
  58. package/dist/app/use-cases/repair-platform.js.map +1 -1
  59. package/dist/app/use-cases/sync-base-set.d.ts +4 -2
  60. package/dist/app/use-cases/sync-base-set.d.ts.map +1 -1
  61. package/dist/app/use-cases/sync-base-set.js +4 -2
  62. package/dist/app/use-cases/sync-base-set.js.map +1 -1
  63. package/dist/app/use-cases/tool-librarian.d.ts.map +1 -1
  64. package/dist/app/use-cases/tool-librarian.js +3 -1
  65. package/dist/app/use-cases/tool-librarian.js.map +1 -1
  66. package/dist/app/use-cases/uninstall.d.ts +2 -1
  67. package/dist/app/use-cases/uninstall.d.ts.map +1 -1
  68. package/dist/app/use-cases/uninstall.js.map +1 -1
  69. package/dist/app/use-cases/upgrade-projects.d.ts +30 -0
  70. package/dist/app/use-cases/upgrade-projects.d.ts.map +1 -1
  71. package/dist/app/use-cases/upgrade-projects.js +119 -4
  72. package/dist/app/use-cases/upgrade-projects.js.map +1 -1
  73. package/dist/app/use-cases/verify-against-map.d.ts +5 -1
  74. package/dist/app/use-cases/verify-against-map.d.ts.map +1 -1
  75. package/dist/app/use-cases/verify-against-map.js +34 -6
  76. package/dist/app/use-cases/verify-against-map.js.map +1 -1
  77. package/dist/domain/line-diff.d.ts +36 -0
  78. package/dist/domain/line-diff.d.ts.map +1 -0
  79. package/dist/domain/line-diff.js +175 -0
  80. package/dist/domain/line-diff.js.map +1 -0
  81. package/dist/domain/protect-key.d.ts +21 -0
  82. package/dist/domain/protect-key.d.ts.map +1 -0
  83. package/dist/domain/protect-key.js +112 -0
  84. package/dist/domain/protect-key.js.map +1 -0
  85. package/dist/ports/base-set-renderer.port.d.ts +51 -3
  86. package/dist/ports/base-set-renderer.port.d.ts.map +1 -1
  87. package/dist/ports/platform-adapter.port.d.ts +8 -2
  88. package/dist/ports/platform-adapter.port.d.ts.map +1 -1
  89. package/package.json +1 -1
  90. package/templates/.wolf/router.log +1 -1
  91. package/templates/base/AGENTS.md +6 -3
  92. 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
- // WP1: без --platform платформенные конфиги не пишутся (минимальный путь, спека §4)
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('- opencode not in the --platform list: Wolf agents are rendered into .opencode/, but mcp.wolf/default_agent/subagent_depth are not written; connect: wolf init --platform opencode,…');
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('- connect MCP: restart the platform (opencode will pick up mcp.wolf, default_agent and subagent_depth)');
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":"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"}
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: Record<string, string>;
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,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9D,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
+ {"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":"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"}
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,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC3F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGjE,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;CAC9B;AAED;oEACoE;AACpE,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,gBAAgB,GAAG,OAAO,CAAC;AAE3D,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb;4EACwE;IACxE,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,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,CAiExB"}
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
- const { outcomes: syncOutcomes, orphaned } = await syncBaseSet(deps.renderer, root, deps.models ?? 'omit');
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
- await unlink(join(root, p));
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
- // («файл вне карты» → conflict → «требует решения», design §«Сверка»).
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: { outcomes: syncOutcomes, orphaned: orphaned.filter((p) => !removed.includes(p)), removed },
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":"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"}
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: () => Record<string, string> | null;
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;AAGhF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,gDAAgD;IAChD,cAAc,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACpD,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"}
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
- 'writeConfig: canonicalize mcp.wolf / default_agent / subagent_depth',
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;AAgC5D,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAwB,EACxB,IAAyB;IAEzB,MAAM,KAAK,GAAyB,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC7G,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACxE,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACpC,gFAAgF;IAChF,yFAAyF;IACzF,MAAM,UAAU,GAAG,KAAK,KAAK,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACpF,IAAI,KAAK,GAAa,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,KAAK,GAAG,EAAE,CAAC;QACX,KAAK,MAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,EAAE,CAAC;YACtG,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;gBACzD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,GAAG,KAAK,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI;oBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QACD,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;IACvE,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,WAAW;QAC1B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,uCAAuC,CAAC;QACjE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG;QACX,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7C,0BAA0B,KAAK,CAAC,MAAM,2CAA2C;QACjF,GAAG,QAAQ;QACX,qEAAqE;KACtE,CAAC;IACF,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAC3C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,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;IAClG,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IACpC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/E,OAAO;QACL,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,YAAY,EACV,QAAQ,CAAC,MAAM,GAAG,CAAC;YACjB,CAAC,CAAC,0FAA0F;YAC5F,CAAC,CAAC,EAAE;QACR,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,OAAe,EAAE,GAAW;IAC3C,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7E,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;AAEtF;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM;;;GAE3G"}
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;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAyB,EAAE,OAAe,EAAE,MAA8B;IAC1G,OAAO,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC"}
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
  '',