strikethroo 4.1.0 → 4.2.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 (149) hide show
  1. package/README.md +2 -2
  2. package/dist/__tests__/fixtures/blueprint-trailing-summary.d.ts +14 -0
  3. package/dist/__tests__/fixtures/blueprint-trailing-summary.d.ts.map +1 -0
  4. package/dist/__tests__/fixtures/blueprint-trailing-summary.js +54 -0
  5. package/dist/__tests__/fixtures/blueprint-trailing-summary.js.map +1 -0
  6. package/dist/__tests__/fixtures/review-gate.d.ts +3 -0
  7. package/dist/__tests__/fixtures/review-gate.d.ts.map +1 -1
  8. package/dist/__tests__/fixtures/review-gate.js +5 -0
  9. package/dist/__tests__/fixtures/review-gate.js.map +1 -1
  10. package/dist/cli.js +5 -1
  11. package/dist/cli.js.map +1 -1
  12. package/dist/conflict-detector.d.ts +28 -12
  13. package/dist/conflict-detector.d.ts.map +1 -1
  14. package/dist/conflict-detector.js +45 -53
  15. package/dist/conflict-detector.js.map +1 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +97 -86
  18. package/dist/index.js.map +1 -1
  19. package/dist/metadata.d.ts +2 -1
  20. package/dist/metadata.d.ts.map +1 -1
  21. package/dist/metadata.js +3 -2
  22. package/dist/metadata.js.map +1 -1
  23. package/dist/prompts.d.ts +6 -0
  24. package/dist/prompts.d.ts.map +1 -1
  25. package/dist/prompts.js +47 -3
  26. package/dist/prompts.js.map +1 -1
  27. package/dist/serve/derivation.d.ts +17 -19
  28. package/dist/serve/derivation.d.ts.map +1 -1
  29. package/dist/serve/derivation.js +43 -82
  30. package/dist/serve/derivation.js.map +1 -1
  31. package/dist/serve/server.js +1 -1
  32. package/dist/serve/server.js.map +1 -1
  33. package/dist/serve/workspace-model.d.ts +11 -17
  34. package/dist/serve/workspace-model.d.ts.map +1 -1
  35. package/dist/serve/workspace-model.js +48 -49
  36. package/dist/serve/workspace-model.js.map +1 -1
  37. package/dist/skill-scripts/shared/blueprint-parse.d.ts +16 -0
  38. package/dist/skill-scripts/shared/blueprint-parse.d.ts.map +1 -0
  39. package/dist/skill-scripts/shared/blueprint-parse.js +66 -0
  40. package/dist/skill-scripts/shared/blueprint-parse.js.map +1 -0
  41. package/dist/skill-scripts/shared/root.d.ts +8 -0
  42. package/dist/skill-scripts/shared/root.d.ts.map +1 -1
  43. package/dist/skill-scripts/shared/root.js +17 -6
  44. package/dist/skill-scripts/shared/root.js.map +1 -1
  45. package/dist/validation/graph-checks.d.ts +6 -14
  46. package/dist/validation/graph-checks.d.ts.map +1 -1
  47. package/dist/validation/graph-checks.js +8 -15
  48. package/dist/validation/graph-checks.js.map +1 -1
  49. package/dist/validation/metadata-gate.d.ts +2 -6
  50. package/dist/validation/metadata-gate.d.ts.map +1 -1
  51. package/dist/validation/metadata-gate.js +17 -6
  52. package/dist/validation/metadata-gate.js.map +1 -1
  53. package/dist/validation/strict-pass.d.ts.map +1 -1
  54. package/dist/validation/strict-pass.js +50 -6
  55. package/dist/validation/strict-pass.js.map +1 -1
  56. package/dist-web/assets/{abnfDiagram-VCTEODGH-BCoAyQ8y.js → abnfDiagram-VCTEODGH-DSMKo3Lo.js} +1 -1
  57. package/dist-web/assets/architecture-7GRP2DOG-CsQWEZRw.js +1 -0
  58. package/dist-web/assets/{architectureDiagram-5GKGNRK7-BbYvyste.js → architectureDiagram-5GKGNRK7-DLXrZ7cD.js} +1 -1
  59. package/dist-web/assets/{blockDiagram-I7D4REHJ-CGYIKoI0.js → blockDiagram-I7D4REHJ-DtCl3qgk.js} +1 -1
  60. package/dist-web/assets/{c4Diagram-7LVT6UL2-Cpat9Q1R.js → c4Diagram-7LVT6UL2-DNDG6njL.js} +1 -1
  61. package/dist-web/assets/channel-C9Rb8ylW.js +1 -0
  62. package/dist-web/assets/{chunk-4HAMMTFA-D1PXshWJ.js → chunk-4HAMMTFA-cd5BQWYY.js} +1 -1
  63. package/dist-web/assets/{chunk-75Z2AOVW-C19f30iG.js → chunk-75Z2AOVW-B4Iofn10.js} +1 -1
  64. package/dist-web/assets/{chunk-DU6HZSFF-CV-KOPc1.js → chunk-DU6HZSFF-ERfL4Ega.js} +1 -1
  65. package/dist-web/assets/{chunk-F27PBJKO-DMfX40T1.js → chunk-F27PBJKO-D1ntHC_T.js} +1 -1
  66. package/dist-web/assets/{chunk-GMAD6QVW-Nd9kACgc.js → chunk-GMAD6QVW-Cyou3IW5.js} +1 -1
  67. package/dist-web/assets/{chunk-GVQU2GXP-3G8ojGFe.js → chunk-GVQU2GXP-9iX08DF8.js} +1 -1
  68. package/dist-web/assets/{chunk-IMKFNOWR-CmhGyHNd.js → chunk-IMKFNOWR-eAy7YfUP.js} +1 -1
  69. package/dist-web/assets/{chunk-L3NEJ4N5-Dsa1ER8Q.js → chunk-L3NEJ4N5-BJn04QE8.js} +1 -1
  70. package/dist-web/assets/{chunk-OSK3NFVY-ObCj9P3B.js → chunk-OSK3NFVY-CuDNp-j7.js} +1 -1
  71. package/dist-web/assets/{chunk-P2QGCYS3-CfNHqVGX.js → chunk-P2QGCYS3-Bat1tsgX.js} +1 -1
  72. package/dist-web/assets/{chunk-POPQ4Y6H-Cg5tk8by.js → chunk-POPQ4Y6H-BOvcVm55.js} +1 -1
  73. package/dist-web/assets/{chunk-PWAF6VOD-e6XMS-JR.js → chunk-PWAF6VOD-8H09nYSk.js} +1 -1
  74. package/dist-web/assets/{chunk-SHT3W25Y-B1M0HI76.js → chunk-SHT3W25Y-BTvguL4K.js} +1 -1
  75. package/dist-web/assets/{chunk-SVP7TREG-XLNHY4Z2.js → chunk-SVP7TREG-DZHx63GR.js} +1 -1
  76. package/dist-web/assets/{chunk-TICWLB2K-Bpm0S7rI.js → chunk-TICWLB2K-tyu3pgJH.js} +1 -1
  77. package/dist-web/assets/classDiagram-ZZMXUADV-DHEChW1m.js +1 -0
  78. package/dist-web/assets/classDiagram-v2-VYDZK3BY-DHEChW1m.js +1 -0
  79. package/dist-web/assets/{cynefin-OW5HDTMX-B5ohibc7.js → cynefin-OW5HDTMX-WdlAv2_J.js} +1 -1
  80. package/dist-web/assets/{cynefinDiagram-5FMLGOSQ-C1202n-x.js → cynefinDiagram-5FMLGOSQ-DIHRBiVh.js} +1 -1
  81. package/dist-web/assets/{dagre-GXQ25YYZ-CQlKKJXg.js → dagre-GXQ25YYZ-D3QjZ8VX.js} +1 -1
  82. package/dist-web/assets/{diagram-S7CK7UJ4-DRf7iTH9.js → diagram-S7CK7UJ4-D6MGVV5G.js} +1 -1
  83. package/dist-web/assets/{diagram-UQ7AKVKN-CxSX3b2_.js → diagram-UQ7AKVKN-DDqkv_91.js} +1 -1
  84. package/dist-web/assets/{diagram-VSXAHHWV-D9vrB5je.js → diagram-VSXAHHWV-Dr8W_DrW.js} +1 -1
  85. package/dist-web/assets/{diagram-VX7I27RA-DTOqcpBV.js → diagram-VX7I27RA-BvyNv4xo.js} +1 -1
  86. package/dist-web/assets/{diagram-Z3DM3KII-mlhRA4lR.js → diagram-Z3DM3KII-Dr2nnTnn.js} +1 -1
  87. package/dist-web/assets/{dist-DqTG_rhR.js → dist-DAL-6sRi.js} +1 -1
  88. package/dist-web/assets/{ebnfDiagram-PWID7BFC-BhB_RJPM.js → ebnfDiagram-PWID7BFC-BayLXJsB.js} +1 -1
  89. package/dist-web/assets/{erDiagram-RLTQ6QDP-0wE1kPYz.js → erDiagram-RLTQ6QDP-B9FgaeL-.js} +1 -1
  90. package/dist-web/assets/{esm-COEoxUhE.js → esm-Cks_jwvm.js} +1 -1
  91. package/dist-web/assets/eventmodeling-NTZA5JFV-k9KjzUvF.js +1 -0
  92. package/dist-web/assets/flowDiagram-HODETNUW-BZQNLfP0.js +1 -0
  93. package/dist-web/assets/{ganttDiagram-EL5Y4UJY-BsvlpHPt.js → ganttDiagram-EL5Y4UJY-CKlJQlxZ.js} +1 -1
  94. package/dist-web/assets/{gitGraph-4MIJSDKK-Dm82FCqy.js → gitGraph-4MIJSDKK-B5op-s6A.js} +1 -1
  95. package/dist-web/assets/{gitGraphDiagram-WWUBYQGX-OPit_3vA.js → gitGraphDiagram-WWUBYQGX-DEYJnUUb.js} +1 -1
  96. package/dist-web/assets/index-BT5Guxdz.js +103 -0
  97. package/dist-web/assets/index-D0npIBvI.css +2 -0
  98. package/dist-web/assets/{info-A6RAGUB7-8sl1XQWq.js → info-A6RAGUB7-B03dYZMJ.js} +1 -1
  99. package/dist-web/assets/{infoDiagram-27XIBGKW-DIpdnB7L.js → infoDiagram-27XIBGKW-DGfTl4jK.js} +1 -1
  100. package/dist-web/assets/{ishikawaDiagram-5VMMS53U-DpoLDWpF.js → ishikawaDiagram-5VMMS53U-C2Kszwks.js} +1 -1
  101. package/dist-web/assets/{journeyDiagram-3NMN7TZE-BAEbJ33U.js → journeyDiagram-3NMN7TZE-DSG206X3.js} +1 -1
  102. package/dist-web/assets/{kanban-definition-UXKFOSKX-CqzyUA0g.js → kanban-definition-UXKFOSKX-AijK7IEk.js} +1 -1
  103. package/dist-web/assets/{line-CQRHrtV_.js → line-ZpPmdhPJ.js} +1 -1
  104. package/dist-web/assets/{mermaid-parser.core-XlEvAPi2.js → mermaid-parser.core-BDBMBN3K.js} +3 -3
  105. package/dist-web/assets/{mermaid.core-CvFTFi5O.js → mermaid.core-xmU7q1sF.js} +4 -4
  106. package/dist-web/assets/{mindmap-definition-YA3MSWOX-Ch0vW4Mc.js → mindmap-definition-YA3MSWOX-ClMFp8WI.js} +1 -1
  107. package/dist-web/assets/{packet-AYTQ26CC-lk-QU-qZ.js → packet-AYTQ26CC-CRZxftC4.js} +1 -1
  108. package/dist-web/assets/{pegDiagram-XKGWAZYB-Cgf4CYg-.js → pegDiagram-XKGWAZYB-sGKK4P-b.js} +1 -1
  109. package/dist-web/assets/{pie-WAS4IAKB-dWyVjg9O.js → pie-WAS4IAKB-DnXy4iBP.js} +1 -1
  110. package/dist-web/assets/{pieDiagram-E7YTZNPT-BDZxWO8n.js → pieDiagram-E7YTZNPT-DGTI0ujK.js} +1 -1
  111. package/dist-web/assets/{quadrantDiagram-AXDQQJYC-DCu9cx1_.js → quadrantDiagram-AXDQQJYC-IZMctkA4.js} +1 -1
  112. package/dist-web/assets/{radar-RG4KPBEZ-CphwvESj.js → radar-RG4KPBEZ-DyPxU_yF.js} +1 -1
  113. package/dist-web/assets/{railroad-74A4TZTK-COTrvtXu.js → railroad-74A4TZTK-BNLfpJtL.js} +1 -1
  114. package/dist-web/assets/railroad-abnf-HS5TGJTU-B50TfKwV.js +1 -0
  115. package/dist-web/assets/railroad-ebnf-LZEXJU2U-CcWXqMNH.js +1 -0
  116. package/dist-web/assets/railroad-peg-WCYAUIDC-BBnNzmRQ.js +1 -0
  117. package/dist-web/assets/{railroadDiagram-O6MQD6OU-S9ZI1Adi.js → railroadDiagram-O6MQD6OU-BYGSbyYW.js} +1 -1
  118. package/dist-web/assets/{requirementDiagram-BXWQKSXE-a_3FElqS.js → requirementDiagram-BXWQKSXE-y60LYtq2.js} +1 -1
  119. package/dist-web/assets/{sankeyDiagram-P5KCCOFB-D-i6r8wy.js → sankeyDiagram-P5KCCOFB-Dd8NT6n-.js} +1 -1
  120. package/dist-web/assets/{sequenceDiagram-WJ2MYXX4-D8hA2m0U.js → sequenceDiagram-WJ2MYXX4-CWKxgWRW.js} +1 -1
  121. package/dist-web/assets/{stateDiagram-D77RDMKH-C14W-8zT.js → stateDiagram-D77RDMKH-CofCaTPb.js} +1 -1
  122. package/dist-web/assets/stateDiagram-v2-MP3YSRHH-Cl8-oTQC.js +1 -0
  123. package/dist-web/assets/{swimlanes-42K2YHIH-FMv8YLkC.js → swimlanes-42K2YHIH-DVeVf_fm.js} +1 -1
  124. package/dist-web/assets/swimlanesDiagram-VR7AAH4N-B5jiXJvG.js +8 -0
  125. package/dist-web/assets/{timeline-definition-24CTP7MA-DmBN45fY.js → timeline-definition-24CTP7MA-D2Ba4Kfx.js} +1 -1
  126. package/dist-web/assets/{treeView-Q6P3EWNA-C5-PUnPN.js → treeView-Q6P3EWNA-Lvie4ZUD.js} +1 -1
  127. package/dist-web/assets/{treemap-WGGIJYW6-C_veVYMi.js → treemap-WGGIJYW6-BuxLaW8I.js} +1 -1
  128. package/dist-web/assets/{vennDiagram-4TSXK5OY-CiWHjSVc.js → vennDiagram-4TSXK5OY-Cb-XIVO5.js} +1 -1
  129. package/dist-web/assets/{wardley-WFR3VGLG-FOCO1NlU.js → wardley-WFR3VGLG-BLoTGdtB.js} +1 -1
  130. package/dist-web/assets/{wardleyDiagram-VM6X3IG4-Da3kkvxV.js → wardleyDiagram-VM6X3IG4-Bv2NeJEH.js} +1 -1
  131. package/dist-web/assets/{xychartDiagram-S5SC5T6Z-DPxie1fH.js → xychartDiagram-S5SC5T6Z-C5aApyX_.js} +1 -1
  132. package/dist-web/index.html +2 -2
  133. package/package.json +8 -5
  134. package/templates/strikethroo/config/config.yaml +6 -0
  135. package/templates/strikethroo/config/hooks/CODE_REVIEW.md +2 -8
  136. package/templates/strikethroo/config/templates/TASK_TEMPLATE.md +1 -1
  137. package/dist-web/assets/architecture-7GRP2DOG-C2Oj1AcH.js +0 -1
  138. package/dist-web/assets/channel-Da0Eg5hZ.js +0 -1
  139. package/dist-web/assets/classDiagram-ZZMXUADV-CZI086hK.js +0 -1
  140. package/dist-web/assets/classDiagram-v2-VYDZK3BY-CZI086hK.js +0 -1
  141. package/dist-web/assets/eventmodeling-NTZA5JFV-DzkXb9nA.js +0 -1
  142. package/dist-web/assets/flowDiagram-HODETNUW-cgl8ipSt.js +0 -1
  143. package/dist-web/assets/index-6XzOqB6r.js +0 -103
  144. package/dist-web/assets/index-CgIHUWsX.css +0 -2
  145. package/dist-web/assets/railroad-abnf-HS5TGJTU-CYfpugMj.js +0 -1
  146. package/dist-web/assets/railroad-ebnf-LZEXJU2U--Ui_4jm6.js +0 -1
  147. package/dist-web/assets/railroad-peg-WCYAUIDC-DzcveMan.js +0 -1
  148. package/dist-web/assets/stateDiagram-v2-MP3YSRHH-Dhuhsub3.js +0 -1
  149. package/dist-web/assets/swimlanesDiagram-VR7AAH4N-O94a9jW3.js +0 -8
