@seanmars/tospec 0.8.0 → 0.10.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.
Files changed (192) hide show
  1. package/README.md +19 -0
  2. package/assets/dashboard/app.js +11 -0
  3. package/dist/cli/index.d.ts.map +1 -1
  4. package/dist/cli/index.js +18 -31
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/commands/config.d.ts +1 -2
  7. package/dist/commands/config.d.ts.map +1 -1
  8. package/dist/commands/config.js +5 -14
  9. package/dist/commands/config.js.map +1 -1
  10. package/dist/commands/dashboard.d.ts +3 -0
  11. package/dist/commands/dashboard.d.ts.map +1 -1
  12. package/dist/commands/dashboard.js +32 -2
  13. package/dist/commands/dashboard.js.map +1 -1
  14. package/dist/commands/decision.d.ts.map +1 -1
  15. package/dist/commands/decision.js +8 -9
  16. package/dist/commands/decision.js.map +1 -1
  17. package/dist/commands/shared-output.d.ts +18 -4
  18. package/dist/commands/shared-output.d.ts.map +1 -1
  19. package/dist/commands/shared-output.js +16 -3
  20. package/dist/commands/shared-output.js.map +1 -1
  21. package/dist/commands/show.d.ts.map +1 -1
  22. package/dist/commands/show.js +9 -13
  23. package/dist/commands/show.js.map +1 -1
  24. package/dist/commands/validate.d.ts +10 -0
  25. package/dist/commands/validate.d.ts.map +1 -1
  26. package/dist/commands/validate.js +48 -32
  27. package/dist/commands/validate.js.map +1 -1
  28. package/dist/commands/workflow/instructions.d.ts.map +1 -1
  29. package/dist/commands/workflow/instructions.js +20 -6
  30. package/dist/commands/workflow/instructions.js.map +1 -1
  31. package/dist/commands/workflow/new-change.d.ts +2 -0
  32. package/dist/commands/workflow/new-change.d.ts.map +1 -1
  33. package/dist/commands/workflow/new-change.js +15 -7
  34. package/dist/commands/workflow/new-change.js.map +1 -1
  35. package/dist/commands/workflow/schemas.d.ts.map +1 -1
  36. package/dist/commands/workflow/schemas.js +12 -3
  37. package/dist/commands/workflow/schemas.js.map +1 -1
  38. package/dist/commands/workflow/shared.d.ts +1 -3
  39. package/dist/commands/workflow/shared.d.ts.map +1 -1
  40. package/dist/commands/workflow/shared.js +2 -14
  41. package/dist/commands/workflow/shared.js.map +1 -1
  42. package/dist/commands/workflow/status.d.ts.map +1 -1
  43. package/dist/commands/workflow/status.js +6 -2
  44. package/dist/commands/workflow/status.js.map +1 -1
  45. package/dist/commands/workflow/templates.d.ts.map +1 -1
  46. package/dist/commands/workflow/templates.js +13 -2
  47. package/dist/commands/workflow/templates.js.map +1 -1
  48. package/dist/core/archive.d.ts +9 -0
  49. package/dist/core/archive.d.ts.map +1 -1
  50. package/dist/core/archive.js +63 -114
  51. package/dist/core/archive.js.map +1 -1
  52. package/dist/core/artifact-graph/instruction-loader.d.ts +4 -2
  53. package/dist/core/artifact-graph/instruction-loader.d.ts.map +1 -1
  54. package/dist/core/artifact-graph/instruction-loader.js +54 -0
  55. package/dist/core/artifact-graph/instruction-loader.js.map +1 -1
  56. package/dist/core/change-metadata/schema.d.ts +1 -0
  57. package/dist/core/change-metadata/schema.d.ts.map +1 -1
  58. package/dist/core/change-metadata/schema.js +4 -0
  59. package/dist/core/change-metadata/schema.js.map +1 -1
  60. package/dist/core/change-presenter.d.ts.map +1 -1
  61. package/dist/core/change-presenter.js +2 -8
  62. package/dist/core/change-presenter.js.map +1 -1
  63. package/dist/core/change-status-policy.d.ts +1 -1
  64. package/dist/core/change-status-policy.d.ts.map +1 -1
  65. package/dist/core/command-generation/adapters/index.d.ts +1 -2
  66. package/dist/core/command-generation/adapters/index.d.ts.map +1 -1
  67. package/dist/core/command-generation/adapters/index.js +1 -2
  68. package/dist/core/command-generation/adapters/index.js.map +1 -1
  69. package/dist/core/command-generation/index.d.ts +4 -15
  70. package/dist/core/command-generation/index.d.ts.map +1 -1
  71. package/dist/core/command-generation/index.js +5 -17
  72. package/dist/core/command-generation/index.js.map +1 -1
  73. package/dist/core/config-schema.d.ts +0 -14
  74. package/dist/core/config-schema.d.ts.map +1 -1
  75. package/dist/core/config-schema.js +0 -57
  76. package/dist/core/config-schema.js.map +1 -1
  77. package/dist/core/config.d.ts +0 -1
  78. package/dist/core/config.d.ts.map +1 -1
  79. package/dist/core/config.js +0 -4
  80. package/dist/core/config.js.map +1 -1
  81. package/dist/core/dashboard-data.d.ts +2 -1
  82. package/dist/core/dashboard-data.d.ts.map +1 -1
  83. package/dist/core/dashboard-data.js +1 -1
  84. package/dist/core/dashboard-data.js.map +1 -1
  85. package/dist/core/global-config.d.ts +0 -5
  86. package/dist/core/global-config.d.ts.map +1 -1
  87. package/dist/core/global-config.js +3 -20
  88. package/dist/core/global-config.js.map +1 -1
  89. package/dist/core/init.d.ts +0 -1
  90. package/dist/core/init.d.ts.map +1 -1
  91. package/dist/core/init.js +18 -63
  92. package/dist/core/init.js.map +1 -1
  93. package/dist/core/list.d.ts.map +1 -1
  94. package/dist/core/list.js +6 -5
  95. package/dist/core/list.js.map +1 -1
  96. package/dist/core/migrate.d.ts +20 -3
  97. package/dist/core/migrate.d.ts.map +1 -1
  98. package/dist/core/migrate.js +140 -40
  99. package/dist/core/migrate.js.map +1 -1
  100. package/dist/core/parsers/change-parser.d.ts +0 -2
  101. package/dist/core/parsers/change-parser.d.ts.map +1 -1
  102. package/dist/core/parsers/change-parser.js +7 -72
  103. package/dist/core/parsers/change-parser.js.map +1 -1
  104. package/dist/core/parsers/markdown-parser.d.ts +1 -1
  105. package/dist/core/parsers/markdown-parser.d.ts.map +1 -1
  106. package/dist/core/parsers/markdown-parser.js +13 -4
  107. package/dist/core/parsers/markdown-parser.js.map +1 -1
  108. package/dist/core/parsers/requirement-blocks.d.ts +19 -0
  109. package/dist/core/parsers/requirement-blocks.d.ts.map +1 -1
  110. package/dist/core/parsers/requirement-blocks.js +56 -26
  111. package/dist/core/parsers/requirement-blocks.js.map +1 -1
  112. package/dist/core/parsers/requirement-text.d.ts +33 -0
  113. package/dist/core/parsers/requirement-text.d.ts.map +1 -1
  114. package/dist/core/parsers/requirement-text.js +55 -13
  115. package/dist/core/parsers/requirement-text.js.map +1 -1
  116. package/dist/core/profiles.d.ts +2 -10
  117. package/dist/core/profiles.d.ts.map +1 -1
  118. package/dist/core/profiles.js +5 -9
  119. package/dist/core/profiles.js.map +1 -1
  120. package/dist/core/project-config.d.ts +0 -22
  121. package/dist/core/project-config.d.ts.map +1 -1
  122. package/dist/core/project-config.js +5 -75
  123. package/dist/core/project-config.js.map +1 -1
  124. package/dist/core/root-selection.d.ts.map +1 -1
  125. package/dist/core/root-selection.js +2 -2
  126. package/dist/core/root-selection.js.map +1 -1
  127. package/dist/core/shared/index.d.ts +1 -1
  128. package/dist/core/shared/index.d.ts.map +1 -1
  129. package/dist/core/shared/index.js +1 -1
  130. package/dist/core/shared/index.js.map +1 -1
  131. package/dist/core/shared/skill-generation.d.ts +47 -1
  132. package/dist/core/shared/skill-generation.d.ts.map +1 -1
  133. package/dist/core/shared/skill-generation.js +36 -34
  134. package/dist/core/shared/skill-generation.js.map +1 -1
  135. package/dist/core/shared/tool-detection.d.ts +4 -10
  136. package/dist/core/shared/tool-detection.d.ts.map +1 -1
  137. package/dist/core/shared/tool-detection.js +5 -29
  138. package/dist/core/shared/tool-detection.js.map +1 -1
  139. package/dist/core/spec-presenter.d.ts.map +1 -1
  140. package/dist/core/spec-presenter.js +3 -4
  141. package/dist/core/spec-presenter.js.map +1 -1
  142. package/dist/core/specs-apply.d.ts.map +1 -1
  143. package/dist/core/specs-apply.js +1 -0
  144. package/dist/core/specs-apply.js.map +1 -1
  145. package/dist/core/templates/workflows/apply.d.ts +1 -1
  146. package/dist/core/templates/workflows/apply.d.ts.map +1 -1
  147. package/dist/core/templates/workflows/apply.js +86 -73
  148. package/dist/core/templates/workflows/apply.js.map +1 -1
  149. package/dist/core/templates/workflows/archive.d.ts.map +1 -1
  150. package/dist/core/templates/workflows/archive.js +5 -3
  151. package/dist/core/templates/workflows/archive.js.map +1 -1
  152. package/dist/core/templates/workflows/decision.d.ts.map +1 -1
  153. package/dist/core/templates/workflows/decision.js +3 -1
  154. package/dist/core/templates/workflows/decision.js.map +1 -1
  155. package/dist/core/templates/workflows/explore.d.ts.map +1 -1
  156. package/dist/core/templates/workflows/explore.js +10 -8
  157. package/dist/core/templates/workflows/explore.js.map +1 -1
  158. package/dist/core/templates/workflows/grill.d.ts.map +1 -1
  159. package/dist/core/templates/workflows/grill.js +29 -6
  160. package/dist/core/templates/workflows/grill.js.map +1 -1
  161. package/dist/core/templates/workflows/propose.d.ts.map +1 -1
  162. package/dist/core/templates/workflows/propose.js +3 -1
  163. package/dist/core/templates/workflows/propose.js.map +1 -1
  164. package/dist/core/templates/workflows/update.js +2 -2
  165. package/dist/core/templates/workflows/update.js.map +1 -1
  166. package/dist/core/update.d.ts +0 -9
  167. package/dist/core/update.d.ts.map +1 -1
  168. package/dist/core/update.js +9 -55
  169. package/dist/core/update.js.map +1 -1
  170. package/dist/core/validation/validator.d.ts +7 -1
  171. package/dist/core/validation/validator.d.ts.map +1 -1
  172. package/dist/core/validation/validator.js +98 -17
  173. package/dist/core/validation/validator.js.map +1 -1
  174. package/dist/ui/welcome-screen.d.ts.map +1 -1
  175. package/dist/ui/welcome-screen.js +6 -3
  176. package/dist/ui/welcome-screen.js.map +1 -1
  177. package/dist/utils/change-utils.d.ts +1 -1
  178. package/dist/utils/change-utils.d.ts.map +1 -1
  179. package/dist/utils/link.d.ts +2 -18
  180. package/dist/utils/link.d.ts.map +1 -1
  181. package/dist/utils/link.js +2 -65
  182. package/dist/utils/link.js.map +1 -1
  183. package/package.json +1 -1
  184. package/schemas/decision/templates/decision.md +3 -0
  185. package/dist/core/command-generation/adapters/cursor.d.ts +0 -14
  186. package/dist/core/command-generation/adapters/cursor.d.ts.map +0 -1
  187. package/dist/core/command-generation/adapters/cursor.js +0 -31
  188. package/dist/core/command-generation/adapters/cursor.js.map +0 -1
  189. package/dist/core/command-generation/registry.d.ts +0 -24
  190. package/dist/core/command-generation/registry.d.ts.map +0 -1
  191. package/dist/core/command-generation/registry.js +0 -38
  192. package/dist/core/command-generation/registry.js.map +0 -1