package/dist/index.js CHANGED
@@ -299,56 +299,113 @@ async function recordHarnessSelection(metadataPath, harnesses) {
299
299
  /**
300
300
  * Copy common template files to .ai/strikethroo directory with conflict detection
301
301
  *
302
+ * Each incoming `config/` path gets its own outcome, so one conflict never stops
303
+ * another path from being installed, refreshed, or restored. Missing or
304
+ * unusable metadata is not a first install: every existing destination is then
305
+ * untracked, and each one that differs from its incoming file needs a decision
306
+ * before anything is written. An empty or byte-identical tree needs none, and
307
+ * `force` is the only route that skips the question. The tracked tree is
308
+ * written first and the metadata last; a failed copy throws before
309
+ * `saveMetadata` runs, leaving the previous metadata in place.
310
+ *
302
311
  * @param sourceDir - Source template tree; defaults to the shipped
303
312
  * `templates/strikethroo/` path, overridden by a profile staging tree
304
313
  */
305
314
  async function copyCommonTemplates(baseDir, force, sourceDir = getTemplatePath('strikethroo')) {
306
315
  const destDir = resolvePath(baseDir, '.ai/strikethroo');
307
316
  const metadataPath = resolvePath(destDir, '.init-metadata.json');
308
- // Check if source template directory exists
309
317
  if (!(await exists(sourceDir))) {
310
318
  throw new Error(`Template directory not found: ${sourceDir}`);
311
319
  }
312
- // Load existing metadata if present
313
320
  const existingMetadata = await (0, metadata_1.loadMetadata)(metadataPath);
314
- // The ignore file is copied separately, under its final name
315
- const copyOptions = {
316
- overwrite: true,
317
- filter: (src) => path.relative(sourceDir, src) !== WORKSPACE_IGNORE_TEMPLATE,
318
- };
319
- // Scenario 1: First-time init (no metadata) - copy all files
320
- if (!existingMetadata) {
321
- await fs.copy(sourceDir, destDir, copyOptions);
322
- await copyWorkspaceIgnoreFile(sourceDir, destDir);
323
- // Create initial metadata
324
- await createMetadata(sourceDir, destDir, metadataPath);
325
- return;
321
+ const baseline = existingMetadata?.files ?? {};
322
+ let resolutions = new Map();
323
+ if (!force) {
324
+ const conflicts = await (0, conflict_detector_1.detectConflicts)(destDir, sourceDir, baseline);
325
+ if (conflicts.length > 0) {
326
+ if (!existingMetadata) {
327
+ console.log(chalk_1.default.yellow('\n⚠ .init-metadata.json is missing or unusable, so nothing under config/ has a trusted baseline.'));
328
+ }
329
+ console.log(chalk_1.default.yellow(`\n⚠ ${conflicts.length} file(s) differ from the incoming version and need a decision.\n`));
330
+ resolutions = await (0, prompts_1.promptForConflicts)(conflicts);
331
+ }
326
332
  }
327
- // Scenario 2: Force flag - overwrite all files
328
- if (force) {
329
- await fs.copy(sourceDir, destDir, copyOptions);
330
- await copyWorkspaceIgnoreFile(sourceDir, destDir);
331
- // Update metadata
332
- await createMetadata(sourceDir, destDir, metadataPath);
333
- return;
333
+ const outcomes = await refreshConfigTree(sourceDir, destDir, baseline, resolutions, force);
334
+ await copyUntrackedTemplateFiles(sourceDir, destDir);
335
+ await copyWorkspaceIgnoreFile(sourceDir, destDir);
336
+ await createMetadata(metadataPath, existingMetadata, recordBaselines(baseline, outcomes));
337
+ }
338
+ /**
339
+ * Decide and apply one outcome per incoming `config/` path.
340
+ */
341
+ async function refreshConfigTree(sourceDir, destDir, baseline, resolutions, force) {
342
+ const outcomes = [];
343
+ for (const relativePath of await (0, conflict_detector_1.getConfigFiles)(sourceDir)) {
344
+ const sourcePath = path.join(sourceDir, relativePath);
345
+ const destPath = path.join(destDir, relativePath);
346
+ const outcome = await decideRefreshOutcome(destPath, await (0, metadata_1.calculateFileHash)(sourcePath), baseline[relativePath], resolutions.get(relativePath), force);
347
+ if (outcome.kind !== 'kept' && outcome.kind !== 'unchanged') {
348
+ await fs.copy(sourcePath, destPath, { overwrite: true });
349
+ }
350
+ outcomes.push({ relativePath, ...outcome });
334
351
  }
335
- // Scenario 3: Conflict detection - check for user modifications
336
- const conflicts = await (0, conflict_detector_1.detectConflicts)(destDir, sourceDir, existingMetadata);
337
- if (conflicts.length === 0) {
338
- await fs.copy(sourceDir, destDir, copyOptions);
339
- await copyWorkspaceIgnoreFile(sourceDir, destDir);
340
- // Update metadata
341
- await createMetadata(sourceDir, destDir, metadataPath);
342
- return;
352
+ return outcomes;
353
+ }
354
+ /**
355
+ * Classify one destination against its incoming file and recorded baseline.
356
+ *
357
+ * A destination that diverged from its baseline, or that has no baseline, is
358
+ * replaced only by `force` or an explicit `overwrite` answer; with no answer it
359
+ * is kept, because only the prompt may authorize destroying a file this refresh
360
+ * did not write. A kept destination with no baseline records none.
361
+ */
362
+ async function decideRefreshOutcome(destPath, incomingHash, recordedHash, resolution, force) {
363
+ if (!(await exists(destPath))) {
364
+ return { kind: 'installed', hash: incomingHash };
343
365
  }
344
- // Conflicts detected - prompt user for resolution
345
- console.log(chalk_1.default.yellow(`\n⚠ Detected ${conflicts.length} modified file(s). Prompting for resolution...\n`));
346
- const resolutions = await (0, prompts_1.promptForConflicts)(conflicts);
347
- // Apply resolutions
348
- await applyResolutions(sourceDir, destDir, resolutions);
349
- await copyWorkspaceIgnoreFile(sourceDir, destDir);
350
- // Update metadata for all files (including resolved conflicts)
351
- await createMetadata(sourceDir, destDir, metadataPath);
366
+ const currentHash = await (0, metadata_1.calculateFileHash)(destPath);
367
+ if (currentHash === incomingHash) {
368
+ return { kind: 'unchanged', hash: incomingHash };
369
+ }
370
+ if (recordedHash !== undefined && currentHash === recordedHash) {
371
+ return { kind: 'refreshed', hash: incomingHash };
372
+ }
373
+ if (force || resolution === 'overwrite' || resolution === 'overwrite-all') {
374
+ return { kind: 'overwritten', hash: incomingHash };
375
+ }
376
+ return { kind: 'kept', hash: recordedHash };
377
+ }
378
+ /**
379
+ * Build the `files` map from the refresh outcomes.
380
+ *
381
+ * A recorded path the incoming tree no longer ships keeps its recorded hash:
382
+ * the refresh learned nothing new about it, and dropping one that is also gone
383
+ * from disk would erase the deletion `validate` reports. An outcome with no
384
+ * hash records nothing.
385
+ */
386
+ function recordBaselines(baseline, outcomes) {
387
+ const files = { ...baseline };
388
+ for (const { relativePath, hash } of outcomes) {
389
+ if (hash !== undefined) {
390
+ files[relativePath] = hash;
391
+ }
392
+ }
393
+ return files;
394
+ }
395
+ /**
396
+ * Copy the template entries outside `config/`, such as `README.md`, verbatim.
397
+ *
398
+ * Only `config/` is hash-tracked, so these refresh on every run. The ignore
399
+ * template is excluded here because it lands under a different name.
400
+ */
401
+ async function copyUntrackedTemplateFiles(sourceDir, destDir) {
402
+ await fs.copy(sourceDir, destDir, {
403
+ overwrite: true,
404
+ filter: src => {
405
+ const [first] = path.relative(sourceDir, src).split(path.sep);
406
+ return first !== 'config' && first !== WORKSPACE_IGNORE_TEMPLATE;
407
+ },
408
+ });
352
409
  }
353
410
  /**
354
411
  * Copy the workspace ignore template to its final `.gitignore` name.
@@ -368,42 +425,10 @@ async function copyWorkspaceIgnoreFile(sourceDir, destDir) {
368
425
  await fs.copy(source, path.join(destDir, WORKSPACE_IGNORE_FILE), { overwrite: true });
369
426
  }
370
427
  /**
371
- * Create or update metadata file with current file hashes
428
+ * Write the metadata for a completed refresh, carrying provenance and the
429
+ * harness selection forward from the previous metadata.
372
430
  */
373
- async function createMetadata(sourceDir, destDir, metadataPath) {
374
- const existingMetadata = await (0, metadata_1.loadMetadata)(metadataPath);
375
- const files = {};
376
- async function walkDir(dir, relativeTo) {
377
- const entries = await fs.readdir(dir, { withFileTypes: true });
378
- for (const entry of entries) {
379
- const fullPath = path.join(dir, entry.name);
380
- const relativePath = path.relative(relativeTo, fullPath);
381
- // Skip README.md (always overwrite on init/re-init)
382
- if (relativePath === 'README.md') {
383
- continue;
384
- }
385
- // Skip metadata file itself
386
- if (relativePath === '.init-metadata.json') {
387
- continue;
388
- }
389
- if (entry.isDirectory()) {
390
- await walkDir(fullPath, relativeTo);
391
- }
392
- else if (entry.isFile()) {
393
- // Calculate hash of the destination file (what we just copied)
394
- const destFilePath = path.join(destDir, relativePath);
395
- if (await exists(destFilePath)) {
396
- const hash = await (0, metadata_1.calculateFileHash)(destFilePath);
397
- files[relativePath] = hash;
398
- }
399
- }
400
- }
401
- }
402
- const configDir = path.join(destDir, 'config');
403
- if (await exists(configDir)) {
404
- await walkDir(configDir, destDir);
405
- }
406
- // Create metadata object
431
+ async function createMetadata(metadataPath, existingMetadata, files) {
407
432
  const metadata = {
408
433
  version: (0, metadata_1.getPackageVersion)(),
409
434
  workspaceSchemaVersion: metadata_1.CURRENT_WORKSPACE_SCHEMA_VERSION,
@@ -416,22 +441,8 @@ async function createMetadata(sourceDir, destDir, metadataPath) {
416
441
  if (existingMetadata?.harnesses) {
417
442
  metadata.harnesses = existingMetadata.harnesses;
418
443
  }
419
- // Save metadata
420
444
  await (0, metadata_1.saveMetadata)(metadataPath, metadata);
421
445
  }
422
- /**
423
- * Apply user resolutions to file conflicts
424
- */
425
- async function applyResolutions(sourceDir, destDir, resolutions) {
426
- for (const [relativePath, resolution] of resolutions) {
427
- const sourcePath = path.join(sourceDir, relativePath);
428
- const destPath = path.join(destDir, relativePath);
429
- if (resolution === 'overwrite') {
430
- await fs.copy(sourcePath, destPath, { overwrite: true });
431
- }
432
- // If 'keep', do nothing - keep user's file
433
- }
434
- }
435
446
  /**
436
447
  * Check if a directory already has Strikethroo initialized
437
448
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,8 @@ export declare function calculateFileHash(filePath: string): Promise<string>;
24
24
  * Load metadata from .init-metadata.json file
25
25
  * @param metadataPath - Absolute path to metadata file
26
26
  * @returns InitMetadata object, or null when the file is absent or its JSON is
27
- * not usable metadata (first-time init)
27
+ * not usable metadata. The caller decides what null means: a first install
28
+ * when the workspace holds nothing, an untrusted baseline when it does
28
29
  * @throws FileSystemError when the file or a workspace parent is a symbolic
29
30
  * link or otherwise not a regular entry; this is never treated as first-time
30
31
  * init, so a link cannot bypass conflict protection
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AAGxD;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASzE;AAsDD;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA2BrF;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAa9F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAK1C"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAmB,YAAY,EAAE,MAAM,SAAS,CAAC;AAGxD;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASzE;AAsDD;;;;;;;;;GASG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CA2BrF;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAa9F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAK1C"}
package/dist/metadata.js CHANGED
@@ -122,7 +122,8 @@ function describeRefusal(metadataPath, refusal) {
122
122
  * Load metadata from .init-metadata.json file
123
123
  * @param metadataPath - Absolute path to metadata file
124
124
  * @returns InitMetadata object, or null when the file is absent or its JSON is
125
- * not usable metadata (first-time init)
125
+ * not usable metadata. The caller decides what null means: a first install
126
+ * when the workspace holds nothing, an untrusted baseline when it does
126
127
  * @throws FileSystemError when the file or a workspace parent is a symbolic
127
128
  * link or otherwise not a regular entry; this is never treated as first-time
128
129
  * init, so a link cannot bypass conflict protection
@@ -148,7 +149,7 @@ async function loadMetadata(metadataPath) {
148
149
  return metadata;
149
150
  }
150
151
  catch {
151
- // Corrupted or invalid JSON is treated as first-time init
152
+ // Corrupted or invalid JSON is unusable metadata; the caller decides what that means
152
153
  return null;
153
154
  }
154
155
  }
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
package/dist/prompts.d.ts CHANGED
@@ -14,8 +14,14 @@ import { FileConflict, ConflictResolution } from './types';
14
14
  export declare function promptForResolution(conflict: FileConflict, remainingCount: number): Promise<ConflictResolution>;
15
15
  /**
16
16
  * Process all file conflicts with user prompts
17
+ *
18
+ * Refuses up front when standard input is not a terminal: a prompt that cannot
19
+ * be answered must not be rendered, and the caller treats the thrown error as
20
+ * a failed refresh with nothing written. `--force` is the non-interactive route.
21
+ *
17
22
  * @param conflicts - Array of FileConflict objects
18
23
  * @returns Map of relative paths to resolution decisions
24
+ * @throws Error when conflicts exist and the session cannot prompt
19
25
  */
20
26
  export declare function promptForConflicts(conflicts: FileConflict[]): Promise<Map<string, ConflictResolution>>;
21
27
  //# sourceMappingURL=prompts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AA4C3D;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,YAAY,EACtB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAqD7B;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,YAAY,EAAE,GACxB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CA+B1C"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AA8E3D;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,YAAY,EACtB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAqE7B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,YAAY,EAAE,GACxB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAmC1C"}
package/dist/prompts.js CHANGED
@@ -14,6 +14,32 @@ exports.promptForConflicts = promptForConflicts;
14
14
  const inquirer_1 = __importDefault(require("inquirer"));
15
15
  const diff_1 = require("diff");
16
16
  const chalk_1 = __importDefault(require("chalk"));
17
+ const conflict_detector_1 = require("./conflict-detector");
18
+ /** Whether the destination has no recorded baseline to compare against. */
19
+ function isUntracked(conflict) {
20
+ return conflict.originalHash === conflict_detector_1.NO_RECORDED_BASELINE;
21
+ }
22
+ /**
23
+ * Explain why a session that cannot prompt refuses to continue.
24
+ *
25
+ * Names every conflicting path so the user can inspect them, says which ones
26
+ * have no recorded baseline, and names the two ways forward.
27
+ */
28
+ function describeNonInteractiveRefusal(conflicts) {
29
+ const untracked = conflicts.filter(isUntracked);
30
+ const lines = [
31
+ `${conflicts.length} file(s) under .ai/strikethroo/config/ differ from the incoming version and ` +
32
+ 'need a decision, but standard input is not an interactive terminal so none can be asked:',
33
+ ...conflicts.map(conflict => ` ${conflict.relativePath}${isUntracked(conflict) ? ' (not tracked)' : ''}`),
34
+ ];
35
+ if (untracked.length > 0) {
36
+ lines.push(`${untracked.length} of them have no recorded baseline in .init-metadata.json, so the metadata ` +
37
+ 'cannot be trusted to tell a customization from a stale copy.');
38
+ }
39
+ lines.push('Re-run in a terminal to decide per file, or pass --force to overwrite every conflicting ' +
40
+ 'file with the incoming version.');
41
+ return lines.join('\n');
42
+ }
17
43
  /**
18
44
  * Format and colorize a unified diff for display
19
45
  * @param diff - Unified diff string from diff library
@@ -58,8 +84,15 @@ async function promptForResolution(conflict, remainingCount) {
58
84
  console.log('');
59
85
  console.log(chalk_1.default.bold.yellow('⚠️ File Conflict Detected'));
60
86
  console.log('');
61
- console.log(chalk_1.default.bold(`File: ${chalk_1.default.cyan(conflict.relativePath)} has been modified since last init.`));
62
- console.log(chalk_1.default.yellow('Your changes will be lost if you choose to overwrite with the new version.'));
87
+ if (isUntracked(conflict)) {
88
+ console.log(chalk_1.default.bold(`File: ${chalk_1.default.cyan(conflict.relativePath)} is not tracked in .init-metadata.json.`));
89
+ console.log(chalk_1.default.yellow('There is no record of what Strikethroo last wrote here, and the file differs from the ' +
90
+ 'incoming version. It will be lost if you overwrite it.'));
91
+ }
92
+ else {
93
+ console.log(chalk_1.default.bold(`File: ${chalk_1.default.cyan(conflict.relativePath)} has been modified since last init.`));
94
+ console.log(chalk_1.default.yellow('Your changes will be lost if you choose to overwrite with the new version.'));
95
+ }
63
96
  console.log('');
64
97
  // Generate and display unified diff
65
98
  const diff = generateDiff(conflict);
@@ -68,7 +101,9 @@ async function promptForResolution(conflict, remainingCount) {
68
101
  // Build choices based on remaining conflicts
69
102
  const choices = [
70
103
  {
71
- name: 'Keep my changes (skip update)',
104
+ name: isUntracked(conflict)
105
+ ? 'Keep the existing file (skip update)'
106
+ : 'Keep my changes (skip update)',
72
107
  value: 'keep',
73
108
  },
74
109
  {
@@ -98,10 +133,19 @@ async function promptForResolution(conflict, remainingCount) {
98
133
  }
99
134
  /**
100
135
  * Process all file conflicts with user prompts
136
+ *
137
+ * Refuses up front when standard input is not a terminal: a prompt that cannot
138
+ * be answered must not be rendered, and the caller treats the thrown error as
139
+ * a failed refresh with nothing written. `--force` is the non-interactive route.
140
+ *
101
141
  * @param conflicts - Array of FileConflict objects
102
142
  * @returns Map of relative paths to resolution decisions
143
+ * @throws Error when conflicts exist and the session cannot prompt
103
144
  */
104
145
  async function promptForConflicts(conflicts) {
146
+ if (conflicts.length > 0 && !process.stdin.isTTY) {
147
+ throw new Error(describeNonInteractiveRefusal(conflicts));
148
+ }
105
149
  const resolutions = new Map();
106
150
  let batchResolution = null;
107
151
  for (let i = 0; i < conflicts.length; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@
10
10
  * network, no writes.
11
11
  */
12
12
  import { type MarkdownSection } from './markdown';
13
+ import { type BlueprintPhase } from '../skill-scripts/shared/blueprint-parse';
13
14
  /** A single task parsed from a plan's `tasks/` directory. */
14
15
  export interface Task {
15
16
  id: number | undefined;
@@ -28,6 +29,8 @@ export interface Task {
28
29
  * `PlanDetail.sections`). Additive to `body`, which is retained. */
29
30
  sections: MarkdownSection[];
30
31
  }
32
+ /** The task frontmatter that state derivation and phase inference read. */
33
+ export type TaskMeta = Pick<Task, 'id' | 'dependencies' | 'status'>;
31
34
  /** Derived lifecycle state of a plan. */
32
35
  export type PlanState = 'drafted' | 'ready' | 'doing' | 'done';
33
36
  /** Derived state plus done/total counts. */
@@ -36,19 +39,18 @@ export interface DerivedState {
36
39
  done: number;
37
40
  total: number;
38
41
  }
39
- /** An execution phase: an ordered group of task ids that run together. */
40
- export interface Phase {
41
- /** 1-based phase index. */
42
- index: number;
43
- /** Optional descriptive name (from a blueprint doc). */
44
- name?: string;
45
- /** Task ids scheduled in this phase. */
46
- taskIds: number[];
42
+ /** An execution phase as the viewer presents it: the shared shape plus `parallel`. */
43
+ export interface Phase extends BlueprintPhase {
47
44
  /** True when the phase holds more than one task. */
48
45
  parallel: boolean;
49
46
  }
50
- /** Reads a plan directory's `tasks/*.md` into structured records. Missing dir -> []. */
47
+ /** Reads a plan directory's `tasks/*.md` into full records. Missing dir -> []. */
51
48
  export declare const scanTasks: (planDir: string) => Task[];
49
+ /**
50
+ * The list read's task scan: frontmatter only. No title, body, or sections are
51
+ * built, which is what keeps `/api/plans` cheap.
52
+ */
53
+ export declare const scanTaskMeta: (planDir: string) => TaskMeta[];
52
54
  /**
53
55
  * Computes the derived plan state and counts. Never throws on unknown statuses.
54
56
  *
@@ -57,12 +59,7 @@ export declare const scanTasks: (planDir: string) => Task[];
57
59
  * - all done -> `done`
58
60
  * - otherwise -> `doing`
59
61
  */
60
- export declare const deriveState: (tasks: Task[]) => DerivedState;
61
- /**
62
- * Parses phases from an "## Execution Blueprint" section if the plan body
63
- * contains one. Returns undefined when no blueprint section is present.
64
- */
65
- export declare const parseBlueprintPhases: (planBody: string) => Phase[] | undefined;
62
+ export declare const deriveState: (tasks: readonly TaskMeta[]) => DerivedState;
66
63
  /**
67
64
  * Infers phases from tasks by grouping on satisfied dependencies. Tasks whose
68
65
  * dependencies are all already emitted (or absent from the task set) form a
@@ -70,10 +67,11 @@ export declare const parseBlueprintPhases: (planBody: string) => Phase[] | undef
70
67
  * progress is made, the remaining tasks are emitted as a final phase rather
71
68
  * than looping forever. Never throws.
72
69
  */
73
- export declare const inferPhases: (tasks: Task[]) => Phase[];
70
+ export declare const inferPhases: (tasks: readonly TaskMeta[]) => Phase[];
74
71
  /**
75
- * Resolves a plan's phases: parses a blueprint document's phase list when the
76
- * plan body contains one, otherwise infers phases from task dependencies.
72
+ * Resolves a plan's phases: the shared blueprint parser's phases when the plan
73
+ * body carries an `## Execution Blueprint` section with phase headings, otherwise
74
+ * phases inferred from task dependencies.
77
75
  */
78
- export declare const resolvePhases: (planBody: string, tasks: Task[]) => Phase[];
76
+ export declare const resolvePhases: (planBody: string, tasks: readonly TaskMeta[]) => Phase[];
79
77
  //# sourceMappingURL=derivation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"derivation.d.ts","sourceRoot":"","sources":["../../src/serve/derivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAEpB,6DAA6D;AAC7D,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb;wEACoE;IACpE,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,yCAAyC;AACzC,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAE/D,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,0EAA0E;AAC1E,MAAM,WAAW,KAAK;IACpB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,oDAAoD;IACpD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAKD,wFAAwF;AACxF,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,KAAG,IAAI,EAwC/C,CAAC;AASF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,IAAI,EAAE,KAAG,YA4B3C,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,UAAU,MAAM,KAAG,KAAK,EAAE,GAAG,SA6CjE,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,IAAI,EAAE,KAAG,KAAK,EA0BhD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,EAAE,OAAO,IAAI,EAAE,KAAG,KAAK,EAIpE,CAAC"}
1
+ {"version":3,"file":"derivation.d.ts","sourceRoot":"","sources":["../../src/serve/derivation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAKL,KAAK,eAAe,EAErB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEpG,6DAA6D;AAC7D,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb;wEACoE;IACpE,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,2EAA2E;AAC3E,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc,GAAG,QAAQ,CAAC,CAAC;AAEpE,yCAAyC;AACzC,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;AAE/D,4CAA4C;AAC5C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,sFAAsF;AACtF,MAAM,WAAW,KAAM,SAAQ,cAAc;IAC3C,oDAAoD;IACpD,QAAQ,EAAE,OAAO,CAAC;CACnB;AA2CD,kFAAkF;AAClF,eAAO,MAAM,SAAS,GAAI,SAAS,MAAM,KAAG,IAAI,EAe5C,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,QAAQ,EAKlD,CAAC;AASN;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,SAAS,QAAQ,EAAE,KAAG,YA4BxD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,SAAS,QAAQ,EAAE,KAAG,KAAK,EA0B7D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,EAAE,OAAO,SAAS,QAAQ,EAAE,KAAG,KAAK,EAMjF,CAAC"}