package/dist/core/init.js CHANGED
@@ -7,11 +7,10 @@ import path from 'path';
7
7
  import * as fs from 'fs';
8
8
  import { createRequire } from 'module';
9
9
  import { FileSystemUtils } from '../utils/file-system.js';
10
- import { AI_TOOLS, HARD_LINK_TOOLS, TOSPEC_DIR_NAME, } from './config.js';
10
+ import { AI_TOOLS, TOSPEC_DIR_NAME, } from './config.js';
11
11
  import { isInteractive } from '../utils/interactive.js';
12
12
  import { serializeConfig } from './config-prompts.js';
13
- import { ensureHardLinkedDir, copyDir } from '../utils/link.js';
14
- import { writeAgentsLinkMode } from './project-config.js';
13
+ import { copyDir } from '../utils/link.js';
15
14
  import { removeLegacySkillDirs, removeLegacyToolSkillLayout, getToolsWithSkillsDir, getToolStates, getSkillTemplates, generateSkillContent, writeToolCommands, writeToolRules, } from './shared/index.js';
16
15
  import { getGlobalConfig } from './global-config.js';
17
16
  import { getProfileWorkflows, ALL_WORKFLOWS } from './profiles.js';
@@ -22,18 +21,6 @@ const { version: TOSPEC_VERSION } = require('../../package.json');
22
21
  // Constants
23
22
  // -----------------------------------------------------------------------------
24
23
  const DEFAULT_SCHEMA = 'sdd';
25
- const WORKFLOW_TO_SKILL_DIR = {
26
- 'explore': 'tospec-explore',
27
- 'grill': 'tospec-grill',
28
- 'propose': 'tospec-propose',
29
- 'issue': 'tospec-issue',
30
- 'decision': 'tospec-decision',
31
- 'update': 'tospec-update',
32
- 'apply': 'tospec-apply',
33
- 'apply-with-tdd': 'tospec-apply-with-tdd',
34
- 'sync': 'tospec-sync',
35
- 'archive': 'tospec-archive',
36
- };
37
24
  // -----------------------------------------------------------------------------
38
25
  // Init Command Class
39
26
  // -----------------------------------------------------------------------------
@@ -75,9 +62,7 @@ export class InitCommand {
75
62
  const installRules = validatedTools.length > 0;
76
63
  // Create directory structure and config
77
64
  await this.createDirectoryStructure(tospecPath, extendMode);
78
- // Create config.yaml if needed — must run before skill/command
79
- // generation, which now also writes tospec/config.yaml (agentsLinkMode)
80
- // and would otherwise make this step see the file as already existing.
65
+ // Create config.yaml if needed — must run before skill/command generation.
81
66
  const configStatus = await this.createConfig(tospecPath, extendMode);
82
67
  // Generate skills and commands for each tool
83
68
  const results = await this.generateSkillsAndCommands(projectPath, validatedTools, installRules);
@@ -260,26 +245,23 @@ export class InitCommand {
260
245
  // DIRECTORY STRUCTURE
261
246
  // ═══════════════════════════════════════════════════════════
262
247
  async createDirectoryStructure(tospecPath, extendMode) {
248
+ const directories = [
249
+ tospecPath,
250
+ path.join(tospecPath, 'specs'),
251
+ path.join(tospecPath, 'changes'),
252
+ path.join(tospecPath, 'changes', 'archive'),
253
+ // Permanent decision records (`tospec decision new`); scaffolded here so
254
+ // the layout is visible from the start instead of appearing on first use.
255
+ path.join(tospecPath, 'decisions'),
256
+ ];
263
257
  if (extendMode) {
264
258
  // In extend mode, just ensure directories exist without spinner
265
- const directories = [
266
- tospecPath,
267
- path.join(tospecPath, 'specs'),
268
- path.join(tospecPath, 'changes'),
269
- path.join(tospecPath, 'changes', 'archive'),
270
- ];
271
259
  for (const dir of directories) {
272
260
  await FileSystemUtils.createDirectory(dir);
273
261
  }
274
262
  return;
275
263
  }
276
264
  const spinner = this.startSpinner('Creating tospec structure...');
277
- const directories = [
278
- tospecPath,
279
- path.join(tospecPath, 'specs'),
280
- path.join(tospecPath, 'changes'),
281
- path.join(tospecPath, 'changes', 'archive'),
282
- ];
283
265
  for (const dir of directories) {
284
266
  await FileSystemUtils.createDirectory(dir);
285
267
  }
@@ -296,7 +278,7 @@ export class InitCommand {
296
278
  const refreshedTools = [];
297
279
  const failedTools = [];
298
280
  let removedCommandCount = 0;
299
- // Read global config for profile and delivery settings (use --profile override if set)
281
+ // Read global config for profile settings (use --profile override if set)
300
282
  const globalConfig = getGlobalConfig();
301
283
  const profile = this.resolveProfileOverride() ?? globalConfig.profile ?? 'core';
302
284
  const workflows = getProfileWorkflows(profile, globalConfig.workflows);
@@ -324,23 +306,13 @@ export class InitCommand {
324
306
  const skillsDir = path.join(projectPath, tool.skillsDir, 'skills');
325
307
  await removeLegacyToolSkillLayout(path.join(projectPath, tool.skillsDir));
326
308
  await removeLegacySkillDirs(skillsDir);
327
- // Only tools in HARD_LINK_TOOLS get hard-linked skill files; the rest
328
- // (e.g. codex) land as a plain copy that won't track .agents/ edits.
329
- const useHardLink = HARD_LINK_TOOLS.includes(tool.value);
330
- let skillsMode = useHardLink ? 'hardlink' : 'copy';
309
+ // Every tool gets a plain copy of each skill dir; copies don't track
310
+ // .agents/ edits `tospec update` regenerates them.
331
311
  for (const { dirName } of skillTemplates) {
332
312
  const src = path.join(agentsSkillsDir, dirName);
333
313
  const dest = path.join(skillsDir, dirName);
334
- if (useHardLink) {
335
- const mode = await ensureHardLinkedDir(src, dest);
336
- if (mode === 'copy')
337
- skillsMode = 'copy';
338
- }
339
- else {
340
- await copyDir(src, dest);
341
- }
314
+ await copyDir(src, dest);
342
315
  }
343
- writeAgentsLinkMode(projectPath, tool.value, { skills: skillsMode });
344
316
  // Commands: for tools with a registered adapter (Claude Code), write
345
317
  // `.claude/commands/tosx/<id>.md` so they can be invoked as `/tosx:<id>`.
346
318
  await writeToolCommands(projectPath, tool.value, workflows);
@@ -463,25 +435,6 @@ export class InitCommand {
463
435
  stopAndPersist: (opts) => console.log(opts.text),
464
436
  };
465
437
  }
466
- async removeSkillDirs(skillsDir) {
467
- let removed = 0;
468
- for (const workflow of ALL_WORKFLOWS) {
469
- const dirName = WORKFLOW_TO_SKILL_DIR[workflow];
470
- if (!dirName)
471
- continue;
472
- const skillDir = path.join(skillsDir, dirName);
473
- try {
474
- if (fs.existsSync(skillDir)) {
475
- await fs.promises.rm(skillDir, { recursive: true, force: true });
476
- removed++;
477
- }
478
- }
479
- catch {
480
- // Ignore errors
481
- }
482
- }
483
- return removed;
484
- }
485
438
  async removeLegacyCommands(projectPath) {
486
439
  let removed = 0;
487
440
  // Commands now live under `.claude/commands/tosx/` (managed by
@@ -490,6 +443,8 @@ export class InitCommand {
490
443
  const legacyPaths = [
491
444
  path.join(projectPath, '.agents', 'commands', 'tospec'),
492
445
  path.join(projectPath, '.claude', 'commands', 'tospec'),
446
+ // Cursor support was removed; this cleanup stays so existing users'
447
+ // stale .cursor command files still get swept away on init/update.
493
448
  ...ALL_WORKFLOWS.map((workflow) => path.join(projectPath, '.cursor', 'commands', `tospec-${workflow}.md`)),
494
449
  ];
495
450
  for (const legacyPath of legacyPaths) {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/core/init.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,QAAQ,EACR,eAAe,EACf,eAAe,GAEhB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAEL,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EAErB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,GAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAgB,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAElE,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,MAAM,cAAc,GAAG,KAAK,CAAC;AAE7B,MAAM,qBAAqB,GAA2B;IACpD,SAAS,EAAE,gBAAgB;IAC3B,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,gBAAgB;IAC3B,OAAO,EAAE,cAAc;IACvB,UAAU,EAAE,iBAAiB;IAC7B,QAAQ,EAAE,eAAe;IACzB,OAAO,EAAE,cAAc;IACvB,gBAAgB,EAAE,uBAAuB;IACzC,MAAM,EAAE,aAAa;IACrB,SAAS,EAAE,gBAAgB;CAC5B,CAAC;AAoBF,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,MAAM,OAAO,WAAW;IACL,QAAQ,CAAU;IAClB,KAAK,CAAU;IACf,iBAAiB,CAAW;IAC5B,eAAe,CAAU;IAE1C,YAAY,UAA8B,EAAE;QAC1C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,UAAkB;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,eAAe,CAAC;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAErD,gDAAgD;QAChD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAEhE,mDAAmD;QACnD,MAAM,aAAa,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAErD,uDAAuD;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAChD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;YACtE,MAAM,iBAAiB,EAAE,CAAC;QAC5B,CAAC;QAED,4EAA4E;QAC5E,+EAA+E;QAC/E,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,oCAAoC;QACpC,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QAE9C,6DAA6D;QAC7D,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QAExG,0BAA0B;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAEvE,iFAAiF;QACjF,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAE/C,wCAAwC;QACxC,MAAM,IAAI,CAAC,wBAAwB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAE5D,+DAA+D;QAC/D,wEAAwE;QACxE,uEAAuE;QACvE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAErE,6CAA6C;QAC7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QAEhG,0BAA0B;QAC1B,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IACjF,CAAC;IAED,8DAA8D;IAC9D,qBAAqB;IACrB,8DAA8D;IAEtD,KAAK,CAAC,QAAQ,CACpB,WAAmB,EACnB,UAAkB;QAElB,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAErE,0BAA0B;QAC1B,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,wCAAwC,WAAW,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,sBAAsB;QAC5B,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QACnD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC9C,OAAO,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAChE,CAAC;IAEO,sBAAsB;QAC5B,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,KAAK,MAAM,IAAI,IAAI,CAAC,eAAe,KAAK,QAAQ,EAAE,CAAC;YACzE,OAAO,IAAI,CAAC,eAAe,CAAC;QAC9B,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,eAAe,qCAAqC,CAAC,CAAC;IACjG,CAAC;IAED,8DAA8D;IAC9D,iBAAiB;IACjB,8DAA8D;IAEtD,KAAK,CAAC,gBAAgB,CAC5B,UAAwC,EACxC,UAAmB,EACnB,aAA6B,EAC7B,WAAmB;QAEnB,+BAA+B;QAC/B,MAAM,uBAAuB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACvD,IAAI,uBAAuB,KAAK,IAAI,EAAE,CAAC;YACrC,OAAO,uBAAuB,CAAC;QACjC,CAAC;QAED,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;QAC3C,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,CAAC,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC;aACtB,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;aACzC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAC7B,CAAC;QACF,MAAM,uBAAuB,GAAG,CAAC,UAAU,IAAI,iBAAiB,CAAC,IAAI,KAAK,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAEhD,kEAAkE;QAClE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,eAAe,CAAC,CAAC;YAC9B,CAAC;YACD,MAAM,IAAI,KAAK,CACb,mEAAmE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,6DAA6D,CACxJ,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,0CAA0C,CAC3C,CAAC;QACJ,CAAC;QAED,iDAAiD;QACjD,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,uCAAuC,CAAC,CAAC;QAExF,0FAA0F;QAC1F,MAAM,aAAa,GAAG,UAAU;aAC7B,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;YACd,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;YACtD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtC,MAAM,UAAU,GAAG,MAAM,EAAE,UAAU,IAAI,KAAK,CAAC;YAC/C,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAE7C,OAAO;gBACL,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,MAAM;gBAC1B,KAAK,EAAE,MAAM;gBACb,UAAU;gBACV,QAAQ,EAAE,QAAQ,IAAI,CAAC,UAAU;gBACjC,WAAW,EAAE,UAAU,IAAI,CAAC,uBAAuB,IAAI,QAAQ,IAAI,CAAC,UAAU,CAAC;aAChF,CAAC;QACJ,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,gFAAgF;YAChF,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,UAAU;gBAAE,OAAO,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU;gBAAE,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ;gBAAE,OAAO,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ;gBAAE,OAAO,CAAC,CAAC;YACxC,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QAEL,MAAM,eAAe,GAAG,UAAU;aAC/B,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;aACjD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,EAAE,IAAI,IAAI,MAAM,CAAC,CAAC;QAE7E,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,sBAAsB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,iBAAiB,GAAG,aAAa;aACpC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACpD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5B,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,cAAc,GAAG,uBAAuB;gBAC5C,CAAC,CAAC,mCAAmC;gBACrC,CAAC,CAAC,kBAAkB,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,8BAA8B,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,cAAc,GAAG,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC;YAChD,OAAO,EAAE,2BAA2B,UAAU,CAAC,MAAM,aAAa;YAClE,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE,CAAC,QAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,0BAA0B;SACpF,CAAC,CAAC;QAEH,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,eAAe;QACrB,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,gGAAgG,CACjG,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,qBAAqB,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEpE,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAAG,GAAG;aACf,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAEvC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAEpE,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAC5F,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CACjC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAC9D,CAAC;QAEF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,oBAAoB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,aAAa,EAAE,CACnF,CAAC;QACJ,CAAC;QAED,qCAAqC;QACrC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,aAAa,CACnB,OAAiB,EACjB,UAAwC;QAExC,MAAM,cAAc,GAAsF,EAAE,CAAC;QAE7G,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,YAAY,GAAG,qBAAqB,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CACb,iBAAiB,MAAM,sBAAsB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CACzE,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpB,MAAM,oBAAoB,GAAG,qBAAqB,EAAE,CAAC;gBACrD,MAAM,IAAI,KAAK,CACb,SAAS,MAAM,iFAAiF,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CACpI,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5C,cAAc,CAAC,IAAI,CAAC;gBAClB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,aAAa,EAAE,QAAQ,EAAE,UAAU,IAAI,KAAK;aAC7C,CAAC,CAAC;QACL,CAAC;QAED,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,8DAA8D;IAC9D,sBAAsB;IACtB,8DAA8D;IAEtD,KAAK,CAAC,wBAAwB,CAAC,UAAkB,EAAE,UAAmB;QAC5E,IAAI,UAAU,EAAE,CAAC;YACf,gEAAgE;YAChE,MAAM,WAAW,GAAG;gBAClB,UAAU;gBACV,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC;aAC5C,CAAC;YAEF,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,MAAM,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC7C,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,8BAA8B,CAAC,CAAC;QAElE,MAAM,WAAW,GAAG;YAClB,UAAU;YACV,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5C,CAAC;QAEF,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;YAC9B,MAAM,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,CAAC,cAAc,CAAC;YACrB,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,0BAA0B;SACjC,CAAC,CAAC;IACL,CAAC;IAED,8DAA8D;IAC9D,mBAAmB;IACnB,8DAA8D;IAEtD,KAAK,CAAC,yBAAyB,CACrC,WAAmB,EACnB,KAAwF,EACxF,YAAqB;QAOrB,MAAM,YAAY,GAAiB,EAAE,CAAC;QACtC,MAAM,cAAc,GAAiB,EAAE,CAAC;QACxC,MAAM,WAAW,GAA0C,EAAE,CAAC;QAC9D,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAE5B,uFAAuF;QACvF,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QACvC,MAAM,OAAO,GAAY,IAAI,CAAC,sBAAsB,EAAE,IAAI,YAAY,CAAC,OAAO,IAAI,MAAM,CAAC;QACzF,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QAEvE,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAEpD,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,4CAA4C;QAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACpE,KAAK,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,cAAc,EAAE,CAAC;YACnD,MAAM,YAAY,GAAG,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YACpE,MAAM,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;QACjG,CAAC;QACD,MAAM,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAC7C,mBAAmB,IAAI,MAAM,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAEpE,oBAAoB;QACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC;YAEhE,IAAI,CAAC;gBACH,qEAAqE;gBACrE,sEAAsE;gBACtE,gDAAgD;gBAChD,wEAAwE;gBACxE,+EAA+E;gBAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACnE,MAAM,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC1E,MAAM,qBAAqB,CAAC,SAAS,CAAC,CAAC;gBACvC,sEAAsE;gBACtE,qEAAqE;gBACrE,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzD,IAAI,UAAU,GAAwB,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;gBACxE,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,cAAc,EAAE,CAAC;oBACzC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;oBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAC3C,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;wBAClD,IAAI,IAAI,KAAK,MAAM;4BAAE,UAAU,GAAG,MAAM,CAAC;oBAC3C,CAAC;yBAAM,CAAC;wBACN,MAAM,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC;gBACD,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;gBAErE,qEAAqE;gBACrE,0EAA0E;gBAC1E,MAAM,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAE5D,8DAA8D;gBAC9D,IAAI,YAAY,EAAE,CAAC;oBACjB,MAAM,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBACpD,CAAC;gBAED,OAAO,CAAC,OAAO,CAAC,sBAAsB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAEnD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;oBACvB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACxC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAc,EAAE,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,OAAO;YACL,YAAY;YACZ,cAAc;YACd,WAAW;YACX,mBAAmB;SACpB,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,cAAc;IACd,8DAA8D;IAEtD,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,UAAmB;QAChE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAC1D,MAAM,gBAAgB,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAErD,IAAI,gBAAgB,IAAI,eAAe,EAAE,CAAC;YACxC,OAAO,QAAQ,CAAC;QAClB,CAAC;QAGD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,eAAe,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;YAChE,MAAM,eAAe,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YACzD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,cAAc;IACd,8DAA8D;IAEtD,qBAAqB,CAC3B,WAAmB,EACnB,KAAwF,EACxF,OAKC,EACD,YAA8C;QAE9C,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACrC,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,kCAAkC;QAClC,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,0CAA0C;QAC1C,MAAM,eAAe,GAAG,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;QAC7E,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;YACvC,MAAM,OAAO,GAAa,IAAI,CAAC,eAA2B,IAAI,YAAY,CAAC,OAAO,IAAI,MAAM,CAAC;YAC7F,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;YACvE,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClF,MAAM,UAAU,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,cAAc,QAAQ,GAAG,CAAC,CAAC;QACtD,CAAC;QAED,gBAAgB;QAChB,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxG,CAAC;QAED,IAAI,OAAO,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,CAAC,mBAAmB,yBAAyB,CAAC,CAAC;QAChF,CAAC;QAED,gBAAgB;QAChB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,uCAAuC,cAAc,GAAG,CAAC,CAAC;QACxE,CAAC;aAAM,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,mDAAmD;YACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;YAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,YAAY,CAAC,CAAC;YACxE,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;YACvH,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,WAAW,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACxD,CAAC;QAED,yDAAyD;QACzD,MAAM,SAAS,GAAG,eAAe,EAAE,CAAC;QACpC,MAAM,aAAa,GAAa,IAAI,CAAC,eAA2B,IAAI,SAAS,CAAC,OAAO,IAAI,MAAM,CAAC;QAChG,MAAM,eAAe,GAAG,CAAC,GAAG,mBAAmB,CAAC,aAAa,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;QAChF,CAAC;QAED,QAAQ;QACR,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QAExC,mDAAmD;QACnD,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzE,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAEO,YAAY,CAAC,IAAY;QAC/B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO;YACL,OAAO,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAC1C,IAAI,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YACvC,cAAc,EAAE,CAAC,IAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;SACnE,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,SAAiB;QAC7C,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC;gBACH,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5B,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;oBACjE,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,gBAAgB;YAClB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,WAAmB;QACpD,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,+DAA+D;QAC/D,4EAA4E;QAC5E,8DAA8D;QAC9D,MAAM,WAAW,GAAG;YAClB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC;YACvD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC;YACvD,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,QAAQ,KAAK,CAAC,CAAC;SAC3G,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnE,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/core/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/core/list.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAUtD,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;CAChC;AA2DD,qBAAa,WAAW;IAChB,OAAO,CAAC,UAAU,GAAE,MAAY,EAAE,IAAI,GAAE,SAAS,GAAG,OAAmB,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAwIzH"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/core/list.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAWtD,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;CAChC;AA2DD,qBAAa,WAAW;IAChB,OAAO,CAAC,UAAU,GAAE,MAAY,EAAE,IAAI,GAAE,SAAS,GAAG,OAAmB,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CAwIzH"}
package/dist/core/list.js CHANGED
@@ -5,6 +5,7 @@ import { readFileSync } from 'fs';
5
5
  import { join } from 'path';
6
6
  import { MarkdownParser } from './parsers/markdown-parser.js';
7
7
  import { readChangeMetadata } from '../utils/change-metadata.js';
8
+ import { emitSuccess } from '../commands/shared-output.js';
8
9
  /**
9
10
  * Get the most recent modification time of any file in a directory (recursive).
10
11
  * Falls back to the directory's own mtime if no files are found.
@@ -79,7 +80,7 @@ export class ListCommand {
79
80
  .map(entry => entry.name);
80
81
  if (changeDirs.length === 0) {
81
82
  if (json) {
82
- console.log(JSON.stringify({ changes: [], ...(root ? { root } : {}) }, null, 2));
83
+ emitSuccess({ changes: [] }, root);
83
84
  }
84
85
  else {
85
86
  console.log('No active changes found.');
@@ -121,7 +122,7 @@ export class ListCommand {
121
122
  lastModified: c.lastModified.toISOString(),
122
123
  status: c.totalTasks === 0 ? 'no-tasks' : c.completedTasks === c.totalTasks ? 'complete' : 'in-progress'
123
124
  }));
124
- console.log(JSON.stringify({ changes: jsonOutput, ...(root ? { root } : {}) }, null, 2));
125
+ emitSuccess({ changes: jsonOutput }, root);
125
126
  return;
126
127
  }
127
128
  // Display results
@@ -143,7 +144,7 @@ export class ListCommand {
143
144
  }
144
145
  catch {
145
146
  if (json) {
146
- console.log(JSON.stringify({ specs: [], ...(root ? { root } : {}) }, null, 2));
147
+ emitSuccess({ specs: [] }, root);
147
148
  }
148
149
  else {
149
150
  console.log('No specs found.');
@@ -154,7 +155,7 @@ export class ListCommand {
154
155
  const specDirs = entries.filter(e => e.isDirectory()).map(e => e.name);
155
156
  if (specDirs.length === 0) {
156
157
  if (json) {
157
- console.log(JSON.stringify({ specs: [], ...(root ? { root } : {}) }, null, 2));
158
+ emitSuccess({ specs: [] }, root);
158
159
  }
159
160
  else {
160
161
  console.log('No specs found.');
@@ -177,7 +178,7 @@ export class ListCommand {
177
178
  }
178
179
  specs.sort((a, b) => a.id.localeCompare(b.id));
179
180
  if (json) {
180
- console.log(JSON.stringify({ specs, ...(root ? { root } : {}) }, null, 2));
181
+ emitSuccess({ specs }, root);
181
182
  return;
182
183
  }
183
184
  console.log('Specs:');
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/core/list.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/core/list.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,10 @@ export interface MigrateSummary {
13
13
  archived: number;
14
14
  metadataCreated: number;
15
15
  };
16
+ /** REMOVED requirements dropped during main-spec normalization (`spec/name`). */
17
+ removedRequirements: string[];
18
+ /** RENAMED requirement blocks kept as MODIFIED content (`spec/name`). */
19
+ renamedKept: string[];
16
20
  }
17
21
  export declare class MigrateError extends Error {
18
22
  diagnostic?: {
@@ -37,16 +41,29 @@ export declare function convertArchiveDirName(dirName: string): string;
37
41
  export declare function normalizeMainSpec(content: string, capabilityName: string): {
38
42
  content: string;
39
43
  fixed: 'delta' | 'headerless';
44
+ /** Names of requirements a REMOVED section dropped (recorded, not silent). */
45
+ removed: string[];
46
+ /** Names of RENAMED requirement blocks whose content was kept as MODIFIED. */
47
+ renamedKept: string[];
40
48
  } | null;
41
49
  export declare class MigrateCommand {
42
50
  execute(sourceDir?: string, options?: MigrateOptions): Promise<void>;
43
51
  /** Copies config.yaml with the schema value rewritten; creates a minimal one when absent. */
44
52
  private migrateConfig;
45
53
  /**
46
- * Replaces `.openspec.yaml` with `.tospec.yaml` (schema rewritten to sdd)
47
- * inside an already-copied change directory. Returns true when the source
48
- * had no metadata file and one was created.
54
+ * Replaces `.openspec.yaml` with `.tospec.yaml` (schema rewritten to sdd,
55
+ * type/created/goal filled in) inside an already-copied change directory.
56
+ * `created` falls back to the archive dir's date or today; `goal` comes from
57
+ * the proposal's Why section or a "migrated" marker. Returns true when the
58
+ * source had no metadata file and one was created.
49
59
  */
50
60
  private migrateMetadata;
61
+ /**
62
+ * Promote the fully-built staging tree into the target. When the target
63
+ * doesn't exist, one move does it; when an (verified content-free) tospec/
64
+ * dir exists — e.g. from `tospec init` — each staged top-level entry
65
+ * replaces its counterpart. Reuses archive's EPERM/EXDEV-safe move helpers.
66
+ */
67
+ private promoteStaging;
51
68
  }
52
69
  //# sourceMappingURL=migrate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/core/migrate.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACvG,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;CACxE;AAED,qBAAa,YAAa,SAAQ,KAAK;IAG5B,UAAU,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE;gBADpC,OAAO,EAAE,MAAM,EACR,UAAU,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,YAAA;CAKvC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAO7D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GACrB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAAA;CAAE,GAAG,IAAI,CAmG3D;AASD,qBAAa,cAAc;IACnB,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAkG1E,6FAA6F;YAC/E,aAAa;IAc3B;;;;OAIG;YACW,eAAe;CAU9B"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../src/core/migrate.ts"],"names":[],"mappings":"AAiCA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC;IACvG,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,iFAAiF;IACjF,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,yEAAyE;IACzE,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,qBAAa,YAAa,SAAQ,KAAK;IAG5B,UAAU,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE;gBADpC,OAAO,EAAE,MAAM,EACR,UAAU,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,YAAA;CAKvC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAO7D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,MAAM,GACrB;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,YAAY,CAAC;IAC9B,8EAA8E;IAC9E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8EAA8E;IAC9E,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,GAAG,IAAI,CA4GP;AAmBD,qBAAa,cAAc;IACnB,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA0H1E,6FAA6F;YAC/E,aAAa;IAc3B;;;;;;OAMG;YACW,eAAe;IAe7B;;;;;OAKG;YACW,cAAc;CAiB7B"}
@@ -1,6 +1,7 @@
1
1
  import { promises as fs } from 'fs';
2
2
  import path from 'path';
3
3
  import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
4
+ import { moveDirectory, moveFile } from './archive.js';
4
5
  /**
5
6
  * `tospec migrate [openspec-dir]` — one-shot conversion of an OpenSpec project
6
7
  * layout into the tospec layout, written to `<cwd>/tospec`.
@@ -77,6 +78,8 @@ export function normalizeMainSpec(content, capabilityName) {
77
78
  // earlier ADDED one; REMOVED/RENAMED delete. Headerless files start in
78
79
  // ADDED mode (they are plain requirement lists).
79
80
  const blocks = new Map();
81
+ const removed = [];
82
+ const renamedKept = [];
80
83
  let purpose = [];
81
84
  let mode = 'ADDED';
82
85
  let section = 'none';
@@ -87,8 +90,16 @@ export function normalizeMainSpec(content, capabilityName) {
87
90
  if (mode === 'ADDED' || mode === 'MODIFIED') {
88
91
  blocks.set(currentName, current.join('\n').trim());
89
92
  }
93
+ else if (mode === 'RENAMED') {
94
+ // A RENAMED section carrying a full block: keep the content (as if
95
+ // MODIFIED) instead of losing it — the migration report flags it for
96
+ // a manual name review.
97
+ blocks.set(currentName, current.join('\n').trim());
98
+ renamedKept.push(currentName);
99
+ }
90
100
  else {
91
101
  blocks.delete(currentName);
102
+ removed.push(currentName);
92
103
  }
93
104
  }
94
105
  current = null;
@@ -150,12 +161,22 @@ export function normalizeMainSpec(content, capabilityName) {
150
161
  [...blocks.values()].join('\n\n'),
151
162
  '',
152
163
  ].join('\n');
153
- return { content: rebuilt, fixed: hasDelta ? 'delta' : 'headerless' };
164
+ return { content: rebuilt, fixed: hasDelta ? 'delta' : 'headerless', removed, renamedKept };
154
165
  }
155
- /** Rewrites the schema value in change metadata, preserving other fields. */
156
- function convertMetadata(raw) {
166
+ /**
167
+ * Rewrites the schema value in change metadata and fills the fields a
168
+ * migrated change would otherwise lack (type/created/goal), preserving any
169
+ * fields the source already had.
170
+ */
171
+ function convertMetadata(raw, defaults) {
157
172
  const parsed = raw ? (parseYaml(raw) ?? {}) : {};
158
173
  parsed.schema = TARGET_SCHEMA;
174
+ if (parsed.type === undefined)
175
+ parsed.type = 'requirement';
176
+ if (parsed.created === undefined)
177
+ parsed.created = defaults.created;
178
+ if (parsed.goal === undefined)
179
+ parsed.goal = defaults.goal;
159
180
  return stringifyYaml(parsed);
160
181
  }
161
182
  export class MigrateCommand {
@@ -201,44 +222,68 @@ export class MigrateCommand {
201
222
  const summary = {
202
223
  specs: { copied: 0, normalizedDelta: 0, normalizedHeaderless: 0, skippedEmpty: 0 },
203
224
  changes: { active: 0, archived: 0, metadataCreated: 0 },
225
+ removedRequirements: [],
226
+ renamedKept: [],
204
227
  };
205
- await fs.mkdir(path.join(target, 'specs'), { recursive: true });
206
- await fs.mkdir(path.join(target, 'changes', 'archive'), { recursive: true });
207
- await fs.mkdir(path.join(target, 'tickets', 'archive'), { recursive: true });
208
- await this.migrateConfig(source, target);
209
- for (const dir of specDirs) {
210
- const specFile = path.join(source, 'specs', dir, 'spec.md');
211
- if (!(await exists(specFile))) {
212
- summary.specs.skippedEmpty++;
213
- continue;
228
+ // Two-phase: build the whole tree in a sibling staging dir, then promote
229
+ // it into place. A mid-migration failure cleans the staging dir and leaves
230
+ // the target untouched, so a rerun isn't blocked by half-migrated content.
231
+ const staging = path.join(projectRoot, `.tospec-migrate-staging-${process.pid}`);
232
+ await fs.rm(staging, { recursive: true, force: true });
233
+ try {
234
+ await fs.mkdir(path.join(staging, 'specs'), { recursive: true });
235
+ await fs.mkdir(path.join(staging, 'changes', 'archive'), { recursive: true });
236
+ await fs.mkdir(path.join(staging, 'tickets', 'archive'), { recursive: true });
237
+ await this.migrateConfig(source, staging);
238
+ for (const dir of specDirs) {
239
+ const specFile = path.join(source, 'specs', dir, 'spec.md');
240
+ if (!(await exists(specFile))) {
241
+ summary.specs.skippedEmpty++;
242
+ continue;
243
+ }
244
+ await fs.cp(path.join(source, 'specs', dir), path.join(staging, 'specs', dir), { recursive: true });
245
+ const content = await fs.readFile(specFile, 'utf-8');
246
+ const normalized = normalizeMainSpec(content, dir);
247
+ if (normalized) {
248
+ await fs.writeFile(path.join(staging, 'specs', dir, 'spec.md'), normalized.content);
249
+ if (normalized.fixed === 'delta')
250
+ summary.specs.normalizedDelta++;
251
+ else
252
+ summary.specs.normalizedHeaderless++;
253
+ summary.removedRequirements.push(...normalized.removed.map((n) => `${dir}/${n}`));
254
+ summary.renamedKept.push(...normalized.renamedKept.map((n) => `${dir}/${n}`));
255
+ }
256
+ summary.specs.copied++;
214
257
  }
215
- await fs.cp(path.join(source, 'specs', dir), path.join(target, 'specs', dir), { recursive: true });
216
- const content = await fs.readFile(specFile, 'utf-8');
217
- const normalized = normalizeMainSpec(content, dir);
218
- if (normalized) {
219
- await fs.writeFile(path.join(target, 'specs', dir, 'spec.md'), normalized.content);
220
- if (normalized.fixed === 'delta')
221
- summary.specs.normalizedDelta++;
222
- else
223
- summary.specs.normalizedHeaderless++;
258
+ for (const dir of activeChanges) {
259
+ const dest = path.join(staging, 'changes', dir);
260
+ await fs.cp(path.join(source, 'changes', dir), dest, { recursive: true });
261
+ if (await this.migrateMetadata(dest))
262
+ summary.changes.metadataCreated++;
263
+ summary.changes.active++;
224
264
  }
225
- summary.specs.copied++;
226
- }
227
- for (const dir of activeChanges) {
228
- const dest = path.join(target, 'changes', dir);
229
- await fs.cp(path.join(source, 'changes', dir), dest, { recursive: true });
230
- if (await this.migrateMetadata(dest))
231
- summary.changes.metadataCreated++;
232
- summary.changes.active++;
265
+ for (const dir of archivedChanges) {
266
+ const dest = path.join(staging, 'changes', 'archive', convertArchiveDirName(dir));
267
+ await fs.cp(path.join(source, 'changes', 'archive', dir), dest, { recursive: true });
268
+ const created = dir.match(ARCHIVE_DATE_PREFIX);
269
+ const createdDate = created ? `${created[1]}-${created[2]}-${created[3]}` : undefined;
270
+ if (await this.migrateMetadata(dest, createdDate))
271
+ summary.changes.metadataCreated++;
272
+ summary.changes.archived++;
273
+ }
274
+ await this.promoteStaging(staging, target);
233
275
  }
234
- for (const dir of archivedChanges) {
235
- const dest = path.join(target, 'changes', 'archive', convertArchiveDirName(dir));
236
- await fs.cp(path.join(source, 'changes', 'archive', dir), dest, { recursive: true });
237
- if (await this.migrateMetadata(dest))
238
- summary.changes.metadataCreated++;
239
- summary.changes.archived++;
276
+ catch (err) {
277
+ await fs.rm(staging, { recursive: true, force: true });
278
+ throw err;
240
279
  }
241
280
  console.log(`✓ Migration complete: ${target}`);
281
+ for (const name of summary.renamedKept) {
282
+ console.log(` Warning: RENAMED requirement kept as MODIFIED content: ${name} — review its name.`);
283
+ }
284
+ if (summary.removedRequirements.length > 0) {
285
+ console.log(` REMOVED requirements dropped during normalization: ${summary.removedRequirements.join(', ')}`);
286
+ }
242
287
  console.log(` Specs: ${summary.specs.copied} copied` +
243
288
  ` (${summary.specs.normalizedDelta} delta-form + ${summary.specs.normalizedHeaderless} headerless normalized` +
244
289
  `, ${summary.specs.skippedEmpty} empty skipped)`);
@@ -262,20 +307,75 @@ export class MigrateCommand {
262
307
  }
263
308
  }
264
309
  /**
265
- * Replaces `.openspec.yaml` with `.tospec.yaml` (schema rewritten to sdd)
266
- * inside an already-copied change directory. Returns true when the source
267
- * had no metadata file and one was created.
310
+ * Replaces `.openspec.yaml` with `.tospec.yaml` (schema rewritten to sdd,
311
+ * type/created/goal filled in) inside an already-copied change directory.
312
+ * `created` falls back to the archive dir's date or today; `goal` comes from
313
+ * the proposal's Why section or a "migrated" marker. Returns true when the
314
+ * source had no metadata file and one was created.
268
315
  */
269
- async migrateMetadata(changeDir) {
316
+ async migrateMetadata(changeDir, created) {
270
317
  const sourcePath = path.join(changeDir, METADATA_SOURCE);
271
318
  const raw = (await exists(sourcePath)) ? await fs.readFile(sourcePath, 'utf-8') : null;
272
- await fs.writeFile(path.join(changeDir, METADATA_TARGET), convertMetadata(raw));
319
+ const defaults = {
320
+ created: created ?? new Date().toISOString().split('T')[0],
321
+ goal: await extractGoal(changeDir),
322
+ };
323
+ await fs.writeFile(path.join(changeDir, METADATA_TARGET), convertMetadata(raw, defaults));
273
324
  if (raw !== null) {
274
325
  await fs.rm(sourcePath);
275
326
  return false;
276
327
  }
277
328
  return true;
278
329
  }
330
+ /**
331
+ * Promote the fully-built staging tree into the target. When the target
332
+ * doesn't exist, one move does it; when an (verified content-free) tospec/
333
+ * dir exists — e.g. from `tospec init` — each staged top-level entry
334
+ * replaces its counterpart. Reuses archive's EPERM/EXDEV-safe move helpers.
335
+ */
336
+ async promoteStaging(staging, target) {
337
+ if (!(await exists(target))) {
338
+ await moveDirectory(staging, target);
339
+ return;
340
+ }
341
+ for (const entry of await fs.readdir(staging, { withFileTypes: true })) {
342
+ const from = path.join(staging, entry.name);
343
+ const to = path.join(target, entry.name);
344
+ await fs.rm(to, { recursive: true, force: true });
345
+ if (entry.isDirectory()) {
346
+ await moveDirectory(from, to);
347
+ }
348
+ else {
349
+ await moveFile(from, to);
350
+ }
351
+ }
352
+ await fs.rm(staging, { recursive: true, force: true });
353
+ }
354
+ }
355
+ /** First non-empty line of proposal.md's `## Why` section, else a marker. */
356
+ async function extractGoal(changeDir) {
357
+ const fallback = 'Migrated from OpenSpec';
358
+ let content;
359
+ try {
360
+ content = await fs.readFile(path.join(changeDir, 'proposal.md'), 'utf-8');
361
+ }
362
+ catch {
363
+ return fallback;
364
+ }
365
+ const lines = content.replace(/\r\n/g, '\n').split('\n');
366
+ let inWhy = false;
367
+ for (const line of lines) {
368
+ if (/^## Why\s*$/.test(line)) {
369
+ inWhy = true;
370
+ continue;
371
+ }
372
+ if (inWhy && /^#{1,2} /.test(line))
373
+ break;
374
+ if (inWhy && line.trim().length > 0) {
375
+ return line.trim();
376
+ }
377
+ }
378
+ return fallback;
279
379
  }
280
380
  async function exists(p) {
281
381
  return fs