@seanmars/tospec 0.23.0 → 0.26.0-beta

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 (358) hide show
  1. package/CHANGELOG.md +281 -0
  2. package/README.md +27 -9
  3. package/assets/claude-mod/tospec-dashboard/.claude-plugin/plugin.json +7 -0
  4. package/assets/claude-mod/tospec-dashboard/hooks/hooks.json +1 -0
  5. package/assets/claude-mod/tospec-dashboard/hooks/register.ts +695 -0
  6. package/assets/claude-mod/tospec-dashboard/tests/register.test.ts +448 -0
  7. package/assets/claude-mod/tospec-dashboard/types/index.d.ts +8 -0
  8. package/assets/dashboard/app.js +218 -1180
  9. package/assets/dashboard/index.html +31 -22
  10. package/assets/dashboard/lib/charts.js +355 -0
  11. package/assets/dashboard/lib/derive.js +375 -0
  12. package/assets/dashboard/lib/dom.js +121 -0
  13. package/assets/dashboard/lib/routes.js +52 -0
  14. package/assets/dashboard/lib/store.js +326 -0
  15. package/assets/dashboard/style.css +3103 -664
  16. package/assets/dashboard/views/alerts.js +170 -0
  17. package/assets/dashboard/views/change.js +234 -0
  18. package/assets/dashboard/views/docs.js +214 -0
  19. package/assets/dashboard/views/home.js +357 -0
  20. package/assets/dashboard/views/project.js +168 -0
  21. package/assets/dashboard/views/session.js +270 -0
  22. package/assets/dashboard/views/sidebar.js +131 -0
  23. package/dist/cli/index.d.ts.map +1 -1
  24. package/dist/cli/index.js +116 -102
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/commands/config.d.ts.map +1 -1
  27. package/dist/commands/config.js +213 -100
  28. package/dist/commands/config.js.map +1 -1
  29. package/dist/commands/dashboard-relay.d.ts +11 -0
  30. package/dist/commands/dashboard-relay.d.ts.map +1 -0
  31. package/dist/commands/dashboard-relay.js +88 -0
  32. package/dist/commands/dashboard-relay.js.map +1 -0
  33. package/dist/commands/dashboard.d.ts +69 -100
  34. package/dist/commands/dashboard.d.ts.map +1 -1
  35. package/dist/commands/dashboard.js +420 -598
  36. package/dist/commands/dashboard.js.map +1 -1
  37. package/dist/commands/decision.d.ts +38 -1
  38. package/dist/commands/decision.d.ts.map +1 -1
  39. package/dist/commands/decision.js +303 -27
  40. package/dist/commands/decision.js.map +1 -1
  41. package/dist/commands/metrics.d.ts +3 -4
  42. package/dist/commands/metrics.d.ts.map +1 -1
  43. package/dist/commands/metrics.js +3 -5
  44. package/dist/commands/metrics.js.map +1 -1
  45. package/dist/commands/shared-output.d.ts +24 -0
  46. package/dist/commands/shared-output.d.ts.map +1 -1
  47. package/dist/commands/shared-output.js +21 -2
  48. package/dist/commands/shared-output.js.map +1 -1
  49. package/dist/commands/show.d.ts.map +1 -1
  50. package/dist/commands/show.js +12 -9
  51. package/dist/commands/show.js.map +1 -1
  52. package/dist/commands/validate.d.ts +19 -0
  53. package/dist/commands/validate.d.ts.map +1 -1
  54. package/dist/commands/validate.js +243 -64
  55. package/dist/commands/validate.js.map +1 -1
  56. package/dist/commands/workflow/instructions.d.ts +7 -1
  57. package/dist/commands/workflow/instructions.d.ts.map +1 -1
  58. package/dist/commands/workflow/instructions.js +299 -81
  59. package/dist/commands/workflow/instructions.js.map +1 -1
  60. package/dist/commands/workflow/new-change.d.ts.map +1 -1
  61. package/dist/commands/workflow/new-change.js +26 -17
  62. package/dist/commands/workflow/new-change.js.map +1 -1
  63. package/dist/commands/workflow/prompt-escape.d.ts +25 -0
  64. package/dist/commands/workflow/prompt-escape.d.ts.map +1 -0
  65. package/dist/commands/workflow/prompt-escape.js +62 -0
  66. package/dist/commands/workflow/prompt-escape.js.map +1 -0
  67. package/dist/commands/workflow/schemas.d.ts.map +1 -1
  68. package/dist/commands/workflow/schemas.js +34 -16
  69. package/dist/commands/workflow/schemas.js.map +1 -1
  70. package/dist/commands/workflow/shared.d.ts +46 -10
  71. package/dist/commands/workflow/shared.d.ts.map +1 -1
  72. package/dist/commands/workflow/shared.js +66 -30
  73. package/dist/commands/workflow/shared.js.map +1 -1
  74. package/dist/commands/workflow/status.d.ts +5 -2
  75. package/dist/commands/workflow/status.d.ts.map +1 -1
  76. package/dist/commands/workflow/status.js +62 -28
  77. package/dist/commands/workflow/status.js.map +1 -1
  78. package/dist/core/archive.d.ts +38 -0
  79. package/dist/core/archive.d.ts.map +1 -1
  80. package/dist/core/archive.js +492 -75
  81. package/dist/core/archive.js.map +1 -1
  82. package/dist/core/artifact-graph/index.d.ts +2 -2
  83. package/dist/core/artifact-graph/index.d.ts.map +1 -1
  84. package/dist/core/artifact-graph/index.js +2 -2
  85. package/dist/core/artifact-graph/index.js.map +1 -1
  86. package/dist/core/artifact-graph/instruction-loader.d.ts +8 -0
  87. package/dist/core/artifact-graph/instruction-loader.d.ts.map +1 -1
  88. package/dist/core/artifact-graph/instruction-loader.js +58 -36
  89. package/dist/core/artifact-graph/instruction-loader.js.map +1 -1
  90. package/dist/core/artifact-graph/resolver.d.ts +39 -12
  91. package/dist/core/artifact-graph/resolver.d.ts.map +1 -1
  92. package/dist/core/artifact-graph/resolver.js +82 -36
  93. package/dist/core/artifact-graph/resolver.js.map +1 -1
  94. package/dist/core/artifact-graph/schema.d.ts +24 -0
  95. package/dist/core/artifact-graph/schema.d.ts.map +1 -1
  96. package/dist/core/artifact-graph/schema.js +32 -1
  97. package/dist/core/artifact-graph/schema.js.map +1 -1
  98. package/dist/core/artifact-graph/stub-detection.d.ts +10 -2
  99. package/dist/core/artifact-graph/stub-detection.d.ts.map +1 -1
  100. package/dist/core/artifact-graph/stub-detection.js +18 -11
  101. package/dist/core/artifact-graph/stub-detection.js.map +1 -1
  102. package/dist/core/artifact-graph/types.d.ts +2 -2
  103. package/dist/core/artifact-graph/types.d.ts.map +1 -1
  104. package/dist/core/artifact-graph/types.js +10 -1
  105. package/dist/core/artifact-graph/types.js.map +1 -1
  106. package/dist/core/change-metadata/schema.d.ts.map +1 -1
  107. package/dist/core/change-metadata/schema.js +18 -4
  108. package/dist/core/change-metadata/schema.js.map +1 -1
  109. package/dist/core/change-presenter.d.ts.map +1 -1
  110. package/dist/core/change-presenter.js +13 -8
  111. package/dist/core/change-presenter.js.map +1 -1
  112. package/dist/core/change-status-policy.d.ts.map +1 -1
  113. package/dist/core/change-status-policy.js +3 -1
  114. package/dist/core/change-status-policy.js.map +1 -1
  115. package/dist/core/codex-metrics.d.ts +1 -1
  116. package/dist/core/codex-metrics.js +1 -1
  117. package/dist/core/config-schema.d.ts +8 -0
  118. package/dist/core/config-schema.d.ts.map +1 -1
  119. package/dist/core/config-schema.js +10 -0
  120. package/dist/core/config-schema.js.map +1 -1
  121. package/dist/core/dashboard-activity.d.ts +4 -4
  122. package/dist/core/dashboard-activity.js +4 -4
  123. package/dist/core/dashboard-data.d.ts +11 -5
  124. package/dist/core/dashboard-data.d.ts.map +1 -1
  125. package/dist/core/dashboard-data.js +54 -28
  126. package/dist/core/dashboard-data.js.map +1 -1
  127. package/dist/core/dashboard-hub.d.ts +258 -0
  128. package/dist/core/dashboard-hub.d.ts.map +1 -0
  129. package/dist/core/dashboard-hub.js +655 -0
  130. package/dist/core/dashboard-hub.js.map +1 -0
  131. package/dist/core/dashboard-routes.d.ts +57 -0
  132. package/dist/core/dashboard-routes.d.ts.map +1 -0
  133. package/dist/core/dashboard-routes.js +398 -0
  134. package/dist/core/dashboard-routes.js.map +1 -0
  135. package/dist/core/global-config.d.ts +71 -2
  136. package/dist/core/global-config.d.ts.map +1 -1
  137. package/dist/core/global-config.js +149 -4
  138. package/dist/core/global-config.js.map +1 -1
  139. package/dist/core/id.d.ts +9 -0
  140. package/dist/core/id.d.ts.map +1 -1
  141. package/dist/core/id.js +37 -0
  142. package/dist/core/id.js.map +1 -1
  143. package/dist/core/init.d.ts +9 -2
  144. package/dist/core/init.d.ts.map +1 -1
  145. package/dist/core/init.js +119 -33
  146. package/dist/core/init.js.map +1 -1
  147. package/dist/core/list.d.ts.map +1 -1
  148. package/dist/core/list.js +69 -45
  149. package/dist/core/list.js.map +1 -1
  150. package/dist/core/local-server.d.ts +10 -3
  151. package/dist/core/local-server.d.ts.map +1 -1
  152. package/dist/core/local-server.js +25 -5
  153. package/dist/core/local-server.js.map +1 -1
  154. package/dist/core/markdown-render.d.ts.map +1 -1
  155. package/dist/core/markdown-render.js +7 -2
  156. package/dist/core/markdown-render.js.map +1 -1
  157. package/dist/core/migrate.d.ts +24 -2
  158. package/dist/core/migrate.d.ts.map +1 -1
  159. package/dist/core/migrate.js +335 -59
  160. package/dist/core/migrate.js.map +1 -1
  161. package/dist/core/parsers/change-parser.d.ts +20 -1
  162. package/dist/core/parsers/change-parser.d.ts.map +1 -1
  163. package/dist/core/parsers/change-parser.js +76 -73
  164. package/dist/core/parsers/change-parser.js.map +1 -1
  165. package/dist/core/parsers/markdown-parser.d.ts +24 -0
  166. package/dist/core/parsers/markdown-parser.d.ts.map +1 -1
  167. package/dist/core/parsers/markdown-parser.js +65 -10
  168. package/dist/core/parsers/markdown-parser.js.map +1 -1
  169. package/dist/core/parsers/requirement-blocks.d.ts +127 -6
  170. package/dist/core/parsers/requirement-blocks.d.ts.map +1 -1
  171. package/dist/core/parsers/requirement-blocks.js +349 -56
  172. package/dist/core/parsers/requirement-blocks.js.map +1 -1
  173. package/dist/core/parsers/requirement-text.d.ts +25 -1
  174. package/dist/core/parsers/requirement-text.d.ts.map +1 -1
  175. package/dist/core/parsers/requirement-text.js +62 -6
  176. package/dist/core/parsers/requirement-text.js.map +1 -1
  177. package/dist/core/parsers/spec-structure.d.ts.map +1 -1
  178. package/dist/core/parsers/spec-structure.js +36 -24
  179. package/dist/core/parsers/spec-structure.js.map +1 -1
  180. package/dist/core/project-config.d.ts +9 -2
  181. package/dist/core/project-config.d.ts.map +1 -1
  182. package/dist/core/project-config.js +30 -7
  183. package/dist/core/project-config.js.map +1 -1
  184. package/dist/core/project-layout.d.ts +26 -0
  185. package/dist/core/project-layout.d.ts.map +1 -1
  186. package/dist/core/project-layout.js +51 -1
  187. package/dist/core/project-layout.js.map +1 -1
  188. package/dist/core/schema-names.d.ts +17 -0
  189. package/dist/core/schema-names.d.ts.map +1 -1
  190. package/dist/core/schema-names.js +24 -0
  191. package/dist/core/schema-names.js.map +1 -1
  192. package/dist/core/shared/dashboard-mod.d.ts +24 -0
  193. package/dist/core/shared/dashboard-mod.d.ts.map +1 -0
  194. package/dist/core/shared/dashboard-mod.js +44 -0
  195. package/dist/core/shared/dashboard-mod.js.map +1 -0
  196. package/dist/core/shared/index.d.ts +2 -1
  197. package/dist/core/shared/index.d.ts.map +1 -1
  198. package/dist/core/shared/index.js +2 -1
  199. package/dist/core/shared/index.js.map +1 -1
  200. package/dist/core/shared/rules-generation.d.ts +12 -0
  201. package/dist/core/shared/rules-generation.d.ts.map +1 -1
  202. package/dist/core/shared/rules-generation.js +26 -2
  203. package/dist/core/shared/rules-generation.js.map +1 -1
  204. package/dist/core/shared/skill-generation.d.ts +7 -0
  205. package/dist/core/shared/skill-generation.d.ts.map +1 -1
  206. package/dist/core/shared/skill-generation.js +19 -0
  207. package/dist/core/shared/skill-generation.js.map +1 -1
  208. package/dist/core/shared/tool-detection.d.ts +10 -1
  209. package/dist/core/shared/tool-detection.d.ts.map +1 -1
  210. package/dist/core/shared/tool-detection.js +37 -6
  211. package/dist/core/shared/tool-detection.js.map +1 -1
  212. package/dist/core/spec-presenter.d.ts.map +1 -1
  213. package/dist/core/spec-presenter.js +23 -1
  214. package/dist/core/spec-presenter.js.map +1 -1
  215. package/dist/core/specs-apply.d.ts +98 -1
  216. package/dist/core/specs-apply.d.ts.map +1 -1
  217. package/dist/core/specs-apply.js +426 -63
  218. package/dist/core/specs-apply.js.map +1 -1
  219. package/dist/core/templates/fragments/change-diff.d.ts +37 -0
  220. package/dist/core/templates/fragments/change-diff.d.ts.map +1 -0
  221. package/dist/core/templates/fragments/change-diff.js +37 -0
  222. package/dist/core/templates/fragments/change-diff.js.map +1 -0
  223. package/dist/core/templates/fragments/sync-fail.d.ts +8 -0
  224. package/dist/core/templates/fragments/sync-fail.d.ts.map +1 -0
  225. package/dist/core/templates/fragments/sync-fail.js +8 -0
  226. package/dist/core/templates/fragments/sync-fail.js.map +1 -0
  227. package/dist/core/templates/fragments/validate.d.ts +14 -1
  228. package/dist/core/templates/fragments/validate.d.ts.map +1 -1
  229. package/dist/core/templates/fragments/validate.js +14 -1
  230. package/dist/core/templates/fragments/validate.js.map +1 -1
  231. package/dist/core/templates/fragments/verify.d.ts +2 -2
  232. package/dist/core/templates/fragments/verify.d.ts.map +1 -1
  233. package/dist/core/templates/fragments/verify.js +8 -5
  234. package/dist/core/templates/fragments/verify.js.map +1 -1
  235. package/dist/core/templates/workflows/apply.d.ts +1 -1
  236. package/dist/core/templates/workflows/apply.d.ts.map +1 -1
  237. package/dist/core/templates/workflows/apply.js +29 -10
  238. package/dist/core/templates/workflows/apply.js.map +1 -1
  239. package/dist/core/templates/workflows/archive.d.ts.map +1 -1
  240. package/dist/core/templates/workflows/archive.js +27 -9
  241. package/dist/core/templates/workflows/archive.js.map +1 -1
  242. package/dist/core/templates/workflows/decision.d.ts.map +1 -1
  243. package/dist/core/templates/workflows/decision.js +10 -4
  244. package/dist/core/templates/workflows/decision.js.map +1 -1
  245. package/dist/core/templates/workflows/explore.d.ts +2 -2
  246. package/dist/core/templates/workflows/explore.d.ts.map +1 -1
  247. package/dist/core/templates/workflows/explore.js +7 -3
  248. package/dist/core/templates/workflows/explore.js.map +1 -1
  249. package/dist/core/templates/workflows/grill.d.ts +2 -2
  250. package/dist/core/templates/workflows/grill.d.ts.map +1 -1
  251. package/dist/core/templates/workflows/grill.js +5 -4
  252. package/dist/core/templates/workflows/grill.js.map +1 -1
  253. package/dist/core/templates/workflows/issue.d.ts.map +1 -1
  254. package/dist/core/templates/workflows/issue.js +9 -3
  255. package/dist/core/templates/workflows/issue.js.map +1 -1
  256. package/dist/core/templates/workflows/propose.d.ts.map +1 -1
  257. package/dist/core/templates/workflows/propose.js +4 -1
  258. package/dist/core/templates/workflows/propose.js.map +1 -1
  259. package/dist/core/templates/workflows/sync.d.ts.map +1 -1
  260. package/dist/core/templates/workflows/sync.js +25 -11
  261. package/dist/core/templates/workflows/sync.js.map +1 -1
  262. package/dist/core/templates/workflows/update.d.ts.map +1 -1
  263. package/dist/core/templates/workflows/update.js +17 -10
  264. package/dist/core/templates/workflows/update.js.map +1 -1
  265. package/dist/core/update.d.ts +5 -0
  266. package/dist/core/update.d.ts.map +1 -1
  267. package/dist/core/update.js +69 -29
  268. package/dist/core/update.js.map +1 -1
  269. package/dist/core/validation/constants.d.ts +7 -1
  270. package/dist/core/validation/constants.d.ts.map +1 -1
  271. package/dist/core/validation/constants.js +16 -2
  272. package/dist/core/validation/constants.js.map +1 -1
  273. package/dist/core/validation/purpose-placeholder.d.ts.map +1 -1
  274. package/dist/core/validation/purpose-placeholder.js +35 -11
  275. package/dist/core/validation/purpose-placeholder.js.map +1 -1
  276. package/dist/core/validation/section-validator.d.ts +7 -0
  277. package/dist/core/validation/section-validator.d.ts.map +1 -1
  278. package/dist/core/validation/section-validator.js +22 -2
  279. package/dist/core/validation/section-validator.js.map +1 -1
  280. package/dist/core/validation/sister-changes.d.ts +93 -0
  281. package/dist/core/validation/sister-changes.d.ts.map +1 -0
  282. package/dist/core/validation/sister-changes.js +180 -0
  283. package/dist/core/validation/sister-changes.js.map +1 -0
  284. package/dist/core/validation/task-markers.d.ts +9 -0
  285. package/dist/core/validation/task-markers.d.ts.map +1 -0
  286. package/dist/core/validation/task-markers.js +71 -0
  287. package/dist/core/validation/task-markers.js.map +1 -0
  288. package/dist/core/validation/types.d.ts +58 -0
  289. package/dist/core/validation/types.d.ts.map +1 -1
  290. package/dist/core/validation/types.js +22 -0
  291. package/dist/core/validation/types.js.map +1 -1
  292. package/dist/core/validation/validator.d.ts +79 -2
  293. package/dist/core/validation/validator.d.ts.map +1 -1
  294. package/dist/core/validation/validator.js +565 -84
  295. package/dist/core/validation/validator.js.map +1 -1
  296. package/dist/utils/change-metadata.d.ts +62 -5
  297. package/dist/utils/change-metadata.d.ts.map +1 -1
  298. package/dist/utils/change-metadata.js +193 -31
  299. package/dist/utils/change-metadata.js.map +1 -1
  300. package/dist/utils/change-utils.d.ts +21 -0
  301. package/dist/utils/change-utils.d.ts.map +1 -1
  302. package/dist/utils/change-utils.js +168 -53
  303. package/dist/utils/change-utils.js.map +1 -1
  304. package/dist/utils/command-line.d.ts +11 -0
  305. package/dist/utils/command-line.d.ts.map +1 -0
  306. package/dist/utils/command-line.js +43 -0
  307. package/dist/utils/command-line.js.map +1 -0
  308. package/dist/utils/display-width.d.ts +10 -0
  309. package/dist/utils/display-width.d.ts.map +1 -0
  310. package/dist/utils/display-width.js +15 -0
  311. package/dist/utils/display-width.js.map +1 -0
  312. package/dist/utils/file-system.d.ts +16 -0
  313. package/dist/utils/file-system.d.ts.map +1 -1
  314. package/dist/utils/file-system.js +49 -2
  315. package/dist/utils/file-system.js.map +1 -1
  316. package/dist/utils/frontmatter.d.ts.map +1 -1
  317. package/dist/utils/frontmatter.js +11 -5
  318. package/dist/utils/frontmatter.js.map +1 -1
  319. package/dist/utils/interactive.d.ts.map +1 -1
  320. package/dist/utils/interactive.js +3 -1
  321. package/dist/utils/interactive.js.map +1 -1
  322. package/dist/utils/item-discovery.d.ts +3 -2
  323. package/dist/utils/item-discovery.d.ts.map +1 -1
  324. package/dist/utils/item-discovery.js +34 -16
  325. package/dist/utils/item-discovery.js.map +1 -1
  326. package/dist/utils/link.d.ts +0 -1
  327. package/dist/utils/link.d.ts.map +1 -1
  328. package/dist/utils/link.js +0 -1
  329. package/dist/utils/link.js.map +1 -1
  330. package/dist/utils/match.d.ts.map +1 -1
  331. package/dist/utils/match.js +10 -1
  332. package/dist/utils/match.js.map +1 -1
  333. package/dist/utils/option-flags.d.ts +9 -0
  334. package/dist/utils/option-flags.d.ts.map +1 -0
  335. package/dist/utils/option-flags.js +12 -0
  336. package/dist/utils/option-flags.js.map +1 -0
  337. package/dist/utils/sentence.d.ts +9 -0
  338. package/dist/utils/sentence.d.ts.map +1 -0
  339. package/dist/utils/sentence.js +12 -0
  340. package/dist/utils/sentence.js.map +1 -0
  341. package/dist/utils/spec-files.d.ts +84 -1
  342. package/dist/utils/spec-files.d.ts.map +1 -1
  343. package/dist/utils/spec-files.js +192 -3
  344. package/dist/utils/spec-files.js.map +1 -1
  345. package/dist/utils/task-progress.d.ts.map +1 -1
  346. package/dist/utils/task-progress.js +32 -9
  347. package/dist/utils/task-progress.js.map +1 -1
  348. package/dist/utils/timestamp.d.ts +27 -0
  349. package/dist/utils/timestamp.d.ts.map +1 -1
  350. package/dist/utils/timestamp.js +37 -0
  351. package/dist/utils/timestamp.js.map +1 -1
  352. package/package.json +6 -2
  353. package/schemas/decision/templates/decision.md +2 -2
  354. package/schemas/issue/schema.yaml +12 -6
  355. package/schemas/issue/templates/task.md +1 -1
  356. package/schemas/sdd/schema.yaml +21 -10
  357. package/schemas/sdd/templates/proposal.md +1 -1
  358. package/assets/dashboard/chart.umd.js +0 -14
@@ -1 +1 @@
1
- {"version":3,"file":"specs-apply.js","sourceRoot":"","sources":["../../src/core/specs-apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specs-apply.js","sourceRoot":"","sources":["../../src/core/specs-apply.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,OAAO,EAAE,QAAQ,IAAI,EAAE,EAA2B,MAAM,IAAI,CAAC;AAC7D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,0BAA0B,EAC1B,cAAc,EACd,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,GAEtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACvG,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAC5G,OAAO,EACL,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,2BAA2B,CAAC;AAQnC;;;;;GAKG;AACH,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAIhC,QAAQ;IAHnB,YACE,OAAe;IACf,4DAA4D;IACnD,QAAgB;QAEzB,KAAK,CAAC,OAAO,CAAC,CAAC;wBAFN,QAAQ;QAGjB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IAI3C,WAAW;IAEX,SAAS;IALpB,YACE,OAAe;IACf,kDAAkD;IACzC,WAAmB;IAC5B,2EAA2E;IAClE,SAAiC;QAE1C,KAAK,CAAC,OAAO,CAAC,CAAC;2BAJN,WAAW;yBAEX,SAAS;QAGlB,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;IAC9C,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAItC,WAAW;IAEX,QAAQ;IACR,SAAS;IANpB,YACE,OAAe;IACf,kDAAkD;IACzC,WAAmB;IAC5B,gEAAgE;IACvD,QAAgB,EAChB,SAA6C;QAEtD,KAAK,CAAC,OAAO,CAAC,CAAC;2BALN,WAAW;wBAEX,QAAQ;yBACR,SAAS;QAGlB,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAiB,EAAE,YAAoB;IAC3E,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,KAAK,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,MAAM,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;QAC/F,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAElE,2EAA2E;QAC3E,gEAAgE;QAChE,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YAC5C,MAAM,GAAG,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YACX,MAAM;YACN,MAAM,EAAE,UAAU;YAClB,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,cAAsB;IAEtB,MAAM,OAAO,GAAkD,EAAE,CAAC;IAElE,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,4EAA4E;QAC5E,iEAAiE;QACjE,IAAI,sBAAsB,CAAC,KAAK,CAAC;YAAE,OAAO,OAAO,CAAC;QAClD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,wEAAwE;QACxE,wEAAwE;QACxE,0EAA0E;QAC1E,uEAAuE;QACvE,qEAAqE;QACrE,uEAAuE;QACvE,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAErF,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QAErD,0EAA0E;QAC1E,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,qEAAqE;QACrE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,SAAS;QAErE,4EAA4E;QAC5E,4EAA4E;QAC5E,2EAA2E;QAC3E,8CAA8C;QAC9C,IAAI,KAAY,CAAC;QACjB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qEAAqE;YACrE,+CAA+C;YAC/C,IAAI,kBAAkB,CAAC,KAAK,CAAC;gBAAE,SAAS;YACxC,MAAM,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAAE,SAAS;QAE9B,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAaD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,UAAkB,EAAE,QAAgB;IAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,QAAQ,CAAC;IAC7F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAkB,EAClB,UAAkB,EAClB,OAAO,GAWH,EAAE;IAEN,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,OAAe,EAAQ,EAAE;QACrD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAa,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,CAAC,OAAe,EAAQ,EAAE;QAC3C,IAAI,CAAC,OAAO,CAAC,eAAe;YAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QACvD,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC;IACF,yEAAyE;IACzE,+EAA+E;IAC/E,6EAA6E;IAC7E,8EAA8E;IAC9E,4EAA4E;IAC5E,uDAAuD;IACvD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAC3C,0EAA0E;IAC1E,wEAAwE;IACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,2EAA2E;IAC3E,uEAAuE;IACvE,4BAA4B;IAC5B,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5E,MAAM,YAAY,GAAG,gBAAgB,cAAc,UAAU,CAAC;IAE9D,4EAA4E;IAC5E,mEAAmE;IACnE,0EAA0E;IAC1E,yCAAyC;IACzC,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAE,IAAY,EAAU,EAAE,CACpE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,2CAA2C,OAAO,IAAI,CAAC;IACjF,MAAM,aAAa,GAAG,CAAC,KAAwB,EAAE,OAAe,EAAe,EAAE;QAC/E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,UAAU,CACR,GAAG,QAAQ,iDAAiD,OAAO,iCAAiC,QAAQ,IAAI,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CACrJ,CAAC;gBACF,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACjC,SAAS;YACX,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7E,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;IACtF,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC/D,4EAA4E;IAC5E,6EAA6E;IAC7E,8DAA8D;IAC9D,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;QACnE,UAAU,CACR,GAAG,QAAQ,gCAAgC,IAAI,KAAK,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,IAAI,qBAAqB,OAAO,iDAAiD,CACjK,CAAC;QACF,qEAAqE;QACrE,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACxC,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,sEAAsE;IACtE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACzC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,eAAe,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAC9D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,UAAU,CACR,GAAG,QAAQ,+EAA+E,IAAI,IAAI,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAC/I,CAAC;YACF,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACrD,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,eAAe,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,UAAU,CACR,GAAG,QAAQ,6EAA6E,EAAE,IAAI,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,CACvI,CAAC;YACF,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACnD,SAAS;QACX,CAAC;QACD,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,SAAS,GAAkD,EAAE,CAAC;IACpE,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACrF,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IACpF,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC5C,yEAAyE;QACzE,4EAA4E;QAC5E,uEAAuE;QACvE,MAAM,gBAAgB,GAAG,eAAe,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QACpE,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACnC,UAAU,CACR,GAAG,QAAQ,oHAAoH,IAAI,GAAG;gBACpI,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,wBAAwB,gBAAgB,IAAI,CAAC,CACtF,CAAC;YACF,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,UAAU,CACR,GAAG,QAAQ,uGAAuG,EAAE,GAAG,CACxH,CAAC;YACF,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QACD,0EAA0E;QAC1E,8DAA8D;QAC9D,MAAM,cAAc,GAAG,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,UAAU,CACR,GAAG,QAAQ,oFAAoF,EAAE,GAAG;gBAClG,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,cAAc,IAAI,CAAC,CAC9E,CAAC;YACF,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACvB,UAAU,CACR,GAAG,QAAQ,kEAAkE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,IAAI,GAAG,CACvI,CAAC;QACF,KAAK,MAAM,QAAQ,IAAI,SAAS;YAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;IACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7G,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,UAAU,CACR,yCAAyC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI;YACrF,iEAAiE,CACpE,CAAC;IACJ,CAAC;IAED,8EAA8E;IAC9E,4EAA4E;IAC5E,gCAAgC;IAChC,MAAM,MAAM,GAAG;QACb,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,MAAM,CAAC,IAAI,WAAW,MAAM,CAAC,IAAI,GAAG,CAAC;QAChG,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,WAAW,OAAO,CAAC,IAAI,GAAG,CAAC;KACvF,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,CACJ,kCAAkC,EAClC,GAAG,QAAQ,2EAA2E,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC3G,CAAC;IACJ,CAAC;IAED,IAAI,aAAqB,CAAC;IAC1B,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,IAAI,CAAC;QACH,aAAa,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2EAA2E;QAC3E,mEAAmE;QACnE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC;QAC5C,6EAA6E;QAC7E,6EAA6E;QAC7E,uEAAuE;QACvE,wEAAwE;QACxE,wEAAwE;QACxE,yEAAyE;QACzE,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnF,MAAM,IAAI,sBAAsB,CAC9B,GAAG,QAAQ,qJAAqJ,CACjK,CAAC;QACJ,CAAC;QACD,SAAS,GAAG,IAAI,CAAC;QACjB,yEAAyE;QACzE,iCAAiC;QACjC,MAAM,YAAY,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,YAAY,IAAI,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;YACrD,aAAa,GAAG,iBAAiB,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,CACJ,+BAA+B,EAC/B,GAAG,QAAQ,2GAA2G,CACvH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,mEAAmE;gBACnE,sEAAsE;gBACtE,wEAAwE;gBACxE,+BAA+B;gBAC/B,MAAM,CACJ,6BAA6B,EAC7B,GAAG,QAAQ,mGAAmG,QAAQ,kDAAkD,CACzK,CAAC;YACJ,CAAC;YACD,aAAa,GAAG,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,4EAA4E;IAC5E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CACJ,+BAA+B,EAC/B,GAAG,QAAQ,kCAAkC,cAAc,oEAAoE,cAAc,yCAAyC,CACvL,CAAC;QACJ,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,yEAAyE;IACzE,2EAA2E;IAC3E,8BAA8B;IAC9B,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE5C,MAAM,eAAe,GAAG,2BAA2B,CAAC,aAAa,CAAC,CAAC;IACnE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,eAAe;aAC5B,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;aACpD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,kBAAkB,CAC1B,GAAG,QAAQ,6EAA6E,OAAO,EAAE,EACjG,YAAY,CACb,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,0BAA0B,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAC;IACxD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrC,WAAW,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/D,CAAC;IACD,0EAA0E;IAC1E,uEAAuE;IACvE,gFAAgF;IAChF,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAE1F,uDAAuD;IACvD,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QACvD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,iEAAiE;YACjE,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YACD,sEAAsE;YACtE,wEAAwE;YACxE,wDAAwD;YACxD,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;YAC3D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC;gBACjD,MAAM,IAAI,wBAAwB,CAChC,GAAG,QAAQ,gDAAgD,CAAC,CAAC,IAAI,+CAA+C,QAAQ,iDAAiD,EACzK,CAAC,CAAC,IAAI,EACN,QAAQ,EACR,SAAS,CACV,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,6BAA6B,CACrC,GAAG,QAAQ,gDAAgD,CAAC,CAAC,IAAI,sBAAsB,EACvF,CAAC,CAAC,IAAI,EACN,SAAS,CACV,CAAC;QACJ,CAAC;QACD,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,gDAAgD,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC;QAC9G,CAAC;QACD,2EAA2E;QAC3E,yEAAyE;QACzE,oBAAoB;QACpB,MAAM,cAAc,GAAG,mBAAmB,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QAClE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,gDAAgD,CAAC,CAAC,EAAE,yBAAyB,cAAc,sDAAsD,CAC7J,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QACrC,MAAM,SAAS,GAAG,oBAAoB,EAAE,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QACxB,MAAM,YAAY,GAAqB;YACrC,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE;YACR,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YACxB,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAC;QACF,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QAClC,4EAA4E;QAC5E,+DAA+D;QAC/D,MAAM,UAAU,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;YACpB,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QAC/B,CAAC;QACD,cAAc,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,6EAA6E;IAC7E,2EAA2E;IAC3E,uDAAuD;IACvD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACjC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,uEAAuE;YACvE,0EAA0E;YAC1E,yEAAyE;YACzE,wCAAwC;YACxC,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;YAC1D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC;gBACjD,MAAM,IAAI,wBAAwB,CAChC,GAAG,QAAQ,gDAAgD,IAAI,wCAAwC,QAAQ,8CAA8C,EAC7J,IAAI,EACJ,QAAQ,EACR,SAAS,CACV,CAAC;YACJ,CAAC;YACD,MAAM,CACJ,oCAAoC,EACpC,GAAG,QAAQ,2BAA2B,IAAI,4KAA4K,cAAc,WAAW,CAChP,CAAC;YACF,SAAS;QACX,CAAC;QACD,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,cAAc,EAAE,CAAC;IACnB,CAAC;IAED,+EAA+E;IAC/E,8EAA8E;IAC9E,2EAA2E;IAC3E,yEAAyE;IACzE,6EAA6E;IAC7E,WAAW;IACX,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7D,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACjC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,qEAAqE;YACrE,oEAAoE;YACpE,MAAM,QAAQ,GAAG,eAAe,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,GAAG,QAAQ,iDAAiD,GAAG,CAAC,IAAI,eAAe,CAAC;YACrG,IAAI,QAAQ,KAAK,SAAS;gBAAE,MAAM,IAAI,6BAA6B,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACpG,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC;YACjD,MAAM,IAAI,wBAAwB,CAChC,GAAG,QAAQ,2BAA2B,QAAQ,8CAA8C,EAC5F,GAAG,CAAC,IAAI,EACR,QAAQ,EACR,UAAU,CACX,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,aAAa,KAAK,IAAI,IAAI,wBAAwB,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9E,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,iDAAiD,GAAG,CAAC,IAAI,gCAAgC,CACrG,CAAC;QACJ,CAAC;QACD,sEAAsE;QACtE,yEAAyE;QACzE,8DAA8D;QAC9D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAC9B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAClG,CAAC;QACF,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACvF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC7C,KAAK,MAAM,KAAK,IAAI,qBAAqB,EAAE,CAAC;gBAC1C,IAAI,KAAK,CAAC,WAAW,KAAK,GAAG,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI;oBAAE,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChG,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,sEAAsE;YACtE,iEAAiE;YACjE,UAAU,CACR,GAAG,QAAQ,iDAAiD,GAAG,CAAC,IAAI,4EAA4E,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,yEAAyE,CAC9Q,CAAC;QACJ,CAAC;QACD,4EAA4E;QAC5E,0EAA0E;QAC1E,0EAA0E;QAC1E,kCAAkC;QAClC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QAC1D,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChG,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,qBAAqB,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,OAAO,GACX,GAAG,QAAQ,gCAAgC,KAAK,CAAC,QAAQ,wBAAwB,KAAK,CAAC,WAAW,kHAAkH;YACpN,CAAC,UAAU,KAAK,SAAS;gBACvB,CAAC,CAAC,+HAA+H;gBACjI,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;QACxB,uEAAuE;QACvE,yEAAyE;QACzE,wEAAwE;QACxE,IAAI,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QACxC,UAAU,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QACjC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,QAAQ,EAAE,CAAC;YACb,wEAAwE;YACxE,0BAA0B;YAC1B,IAAI,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnE,SAAS;YACX,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,8CAA8C,GAAG,CAAC,IAAI,oBAAoB,CAAC,CAAC;QACzG,CAAC;QACD,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QAC1D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,8CAA8C,GAAG,CAAC,IAAI,yBAAyB,WAAW,sDAAsD,CAC5J,CAAC;QACJ,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC1B,YAAY,EAAE,CAAC;IACjB,CAAC;IAED,4EAA4E;IAC5E,8EAA8E;IAC9E,2EAA2E;IAC3E,4EAA4E;IAC5E,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACtC,4EAA4E;QAC5E,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC7B,gBAAgB,EAAE,CAAC;YACnB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,SAAS;QACX,CAAC;QACD,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,aAAa,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IACD,6DAA6D;IAC7D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,gBAAgB,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,6EAA6E;IAC7E,2EAA2E;IAC3E,IAAI,gBAAgB,KAAK,CAAC,IAAI,cAAc,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,kBAAkB,CAC1B,GAAG,QAAQ,+IAA+I,QAAQ,qCAAqC,EACvM,YAAY,CACb,CAAC;IACJ,CAAC;IACD,6EAA6E;IAC7E,2EAA2E;IAC3E,8EAA8E;IAC9E,4EAA4E;IAC5E,IAAI,gBAAgB,KAAK,CAAC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,kBAAkB,CAC1B,GAAG,QAAQ,6CAA6C,cAAc,+DAA+D,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,8BAA8B,QAAQ,qCAAqC,EAC5P,YAAY,CACb,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtF,MAAM,CAAC,OAAO,CAAC;SACf,MAAM,CAAC,MAAM,CAAC;SACd,IAAI,CAAC,MAAM,CAAC;SACZ,OAAO,EAAE,CAAC;IAEb,6EAA6E;IAC7E,+EAA+E;IAC/E,mCAAmC;IACnC,MAAM,OAAO,GAAG,8BAA8B,CAC5C,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACpE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;SACvB,IAAI,CAAC,MAAM,CAAC,CAChB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IAEnB,OAAO;QACL,OAAO;QACP,IAAI;QACJ,4EAA4E;QAC5E,uEAAuE;QACvE,uEAAuE;QACvE,2EAA2E;QAC3E,OAAO,EAAE,gBAAgB,KAAK,CAAC,IAAI,cAAc,GAAG,CAAC;QACrD,OAAO;QACP,MAAM,EAAE;YACN,KAAK,EAAE,YAAY;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;YAC9B,OAAO,EAAE,cAAc;YACvB,OAAO,EAAE,cAAc;SACxB;QACD,uEAAuE;QACvE,yEAAyE;QACzE,uEAAuE;QACvE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE;QAChF,0EAA0E;QAC1E,yEAAyE;QACzE,4BAA4B;QAC5B,kBAAkB;KACnB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAC1B,MAA6C,EAC7C,IAAY,EACZ,MAAe;IAEf,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QAClC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM;YAAE,SAAS;QAC7C,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IAC7D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,MAAc,EAAE,KAAa;IACzD,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,OAAO,GAAG,EAAE,KAAK,EAAE,0BAA0B,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAClF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;gBACrE,OAAO,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;gBAC5D,SAAS;YACX,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,SAAS;YACzE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,GAAW;IACpC,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,SAAS,8BAA8B,CAAC,OAAe;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAC7B,yEAAyE;YACzE,mEAAmE;YACnE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,SAAS;QACzE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAkB,EAClB,OAAe,EACf,MAA6E,EAC7E,OAAO,GAA+D,EAAE;IAExE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,uEAAuE;IACvE,2EAA2E;IAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC3E,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3C,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO;IAE3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,uBAAuB,OAAO,CAAC,WAAW,IAAI,gBAAgB,QAAQ,UAAU,GAAG,CAAC,CAAC;IACjG,IAAI,MAAM,CAAC,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC;IAC3D,IAAI,MAAM,CAAC,QAAQ;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,QAAQ,WAAW,CAAC,CAAC;IACpE,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;IACjE,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,OAAO,UAAU,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,sBAAsB,CAAC,cAAsB;IACpD,MAAM,KAAK,GAAG,iBAAiB,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5D,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,CAAC,CAAC;YAAE,SAAS,CAAC,qDAAqD;QAC5E,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,eAAe,CAAC,MAAc;IAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,wEAAwE;IACxE,oDAAoD;IACpD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,IAAI,QAAQ,GAAG,OAAO,CAAC;QACvB,IAAI,QAAQ,GAAkB,IAAI,CAAC;QACnC,OAAO,QAAQ,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;oBAAE,MAAM,KAAK,CAAC;gBAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,MAAM,KAAK,QAAQ;oBAAE,OAAO,OAAO,CAAC;gBACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACtC,QAAQ,GAAG,MAAM,CAAC;YACpB,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC;QAEvC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,EAAE;aACpB,KAAK,CAAC,YAAY,CAAC;aACnB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;aACrC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,IAAI,kBAAkB,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC5C,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;QACjD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,+CAA+C,MAAM,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa,EAAE,MAAc;IACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,QAAQ,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACjC,uEAAuE;IACvE,MAAM,YAAY,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/E,OAAO,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAkB,EAClB,WAAmB,EACnB,OAAgB;IAEhB,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;IACpD,IAAI,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,0DAA0D,QAAQ,+BAA+B,UAAU,6IAA6I,CACpQ,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,8BAA8B;QACpC,OAAO,EAAE,GAAG,QAAQ,mBAAmB,QAAQ,wBAAwB,UAAU,6EAA6E;KAC/J,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAkB,EAClB,SAAiB,EACjB,OAAO,GAA+C,EAAE;IAExD,MAAM,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM;YAChC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,sCAAsC;QAC/C,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,OAAO,CAAC,MAAM;QAAE,OAAO;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CACT,YAAY,OAAO,CAAC,WAAW,IAAI,gBAAgB,QAAQ,UAAU,wBAAwB,CAC9F,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,cAAsB,EAAE,UAAkB,EAAE,OAAgB;IAC5F,MAAM,SAAS,GAAG,cAAc,CAAC;IACjC,MAAM,WAAW,GACf,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE;QACvB,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE;QAChB,CAAC,CAAC,GAAG,0BAA0B,GAAG,UAAU,GAAG,0BAA0B,EAAE,CAAC;IAChF,OAAO,KAAK,SAAS,iCAAiC,WAAW,uBAAuB,CAAC;AAC3F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,4EAA4E;IAC5E,gEAAgE;IAChE,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,IAAI,CAAC,CAAC,CAAC;YAAE,SAAS;QACtB,wEAAwE;QACxE,2EAA2E;QAC3E,0DAA0D;QAC1D,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;YAC7C,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM;QACR,CAAC;IACH,CAAC;IACD,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9B,IAAI,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,CAAC,CAAC;YAAE,SAAS;QACtB,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,GAAG,GAAG,CAAC,CAAC;YACR,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACnD,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,IAAY;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,uBAAuB;IAClE,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,sBAAsB;IAC3D,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,aAAa;IACrD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * How to get a change's diff. Shared by sync's sweep for unrequested behavior
3
+ * and verify's review, so both read the same diff against the same base.
4
+ *
5
+ * The parent is spelled `~1`, not `^`, because zsh's extended glob reads `^`.
6
+ *
7
+ * A change directory added in the root commit has no `~1`. Diffing against the
8
+ * empty tree was rejected: its hash differs between SHA-1 and SHA-256
9
+ * repositories. `git show --root` was rejected too: `--root` is not on Claude
10
+ * Code's read-only flag list, so it asks for permission. Plain `git show` prints
11
+ * a root commit's patch unless `log.showRoot` is set to false.
12
+ *
13
+ * `tospec new change` accepts a name an archived change already used, and the
14
+ * path's history then starts with that namesake's commits, so its first hash
15
+ * put the base months back. Searching from the commit that archived the
16
+ * namesake skips them. Keying on the commit that added `.tospec.yaml` was
17
+ * rejected: nothing requires the file to be committed, or kept.
18
+ *
19
+ * tospec needs no git, and `tospec init` does not check for it, so a project
20
+ * may have no history at all. The fallback scope stands in for the diff there,
21
+ * and the report must say so: files outside it went unswept, and a report that
22
+ * reads like a full diff would hide that. Where the report lives differs (sync
23
+ * writes `sync-report.md`, verify answers in chat), so each caller names it.
24
+ */
25
+ export declare const CHANGE_DIFF = "Get the change's diff with `git diff <base>`, where `<base>` is the commit before the change started. Find it with `git log --reverse --format=%h -- tospec/changes/<name>/`: the first hash it prints is the commit that added the change directory, and `<base>` is that hash with `~1` appended. A name can be reused once a change of that name is archived, and the path's history then starts with the archived change's commits. So first look in `tospec/changes/archive/` for a directory named `<stamp>-<name>`; if there is one (the newest, when there are several: stamps sort by time), run `git log --reverse --format=%h -- tospec/changes/archive/<stamp>-<name>/`, whose first hash `<archived>` is the commit that archived it, and find the first hash with `git log --reverse --format=%h <archived>.. -- tospec/changes/<name>/` instead; if that prints nothing while `git status --short` does not list the change directory as new, the change was added in `<archived>` itself, and `<base>` is `<archived>~1`. Empty output means the change directory has no commit yet (`git status --short` lists it as new), so `<base>` is `HEAD`. If git rejects `<hash>~1` as an unknown revision, that hash is the repository's first commit: read what it added with `git show <hash>`, then the rest with `git diff <hash>`. `git diff` leaves out untracked files; read the ones `git status --short` marks `??` as well. **Not a git repository** (git answers `not a git repository`): there is no `<base>` and no diff, so use the fallback scope instead \u2014 every file `tasks.md` / `task.md` and `design.md` (when the change has one) name, plus every file modified during apply. With no earlier version to compare against, read each of those files in full; a change to a file none of them names goes unseen, so the report must record that the fallback scope replaced the diff, and list its files.";
26
+ /**
27
+ * The rule for every `git` command a workflow names. Each workflow states it
28
+ * once, so it covers the commands in every step, not only the diff above.
29
+ *
30
+ * A lone read-only `git` command run from the project root is the form Claude
31
+ * Code runs without a permission prompt; a `cd … &&` chain or a `$(…)`
32
+ * substitution asks every time. Granting `Bash(git diff:*)` instead was
33
+ * rejected: a prefix rule matches before the read-only check, so it would also
34
+ * pass `git diff --output=<path>`, a file write that check refuses.
35
+ */
36
+ export declare const GIT_COMMAND_RULE = "Run every `git` command in this workflow as its own command from the project root \u2014 not behind `cd \u2026 &&`, not joined through `$(\u2026)`: a lone read-only `git` command runs without a permission prompt, and a chain or a substitution asks for one.";
37
+ //# sourceMappingURL=change-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-diff.d.ts","sourceRoot":"","sources":["../../../../src/core/templates/fragments/change-diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,WAAW,i1DAAo4D,CAAC;AAE75D;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,qQAA8P,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * How to get a change's diff. Shared by sync's sweep for unrequested behavior
3
+ * and verify's review, so both read the same diff against the same base.
4
+ *
5
+ * The parent is spelled `~1`, not `^`, because zsh's extended glob reads `^`.
6
+ *
7
+ * A change directory added in the root commit has no `~1`. Diffing against the
8
+ * empty tree was rejected: its hash differs between SHA-1 and SHA-256
9
+ * repositories. `git show --root` was rejected too: `--root` is not on Claude
10
+ * Code's read-only flag list, so it asks for permission. Plain `git show` prints
11
+ * a root commit's patch unless `log.showRoot` is set to false.
12
+ *
13
+ * `tospec new change` accepts a name an archived change already used, and the
14
+ * path's history then starts with that namesake's commits, so its first hash
15
+ * put the base months back. Searching from the commit that archived the
16
+ * namesake skips them. Keying on the commit that added `.tospec.yaml` was
17
+ * rejected: nothing requires the file to be committed, or kept.
18
+ *
19
+ * tospec needs no git, and `tospec init` does not check for it, so a project
20
+ * may have no history at all. The fallback scope stands in for the diff there,
21
+ * and the report must say so: files outside it went unswept, and a report that
22
+ * reads like a full diff would hide that. Where the report lives differs (sync
23
+ * writes `sync-report.md`, verify answers in chat), so each caller names it.
24
+ */
25
+ export const CHANGE_DIFF = `Get the change's diff with \`git diff <base>\`, where \`<base>\` is the commit before the change started. Find it with \`git log --reverse --format=%h -- tospec/changes/<name>/\`: the first hash it prints is the commit that added the change directory, and \`<base>\` is that hash with \`~1\` appended. A name can be reused once a change of that name is archived, and the path's history then starts with the archived change's commits. So first look in \`tospec/changes/archive/\` for a directory named \`<stamp>-<name>\`; if there is one (the newest, when there are several: stamps sort by time), run \`git log --reverse --format=%h -- tospec/changes/archive/<stamp>-<name>/\`, whose first hash \`<archived>\` is the commit that archived it, and find the first hash with \`git log --reverse --format=%h <archived>.. -- tospec/changes/<name>/\` instead; if that prints nothing while \`git status --short\` does not list the change directory as new, the change was added in \`<archived>\` itself, and \`<base>\` is \`<archived>~1\`. Empty output means the change directory has no commit yet (\`git status --short\` lists it as new), so \`<base>\` is \`HEAD\`. If git rejects \`<hash>~1\` as an unknown revision, that hash is the repository's first commit: read what it added with \`git show <hash>\`, then the rest with \`git diff <hash>\`. \`git diff\` leaves out untracked files; read the ones \`git status --short\` marks \`??\` as well. **Not a git repository** (git answers \`not a git repository\`): there is no \`<base>\` and no diff, so use the fallback scope instead — every file \`tasks.md\` / \`task.md\` and \`design.md\` (when the change has one) name, plus every file modified during apply. With no earlier version to compare against, read each of those files in full; a change to a file none of them names goes unseen, so the report must record that the fallback scope replaced the diff, and list its files.`;
26
+ /**
27
+ * The rule for every `git` command a workflow names. Each workflow states it
28
+ * once, so it covers the commands in every step, not only the diff above.
29
+ *
30
+ * A lone read-only `git` command run from the project root is the form Claude
31
+ * Code runs without a permission prompt; a `cd … &&` chain or a `$(…)`
32
+ * substitution asks every time. Granting `Bash(git diff:*)` instead was
33
+ * rejected: a prefix rule matches before the read-only check, so it would also
34
+ * pass `git diff --output=<path>`, a file write that check refuses.
35
+ */
36
+ export const GIT_COMMAND_RULE = `Run every \`git\` command in this workflow as its own command from the project root — not behind \`cd … &&\`, not joined through \`$(…)\`: a lone read-only \`git\` command runs without a permission prompt, and a chain or a substitution asks for one.`;
37
+ //# sourceMappingURL=change-diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-diff.js","sourceRoot":"","sources":["../../../../src/core/templates/fragments/change-diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,i4DAAi4D,CAAC;AAE75D;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,2PAA2P,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * What a sync report with `Conclusion: FAIL` and no CODE-BUG means and asks for.
3
+ * Shared by archive's branch for that report and sync's standalone Output, so
4
+ * both name the same artifact fix. sync's Output used to send every FAIL back to
5
+ * `tospec-apply`, though nothing in this one needs a code change.
6
+ */
7
+ export declare const SYNC_FAIL_WITHOUT_CODE_BUG = "validation failed somewhere sync could not resolve: either on a spec update it had just written (the report names that Requirement) or on the final artifact check, which can fail on an artifact no Requirement touched. A REMOVED Requirement the report marks `UNJUDGED` (no block under its name in the main spec or its history) leads to this FAIL too, with a `tospec validate` warning on the same entry: correct its name to the main spec's header so sync can judge it, or delete the entry from the delta if the main spec never had that Requirement. In every case this is an artifact problem, not a code defect: fix whatever `tospec validate --json` points at \u2014 the report names it when a spec update caused it \u2014 then re-run validation and have sync complete any remaining writes and rewrite the report to PASS.";
8
+ //# sourceMappingURL=sync-fail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-fail.d.ts","sourceRoot":"","sources":["../../../../src/core/templates/fragments/sync-fail.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,uzBAAmzB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * What a sync report with `Conclusion: FAIL` and no CODE-BUG means and asks for.
3
+ * Shared by archive's branch for that report and sync's standalone Output, so
4
+ * both name the same artifact fix. sync's Output used to send every FAIL back to
5
+ * `tospec-apply`, though nothing in this one needs a code change.
6
+ */
7
+ export const SYNC_FAIL_WITHOUT_CODE_BUG = `validation failed somewhere sync could not resolve: either on a spec update it had just written (the report names that Requirement) or on the final artifact check, which can fail on an artifact no Requirement touched. A REMOVED Requirement the report marks \`UNJUDGED\` (no block under its name in the main spec or its history) leads to this FAIL too, with a \`tospec validate\` warning on the same entry: correct its name to the main spec's header so sync can judge it, or delete the entry from the delta if the main spec never had that Requirement. In every case this is an artifact problem, not a code defect: fix whatever \`tospec validate --json\` points at — the report names it when a spec update caused it — then re-run validation and have sync complete any remaining writes and rewrite the report to PASS.`;
8
+ //# sourceMappingURL=sync-fail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync-fail.js","sourceRoot":"","sources":["../../../../src/core/templates/fragments/sync-fail.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,gzBAAgzB,CAAC"}
@@ -8,6 +8,19 @@
8
8
  * the premise that the reader still sees them; an agent that branches on
9
9
  * `valid` alone does not, so the premise has to be restated where the agent
10
10
  * reads the verdict.
11
+ *
12
+ * The refusal is named by its code, not its text: it is the one WARNING
13
+ * archive is certain to stop on, and a text match breaks on any rewording.
14
+ *
15
+ * A finding the archive order causes is the third kind that stays: told to
16
+ * clear every WARNING, an agent deleted a correct MODIFIED to silence one
17
+ * whose only fix is archiving another change. Read from `blockedBy` and the
18
+ * overlap code for the same reason the refusal is read from its code.
19
+ *
20
+ * A header mismatch goes to the user, not to "fix and re-run": the delta may
21
+ * have been copied wrong or the sister may hold the typo, and only the user
22
+ * knows which name is meant. There is no "continue as is": the merge matches
23
+ * names exactly, so an unchanged header is a change that cannot archive.
11
24
  */
12
- export declare const VALIDATE_VERDICT_RULE = "Read the whole report, not just `valid`. An ERROR fails the run: fix the artifact it names and re-run. A WARNING leaves `valid: true` but is not noise \u2014 it is a defect the CLI chose not to block on (an artifact still holding the template, a task ID used twice, a section shorter than the schema asks for, a delta the archive merge would refuse or silently no-op), so treat it as work: fix what the message points at and re-run until no ERROR and no actionable WARNING remain. Exactly two kinds may stay, and you name them in your output instead of passing over them: the SHALL/MUST keyword check on a Requirement written in a language other than English (that check is English-only by design), and a \"confirm this is intentional\" finding you have confirmed is intentional. `--strict` is not a shortcut here \u2014 it fails on those two as well.";
25
+ export declare const VALIDATE_VERDICT_RULE = "Read the whole report, not just `valid`. An ERROR fails the run: fix the artifact it names and re-run. The one ERROR you do not fix on your own is `code: \"requirement_header_mismatch\"`: ask the user once whether to change the header to its `suggestedHeader`. On yes, edit the header and re-run; on no, stop the workflow and tell the user archive will refuse this change as written. A WARNING leaves `valid: true` but is not noise \u2014 it is a defect the CLI chose not to block on (an artifact still holding the template, a task ID used twice, a section shorter than the schema asks for, a delta the archive merge would refuse or silently no-op), so treat it as work: fix what the message points at and re-run until no ERROR and no actionable WARNING remain. A delta the archive merge would refuse carries `code: \"archive_would_refuse\"`, counted in `summary.totals.archiveRefusals`: check that count, not the message text. Exactly three kinds may stay, and you name them in your output instead of passing over them: the SHALL/MUST keyword check on a Requirement written in a language other than English (that check is English-only by design), a \"confirm this is intentional\" finding you have confirmed is intentional, and a finding the archive order causes. Never edit the delta to clear that third kind: no edit to this change settles it. A finding with `blockedBy` waits on the in-progress changes it lists: tell the user to archive them first. A `code: \"sister_change_overlap\"` finding without `blockedBy` means another change rewrites the same requirement and this change archives first, or which goes first cannot be told: relay its message to the user, since whichever change archives second must rewrite its delta afterwards. `--strict` is not a shortcut here \u2014 it fails on those three as well.";
13
26
  //# sourceMappingURL=validate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../src/core/templates/fragments/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,w1BAAk1B,CAAC"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../src/core/templates/fragments/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,qBAAqB,4xDAA8xD,CAAC"}
@@ -8,6 +8,19 @@
8
8
  * the premise that the reader still sees them; an agent that branches on
9
9
  * `valid` alone does not, so the premise has to be restated where the agent
10
10
  * reads the verdict.
11
+ *
12
+ * The refusal is named by its code, not its text: it is the one WARNING
13
+ * archive is certain to stop on, and a text match breaks on any rewording.
14
+ *
15
+ * A finding the archive order causes is the third kind that stays: told to
16
+ * clear every WARNING, an agent deleted a correct MODIFIED to silence one
17
+ * whose only fix is archiving another change. Read from `blockedBy` and the
18
+ * overlap code for the same reason the refusal is read from its code.
19
+ *
20
+ * A header mismatch goes to the user, not to "fix and re-run": the delta may
21
+ * have been copied wrong or the sister may hold the typo, and only the user
22
+ * knows which name is meant. There is no "continue as is": the merge matches
23
+ * names exactly, so an unchanged header is a change that cannot archive.
11
24
  */
12
- export const VALIDATE_VERDICT_RULE = `Read the whole report, not just \`valid\`. An ERROR fails the run: fix the artifact it names and re-run. A WARNING leaves \`valid: true\` but is not noise — it is a defect the CLI chose not to block on (an artifact still holding the template, a task ID used twice, a section shorter than the schema asks for, a delta the archive merge would refuse or silently no-op), so treat it as work: fix what the message points at and re-run until no ERROR and no actionable WARNING remain. Exactly two kinds may stay, and you name them in your output instead of passing over them: the SHALL/MUST keyword check on a Requirement written in a language other than English (that check is English-only by design), and a "confirm this is intentional" finding you have confirmed is intentional. \`--strict\` is not a shortcut here — it fails on those two as well.`;
25
+ export const VALIDATE_VERDICT_RULE = `Read the whole report, not just \`valid\`. An ERROR fails the run: fix the artifact it names and re-run. The one ERROR you do not fix on your own is \`code: "requirement_header_mismatch"\`: ask the user once whether to change the header to its \`suggestedHeader\`. On yes, edit the header and re-run; on no, stop the workflow and tell the user archive will refuse this change as written. A WARNING leaves \`valid: true\` but is not noise — it is a defect the CLI chose not to block on (an artifact still holding the template, a task ID used twice, a section shorter than the schema asks for, a delta the archive merge would refuse or silently no-op), so treat it as work: fix what the message points at and re-run until no ERROR and no actionable WARNING remain. A delta the archive merge would refuse carries \`code: "archive_would_refuse"\`, counted in \`summary.totals.archiveRefusals\`: check that count, not the message text. Exactly three kinds may stay, and you name them in your output instead of passing over them: the SHALL/MUST keyword check on a Requirement written in a language other than English (that check is English-only by design), a "confirm this is intentional" finding you have confirmed is intentional, and a finding the archive order causes. Never edit the delta to clear that third kind: no edit to this change settles it. A finding with \`blockedBy\` waits on the in-progress changes it lists: tell the user to archive them first. A \`code: "sister_change_overlap"\` finding without \`blockedBy\` means another change rewrites the same requirement and this change archives first, or which goes first cannot be told: relay its message to the user, since whichever change archives second must rewrite its delta afterwards. \`--strict\` is not a shortcut here — it fails on those three as well.`;
13
26
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../src/core/templates/fragments/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,+0BAA+0B,CAAC"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../src/core/templates/fragments/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,2xDAA2xD,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /** The review protocol carried by the disclosed file. */
2
- export declare const VERIFY_METHODOLOGY = "Two-axis review of the implementation, run as **independent parallel subagents** so neither pollutes or reranks the other's findings \u2014 a change can pass one axis and fail the other, and reporting them separately is what keeps that visible.\n\n**Scope \u2014 two subagents, one pass each, and that is the whole review.** The subject under review is always the *code diff*, never another review's output. Do not spawn a third agent to grade the two axes' findings, do not re-review a report you have already written, do not audit the audit. Right-sized review beats deep review: enough eyes to catch real problems, no recursion for its own sake.\n\n**What counts as blocking.** Exactly two kinds of finding block: a **hard violation** of a convention this repo documents, and a **spec-correctness** problem \u2014 a requirement missing, implemented wrongly, or contradicting a decision `design.md` records. Everything else \u2014 judgement calls, style preferences, and every code smell named below \u2014 is **report-only**: report it, do not fix it, and do not re-review because of it. A report-only finding is the user's call to make later, not this run's work. Leave this unstated and the safe reading is to fix everything, which makes \"re-run only the affected axis\" fire on every axis, every time.\n\n**Steps**\n\n1. **Gather context**\n ```bash\n tospec status --change \"<name>\" --json\n ```\n Note `schemaName` (sdd \u2192 compare against `specs/`; issue \u2192 compare against `task.md`) and the files this change touched (from `tasks.md`/`task.md`, or `git diff` against the commit before the change started).\n\n2. **Spawn both axes in parallel** \u2014 a single message with two `Agent` tool calls, both `general-purpose`:\n\n **Standards axis prompt** \u2014 include the diff and the brief: \"Report every place the diff violates this repo's documented conventions (cite the file/rule), plus any of Fowler's code smells you spot (Mysterious Name, Duplicated Code, Feature Envy, Data Clumps, Primitive Obsession, Repeated Switches, Shotgun Surgery, Divergent Change, Speculative Generality, Message Chains, Middle Man, Refused Bequest) \u2014 name the smell, quote the hunk, and treat documented repo conventions as overriding the baseline. Distinguish hard violations from judgement calls. Skip anything tooling already enforces.\"\n\n **Spec axis prompt** \u2014 include the diff plus, for sdd, the relevant `specs/<capability>/spec.md` delta content (`tospec show \"<name>\" --json`) and `design.md`'s decisions; for issue, `task.md`'s root cause and fix plan. Brief: \"Report (a) requirements/task items that are missing or partially implemented; (b) behavior in the diff that wasn't asked for (scope creep); (c) requirements that look implemented but the implementation looks wrong, or that deviate from design.md's stated decisions. Quote the spec/task line for each finding.\"\n\n3. **Run the full test suite.** This is a hard gate alongside both axes \u2014 a change with green axes but red tests isn't verified.\n\n4. **Re-validate artifacts**\n ```bash\n tospec validate \"<name>\" --json\n ```\n Read the whole report, not just `valid`. An ERROR fails the run: fix the artifact it names and re-run. A WARNING leaves `valid: true` but is not noise \u2014 it is a defect the CLI chose not to block on (an artifact still holding the template, a task ID used twice, a section shorter than the schema asks for, a delta the archive merge would refuse or silently no-op), so treat it as work: fix what the message points at and re-run until no ERROR and no actionable WARNING remain. Exactly two kinds may stay, and you name them in your output instead of passing over them: the SHALL/MUST keyword check on a Requirement written in a language other than English (that check is English-only by design), and a \"confirm this is intentional\" finding you have confirmed is intentional. `--strict` is not a shortcut here \u2014 it fails on those two as well. A review is not complete while an ERROR or an actionable WARNING remains.\n\n5. **Aggregate \u2014 do not merge or rerank**\n\n Present the two reports under `## Standards` and `## Spec` headings. End with one line per axis: total findings and the worst issue within that axis. Do not pick a single overall verdict across axes.\n\n This is a **mechanical collation you do yourself** \u2014 collect, label, count. Not another review pass, and not a job for a subagent.\n\n**Verify output**\n\nReport the two-axis result plus test suite status. If both axes are clean and tests are green, the change is verified \u2014 tell the user it's ready for `tospec-archive`. If either axis has a blocking finding or tests are red, do **not** treat apply as done: fix the issue here (this is still apply), then send **only the hunk that fixed it** back to the axis that reported it \u2014 never the whole axis, and never the other one. A clean axis is not re-run for extra confidence.\n\n**Verify guardrails**\n- Standards and Spec axes are independent \u2014 never let one axis's findings influence the other's report\n- Full test suite must be green; a clean review with red tests is not verified\n- Quote the specific spec/task line or hunk for every finding \u2014 no unsupported claims\n- **One review pass per axis \u2014 never review the review.** A re-run after a fix sees only the hunk that fixed it";
2
+ export declare const VERIFY_METHODOLOGY = "Two-axis review of the implementation, run as **independent parallel subagents** so neither pollutes or reranks the other's findings \u2014 a change can pass one axis and fail the other, and reporting them separately is what keeps that visible.\n\n**Scope \u2014 two subagents, one pass each, and that is the whole review.** The subject under review is always the *code diff*, never another review's output. Do not spawn a third agent to grade the two axes' findings, do not re-review a report you have already written, do not audit the audit. Right-sized review beats deep review: enough eyes to catch real problems, no recursion for its own sake.\n\n**What counts as blocking.** Exactly two kinds of finding block: a **hard violation** of a convention this repo documents, and a **spec-correctness** problem \u2014 a requirement missing, implemented wrongly, or contradicting a decision `design.md` records. Everything else \u2014 judgement calls, style preferences, and every code smell named below \u2014 is **report-only**: report it, do not fix it, and do not re-review because of it. A report-only finding is the user's call to make later, not this run's work. Leave this unstated and the safe reading is to fix everything, which makes \"re-run only the affected axis\" fire on every axis, every time.\n\n**Steps**\n\n1. **Gather context**\n ```bash\n tospec status --change \"<name>\" --json\n ```\n Note `schemaName` (sdd \u2192 compare against `specs/`; issue \u2192 compare against `task.md`, and against its delta specs too when `tospec show \"<name>\" --json` lists any \u2014 the issue schema makes them optional, not absent) and the files this change touched (from `tasks.md`/`task.md`, or the change's diff).\n\n Get the change's diff with `git diff <base>`, where `<base>` is the commit before the change started. Find it with `git log --reverse --format=%h -- tospec/changes/<name>/`: the first hash it prints is the commit that added the change directory, and `<base>` is that hash with `~1` appended. A name can be reused once a change of that name is archived, and the path's history then starts with the archived change's commits. So first look in `tospec/changes/archive/` for a directory named `<stamp>-<name>`; if there is one (the newest, when there are several: stamps sort by time), run `git log --reverse --format=%h -- tospec/changes/archive/<stamp>-<name>/`, whose first hash `<archived>` is the commit that archived it, and find the first hash with `git log --reverse --format=%h <archived>.. -- tospec/changes/<name>/` instead; if that prints nothing while `git status --short` does not list the change directory as new, the change was added in `<archived>` itself, and `<base>` is `<archived>~1`. Empty output means the change directory has no commit yet (`git status --short` lists it as new), so `<base>` is `HEAD`. If git rejects `<hash>~1` as an unknown revision, that hash is the repository's first commit: read what it added with `git show <hash>`, then the rest with `git diff <hash>`. `git diff` leaves out untracked files; read the ones `git status --short` marks `??` as well. **Not a git repository** (git answers `not a git repository`): there is no `<base>` and no diff, so use the fallback scope instead \u2014 every file `tasks.md` / `task.md` and `design.md` (when the change has one) name, plus every file modified during apply. With no earlier version to compare against, read each of those files in full; a change to a file none of them names goes unseen, so the report must record that the fallback scope replaced the diff, and list its files. Run every `git` command in this workflow as its own command from the project root \u2014 not behind `cd \u2026 &&`, not joined through `$(\u2026)`: a lone read-only `git` command runs without a permission prompt, and a chain or a substitution asks for one. With the fallback scope, those files stand in for \"the diff\" in both axis prompts below, labelled as the fallback scope. Verify writes no report file, so its record of the fallback goes in step 5's aggregated report, under both axes.\n\n2. **Spawn both axes in parallel** \u2014 a single message with two `Agent` tool calls, both `general-purpose`, both in the foreground when the tool lets you choose. Wait until both reports are back before step 5: a background axis that has not reported yet is not a clean one.\n\n **Standards axis prompt** \u2014 include the diff, the `context` and `rules` that `tospec instructions apply --change \"<name>\" --json` returned (they bind this diff exactly as the repo's documented conventions do; say so when the project sets neither), and the brief: \"Report every place the diff violates this repo's documented conventions or the project `context`/`rules` given here (cite the file/rule), plus any of Fowler's code smells you spot (Mysterious Name, Duplicated Code, Feature Envy, Data Clumps, Primitive Obsession, Repeated Switches, Shotgun Surgery, Divergent Change, Speculative Generality, Message Chains, Middle Man, Refused Bequest) \u2014 name the smell, quote the hunk, and treat documented repo conventions as overriding the baseline. Distinguish hard violations from judgement calls. Skip anything tooling already enforces.\"\n\n **Spec axis prompt** \u2014 include the diff plus, for sdd, the relevant `specs/<capability>/spec.md` delta content (`tospec show \"<name>\" --json`), `design.md`'s decisions, and the main-spec block (`tospec/specs/<capability>/spec.md`) of every REMOVED Requirement, under its own name, and of every RENAMED Requirement, under the FROM name \u2014 neither a REMOVED entry nor a FROM/TO pair carries its behavior, so the delta alone leaves the subagent nothing to judge it against. A REMOVED block the main spec no longer has comes from that file's history (`git log -p -- tospec/specs/<capability>/spec.md`, run from the project root; empty output means the path matched nothing) \u2014 in a project that is not a git repository, from this change's own delta entry (its Reason and Migration notes) and from earlier deltas under `tospec/changes/archive/` that ADDED or MODIFIED a Requirement of that name, the newest stamp's block being the last behavior agreed \u2014 and when none of these has it, say so in the prompt; for issue, `task.md`'s root cause and fix plan, plus \u2014 when the change has delta specs \u2014 the same delta content and main-spec blocks listed for sdd. Brief: \"Report (a) requirements/task items that are missing or partially implemented; (b) behavior in the diff that wasn't asked for (scope creep); (c) requirements that look implemented but the implementation looks wrong, or that deviate from design.md's stated decisions. Judge each delta section by its own rule: ADDED/MODIFIED must be implemented; REMOVED must be *gone* \u2014 search for the behavior its main-spec block describes, never for the name alone; no implementation is the correct result, only behavior still present is a finding, and a REMOVED Requirement with no block to read is reported as not verified, never as clean; RENAMED is judged under its TO name against the main spec's behavior (`tospec/specs/<capability>/spec.md`, under the FROM name), or this delta's MODIFIED block for the TO name when there is one \u2014 read both sources before you judge. Quote the spec/task line for each finding. End with a **Not checked** list: everything you could not verify, and why.\"\n\n3. **Run the full test suite.** This is a hard gate alongside both axes \u2014 a change with green axes but red tests isn't verified.\n\n4. **Re-validate artifacts**\n ```bash\n tospec validate \"<name>\" --json\n ```\n Read the whole report, not just `valid`. An ERROR fails the run: fix the artifact it names and re-run. The one ERROR you do not fix on your own is `code: \"requirement_header_mismatch\"`: ask the user once whether to change the header to its `suggestedHeader`. On yes, edit the header and re-run; on no, stop the workflow and tell the user archive will refuse this change as written. A WARNING leaves `valid: true` but is not noise \u2014 it is a defect the CLI chose not to block on (an artifact still holding the template, a task ID used twice, a section shorter than the schema asks for, a delta the archive merge would refuse or silently no-op), so treat it as work: fix what the message points at and re-run until no ERROR and no actionable WARNING remain. A delta the archive merge would refuse carries `code: \"archive_would_refuse\"`, counted in `summary.totals.archiveRefusals`: check that count, not the message text. Exactly three kinds may stay, and you name them in your output instead of passing over them: the SHALL/MUST keyword check on a Requirement written in a language other than English (that check is English-only by design), a \"confirm this is intentional\" finding you have confirmed is intentional, and a finding the archive order causes. Never edit the delta to clear that third kind: no edit to this change settles it. A finding with `blockedBy` waits on the in-progress changes it lists: tell the user to archive them first. A `code: \"sister_change_overlap\"` finding without `blockedBy` means another change rewrites the same requirement and this change archives first, or which goes first cannot be told: relay its message to the user, since whichever change archives second must rewrite its delta afterwards. `--strict` is not a shortcut here \u2014 it fails on those three as well. A review is not complete while an ERROR or an actionable WARNING remains.\n\n5. **Aggregate \u2014 do not merge or rerank**\n\n Only once both axes have reported, present the two reports under `## Standards` and `## Spec` headings. Close each axis's section with what it did not check \u2014 e.g. \"no delta specs; the Spec axis compared `task.md` only\", or \"REMOVED Requirement X had no block to read; not verified\", or \"not a git repository; reviewed the fallback scope, not a diff: <files>\" \u2014 so an axis that passed and one that never looked do not read the same. End with one line per axis: total findings and the worst issue within that axis. Do not pick a single overall verdict across axes.\n\n This is a **mechanical collation you do yourself** \u2014 collect, label, count. Not another review pass, and not a job for a subagent.\n\n**Verify output**\n\nReport the two-axis result plus test suite status. If both axes are clean and tests are green, the change is verified \u2014 tell the user it's ready for `tospec-archive`. If either axis has a blocking finding or tests are red, do **not** treat apply as done: fix the issue here (this is still apply), then send **only the hunk that fixed it** back to the axis that reported it \u2014 never the whole axis, and never the other one. A clean axis is not re-run for extra confidence.\n\n**Verify guardrails**\n- Standards and Spec axes are independent \u2014 never let one axis's findings influence the other's report\n- Full test suite must be green; a clean review with red tests is not verified\n- Quote the specific spec/task line or hunk for every finding \u2014 no unsupported claims\n- **One review pass per axis \u2014 never review the review.** A re-run after a fix sees only the hunk that fixed it";
3
3
  /** Contents of the `VERIFY.md` shipped beside each apply skill's `SKILL.md`. */
4
- export declare const VERIFY_DOC = "# Verify \u2014 apply's opt-in review\n\nRun this **when the user asks for a review**, once every task in the tracks file is checked off and `tospec validate` passes. It is not a step apply reaches on its own.\n\nTwo-axis review of the implementation, run as **independent parallel subagents** so neither pollutes or reranks the other's findings \u2014 a change can pass one axis and fail the other, and reporting them separately is what keeps that visible.\n\n**Scope \u2014 two subagents, one pass each, and that is the whole review.** The subject under review is always the *code diff*, never another review's output. Do not spawn a third agent to grade the two axes' findings, do not re-review a report you have already written, do not audit the audit. Right-sized review beats deep review: enough eyes to catch real problems, no recursion for its own sake.\n\n**What counts as blocking.** Exactly two kinds of finding block: a **hard violation** of a convention this repo documents, and a **spec-correctness** problem \u2014 a requirement missing, implemented wrongly, or contradicting a decision `design.md` records. Everything else \u2014 judgement calls, style preferences, and every code smell named below \u2014 is **report-only**: report it, do not fix it, and do not re-review because of it. A report-only finding is the user's call to make later, not this run's work. Leave this unstated and the safe reading is to fix everything, which makes \"re-run only the affected axis\" fire on every axis, every time.\n\n**Steps**\n\n1. **Gather context**\n ```bash\n tospec status --change \"<name>\" --json\n ```\n Note `schemaName` (sdd \u2192 compare against `specs/`; issue \u2192 compare against `task.md`) and the files this change touched (from `tasks.md`/`task.md`, or `git diff` against the commit before the change started).\n\n2. **Spawn both axes in parallel** \u2014 a single message with two `Agent` tool calls, both `general-purpose`:\n\n **Standards axis prompt** \u2014 include the diff and the brief: \"Report every place the diff violates this repo's documented conventions (cite the file/rule), plus any of Fowler's code smells you spot (Mysterious Name, Duplicated Code, Feature Envy, Data Clumps, Primitive Obsession, Repeated Switches, Shotgun Surgery, Divergent Change, Speculative Generality, Message Chains, Middle Man, Refused Bequest) \u2014 name the smell, quote the hunk, and treat documented repo conventions as overriding the baseline. Distinguish hard violations from judgement calls. Skip anything tooling already enforces.\"\n\n **Spec axis prompt** \u2014 include the diff plus, for sdd, the relevant `specs/<capability>/spec.md` delta content (`tospec show \"<name>\" --json`) and `design.md`'s decisions; for issue, `task.md`'s root cause and fix plan. Brief: \"Report (a) requirements/task items that are missing or partially implemented; (b) behavior in the diff that wasn't asked for (scope creep); (c) requirements that look implemented but the implementation looks wrong, or that deviate from design.md's stated decisions. Quote the spec/task line for each finding.\"\n\n3. **Run the full test suite.** This is a hard gate alongside both axes \u2014 a change with green axes but red tests isn't verified.\n\n4. **Re-validate artifacts**\n ```bash\n tospec validate \"<name>\" --json\n ```\n Read the whole report, not just `valid`. An ERROR fails the run: fix the artifact it names and re-run. A WARNING leaves `valid: true` but is not noise \u2014 it is a defect the CLI chose not to block on (an artifact still holding the template, a task ID used twice, a section shorter than the schema asks for, a delta the archive merge would refuse or silently no-op), so treat it as work: fix what the message points at and re-run until no ERROR and no actionable WARNING remain. Exactly two kinds may stay, and you name them in your output instead of passing over them: the SHALL/MUST keyword check on a Requirement written in a language other than English (that check is English-only by design), and a \"confirm this is intentional\" finding you have confirmed is intentional. `--strict` is not a shortcut here \u2014 it fails on those two as well. A review is not complete while an ERROR or an actionable WARNING remains.\n\n5. **Aggregate \u2014 do not merge or rerank**\n\n Present the two reports under `## Standards` and `## Spec` headings. End with one line per axis: total findings and the worst issue within that axis. Do not pick a single overall verdict across axes.\n\n This is a **mechanical collation you do yourself** \u2014 collect, label, count. Not another review pass, and not a job for a subagent.\n\n**Verify output**\n\nReport the two-axis result plus test suite status. If both axes are clean and tests are green, the change is verified \u2014 tell the user it's ready for `tospec-archive`. If either axis has a blocking finding or tests are red, do **not** treat apply as done: fix the issue here (this is still apply), then send **only the hunk that fixed it** back to the axis that reported it \u2014 never the whole axis, and never the other one. A clean axis is not re-run for extra confidence.\n\n**Verify guardrails**\n- Standards and Spec axes are independent \u2014 never let one axis's findings influence the other's report\n- Full test suite must be green; a clean review with red tests is not verified\n- Quote the specific spec/task line or hunk for every finding \u2014 no unsupported claims\n- **One review pass per axis \u2014 never review the review.** A re-run after a fix sees only the hunk that fixed it\n";
4
+ export declare const VERIFY_DOC = "# Verify \u2014 apply's opt-in review\n\nRun this **when the user asks for a review**, once every task in the tracks file is checked off and `tospec validate` passes. It is not a step apply reaches on its own.\n\nTwo-axis review of the implementation, run as **independent parallel subagents** so neither pollutes or reranks the other's findings \u2014 a change can pass one axis and fail the other, and reporting them separately is what keeps that visible.\n\n**Scope \u2014 two subagents, one pass each, and that is the whole review.** The subject under review is always the *code diff*, never another review's output. Do not spawn a third agent to grade the two axes' findings, do not re-review a report you have already written, do not audit the audit. Right-sized review beats deep review: enough eyes to catch real problems, no recursion for its own sake.\n\n**What counts as blocking.** Exactly two kinds of finding block: a **hard violation** of a convention this repo documents, and a **spec-correctness** problem \u2014 a requirement missing, implemented wrongly, or contradicting a decision `design.md` records. Everything else \u2014 judgement calls, style preferences, and every code smell named below \u2014 is **report-only**: report it, do not fix it, and do not re-review because of it. A report-only finding is the user's call to make later, not this run's work. Leave this unstated and the safe reading is to fix everything, which makes \"re-run only the affected axis\" fire on every axis, every time.\n\n**Steps**\n\n1. **Gather context**\n ```bash\n tospec status --change \"<name>\" --json\n ```\n Note `schemaName` (sdd \u2192 compare against `specs/`; issue \u2192 compare against `task.md`, and against its delta specs too when `tospec show \"<name>\" --json` lists any \u2014 the issue schema makes them optional, not absent) and the files this change touched (from `tasks.md`/`task.md`, or the change's diff).\n\n Get the change's diff with `git diff <base>`, where `<base>` is the commit before the change started. Find it with `git log --reverse --format=%h -- tospec/changes/<name>/`: the first hash it prints is the commit that added the change directory, and `<base>` is that hash with `~1` appended. A name can be reused once a change of that name is archived, and the path's history then starts with the archived change's commits. So first look in `tospec/changes/archive/` for a directory named `<stamp>-<name>`; if there is one (the newest, when there are several: stamps sort by time), run `git log --reverse --format=%h -- tospec/changes/archive/<stamp>-<name>/`, whose first hash `<archived>` is the commit that archived it, and find the first hash with `git log --reverse --format=%h <archived>.. -- tospec/changes/<name>/` instead; if that prints nothing while `git status --short` does not list the change directory as new, the change was added in `<archived>` itself, and `<base>` is `<archived>~1`. Empty output means the change directory has no commit yet (`git status --short` lists it as new), so `<base>` is `HEAD`. If git rejects `<hash>~1` as an unknown revision, that hash is the repository's first commit: read what it added with `git show <hash>`, then the rest with `git diff <hash>`. `git diff` leaves out untracked files; read the ones `git status --short` marks `??` as well. **Not a git repository** (git answers `not a git repository`): there is no `<base>` and no diff, so use the fallback scope instead \u2014 every file `tasks.md` / `task.md` and `design.md` (when the change has one) name, plus every file modified during apply. With no earlier version to compare against, read each of those files in full; a change to a file none of them names goes unseen, so the report must record that the fallback scope replaced the diff, and list its files. Run every `git` command in this workflow as its own command from the project root \u2014 not behind `cd \u2026 &&`, not joined through `$(\u2026)`: a lone read-only `git` command runs without a permission prompt, and a chain or a substitution asks for one. With the fallback scope, those files stand in for \"the diff\" in both axis prompts below, labelled as the fallback scope. Verify writes no report file, so its record of the fallback goes in step 5's aggregated report, under both axes.\n\n2. **Spawn both axes in parallel** \u2014 a single message with two `Agent` tool calls, both `general-purpose`, both in the foreground when the tool lets you choose. Wait until both reports are back before step 5: a background axis that has not reported yet is not a clean one.\n\n **Standards axis prompt** \u2014 include the diff, the `context` and `rules` that `tospec instructions apply --change \"<name>\" --json` returned (they bind this diff exactly as the repo's documented conventions do; say so when the project sets neither), and the brief: \"Report every place the diff violates this repo's documented conventions or the project `context`/`rules` given here (cite the file/rule), plus any of Fowler's code smells you spot (Mysterious Name, Duplicated Code, Feature Envy, Data Clumps, Primitive Obsession, Repeated Switches, Shotgun Surgery, Divergent Change, Speculative Generality, Message Chains, Middle Man, Refused Bequest) \u2014 name the smell, quote the hunk, and treat documented repo conventions as overriding the baseline. Distinguish hard violations from judgement calls. Skip anything tooling already enforces.\"\n\n **Spec axis prompt** \u2014 include the diff plus, for sdd, the relevant `specs/<capability>/spec.md` delta content (`tospec show \"<name>\" --json`), `design.md`'s decisions, and the main-spec block (`tospec/specs/<capability>/spec.md`) of every REMOVED Requirement, under its own name, and of every RENAMED Requirement, under the FROM name \u2014 neither a REMOVED entry nor a FROM/TO pair carries its behavior, so the delta alone leaves the subagent nothing to judge it against. A REMOVED block the main spec no longer has comes from that file's history (`git log -p -- tospec/specs/<capability>/spec.md`, run from the project root; empty output means the path matched nothing) \u2014 in a project that is not a git repository, from this change's own delta entry (its Reason and Migration notes) and from earlier deltas under `tospec/changes/archive/` that ADDED or MODIFIED a Requirement of that name, the newest stamp's block being the last behavior agreed \u2014 and when none of these has it, say so in the prompt; for issue, `task.md`'s root cause and fix plan, plus \u2014 when the change has delta specs \u2014 the same delta content and main-spec blocks listed for sdd. Brief: \"Report (a) requirements/task items that are missing or partially implemented; (b) behavior in the diff that wasn't asked for (scope creep); (c) requirements that look implemented but the implementation looks wrong, or that deviate from design.md's stated decisions. Judge each delta section by its own rule: ADDED/MODIFIED must be implemented; REMOVED must be *gone* \u2014 search for the behavior its main-spec block describes, never for the name alone; no implementation is the correct result, only behavior still present is a finding, and a REMOVED Requirement with no block to read is reported as not verified, never as clean; RENAMED is judged under its TO name against the main spec's behavior (`tospec/specs/<capability>/spec.md`, under the FROM name), or this delta's MODIFIED block for the TO name when there is one \u2014 read both sources before you judge. Quote the spec/task line for each finding. End with a **Not checked** list: everything you could not verify, and why.\"\n\n3. **Run the full test suite.** This is a hard gate alongside both axes \u2014 a change with green axes but red tests isn't verified.\n\n4. **Re-validate artifacts**\n ```bash\n tospec validate \"<name>\" --json\n ```\n Read the whole report, not just `valid`. An ERROR fails the run: fix the artifact it names and re-run. The one ERROR you do not fix on your own is `code: \"requirement_header_mismatch\"`: ask the user once whether to change the header to its `suggestedHeader`. On yes, edit the header and re-run; on no, stop the workflow and tell the user archive will refuse this change as written. A WARNING leaves `valid: true` but is not noise \u2014 it is a defect the CLI chose not to block on (an artifact still holding the template, a task ID used twice, a section shorter than the schema asks for, a delta the archive merge would refuse or silently no-op), so treat it as work: fix what the message points at and re-run until no ERROR and no actionable WARNING remain. A delta the archive merge would refuse carries `code: \"archive_would_refuse\"`, counted in `summary.totals.archiveRefusals`: check that count, not the message text. Exactly three kinds may stay, and you name them in your output instead of passing over them: the SHALL/MUST keyword check on a Requirement written in a language other than English (that check is English-only by design), a \"confirm this is intentional\" finding you have confirmed is intentional, and a finding the archive order causes. Never edit the delta to clear that third kind: no edit to this change settles it. A finding with `blockedBy` waits on the in-progress changes it lists: tell the user to archive them first. A `code: \"sister_change_overlap\"` finding without `blockedBy` means another change rewrites the same requirement and this change archives first, or which goes first cannot be told: relay its message to the user, since whichever change archives second must rewrite its delta afterwards. `--strict` is not a shortcut here \u2014 it fails on those three as well. A review is not complete while an ERROR or an actionable WARNING remains.\n\n5. **Aggregate \u2014 do not merge or rerank**\n\n Only once both axes have reported, present the two reports under `## Standards` and `## Spec` headings. Close each axis's section with what it did not check \u2014 e.g. \"no delta specs; the Spec axis compared `task.md` only\", or \"REMOVED Requirement X had no block to read; not verified\", or \"not a git repository; reviewed the fallback scope, not a diff: <files>\" \u2014 so an axis that passed and one that never looked do not read the same. End with one line per axis: total findings and the worst issue within that axis. Do not pick a single overall verdict across axes.\n\n This is a **mechanical collation you do yourself** \u2014 collect, label, count. Not another review pass, and not a job for a subagent.\n\n**Verify output**\n\nReport the two-axis result plus test suite status. If both axes are clean and tests are green, the change is verified \u2014 tell the user it's ready for `tospec-archive`. If either axis has a blocking finding or tests are red, do **not** treat apply as done: fix the issue here (this is still apply), then send **only the hunk that fixed it** back to the axis that reported it \u2014 never the whole axis, and never the other one. A clean axis is not re-run for extra confidence.\n\n**Verify guardrails**\n- Standards and Spec axes are independent \u2014 never let one axis's findings influence the other's report\n- Full test suite must be green; a clean review with red tests is not verified\n- Quote the specific spec/task line or hunk for every finding \u2014 no unsupported claims\n- **One review pass per axis \u2014 never review the review.** A re-run after a fix sees only the hunk that fixed it\n";
5
5
  /** The pointer that replaces the methodology inside the apply skills. */
6
6
  export declare const VERIFY_POINTER = "## Verify (opt-in \u2014 only when the user asks)\n\nThe two-axis review does **not** run on its own. Apply finishes on the full test suite and `tospec validate`; a change with those green is implemented, review or no review.\n\nWhen the user asks for a review, **read `VERIFY.md` in this skill's directory and run it in full.** Don't offer it unprompted either \u2014 no \"shall I review this?\" at the end of a run. If a review does run, the change stays unfinished \u2014 and must not go to `tospec-archive` \u2014 until it comes back clean.";
7
7
  //# sourceMappingURL=verify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../../src/core/templates/fragments/verify.ts"],"names":[],"mappings":"AASA,yDAAyD;AACzD,eAAO,MAAM,kBAAkB,2xKA0CiF,CAAC;AAEjH,gFAAgF;AAChF,eAAO,MAAM,UAAU,k/KAKtB,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,cAAc,qiBAIoR,CAAC"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../../src/core/templates/fragments/verify.ts"],"names":[],"mappings":"AAUA,yDAAyD;AACzD,eAAO,MAAM,kBAAkB,2/VA4CiF,CAAC;AAEjH,gFAAgF;AAChF,eAAO,MAAM,UAAU,ktWAKtB,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,cAAc,qiBAIoR,CAAC"}
@@ -6,6 +6,7 @@
6
6
  * keeps a pointer.
7
7
  */
8
8
  import { VALIDATE_VERDICT_RULE } from './validate.js';
9
+ import { CHANGE_DIFF, GIT_COMMAND_RULE } from './change-diff.js';
9
10
  /** The review protocol carried by the disclosed file. */
10
11
  export const VERIFY_METHODOLOGY = `Two-axis review of the implementation, run as **independent parallel subagents** so neither pollutes or reranks the other's findings — a change can pass one axis and fail the other, and reporting them separately is what keeps that visible.
11
12
 
@@ -19,13 +20,15 @@ export const VERIFY_METHODOLOGY = `Two-axis review of the implementation, run as
19
20
  \`\`\`bash
20
21
  tospec status --change "<name>" --json
21
22
  \`\`\`
22
- Note \`schemaName\` (sdd → compare against \`specs/\`; issue → compare against \`task.md\`) and the files this change touched (from \`tasks.md\`/\`task.md\`, or \`git diff\` against the commit before the change started).
23
+ Note \`schemaName\` (sdd → compare against \`specs/\`; issue → compare against \`task.md\`, and against its delta specs too when \`tospec show "<name>" --json\` lists any — the issue schema makes them optional, not absent) and the files this change touched (from \`tasks.md\`/\`task.md\`, or the change's diff).
23
24
 
24
- 2. **Spawn both axes in parallel** — a single message with two \`Agent\` tool calls, both \`general-purpose\`:
25
+ ${CHANGE_DIFF} ${GIT_COMMAND_RULE} With the fallback scope, those files stand in for "the diff" in both axis prompts below, labelled as the fallback scope. Verify writes no report file, so its record of the fallback goes in step 5's aggregated report, under both axes.
25
26
 
26
- **Standards axis prompt** — include the diff and the brief: "Report every place the diff violates this repo's documented conventions (cite the file/rule), plus any of Fowler's code smells you spot (Mysterious Name, Duplicated Code, Feature Envy, Data Clumps, Primitive Obsession, Repeated Switches, Shotgun Surgery, Divergent Change, Speculative Generality, Message Chains, Middle Man, Refused Bequest) — name the smell, quote the hunk, and treat documented repo conventions as overriding the baseline. Distinguish hard violations from judgement calls. Skip anything tooling already enforces."
27
+ 2. **Spawn both axes in parallel** — a single message with two \`Agent\` tool calls, both \`general-purpose\`, both in the foreground when the tool lets you choose. Wait until both reports are back before step 5: a background axis that has not reported yet is not a clean one.
27
28
 
28
- **Spec axis prompt** — include the diff plus, for sdd, the relevant \`specs/<capability>/spec.md\` delta content (\`tospec show "<name>" --json\`) and \`design.md\`'s decisions; for issue, \`task.md\`'s root cause and fix plan. Brief: "Report (a) requirements/task items that are missing or partially implemented; (b) behavior in the diff that wasn't asked for (scope creep); (c) requirements that look implemented but the implementation looks wrong, or that deviate from design.md's stated decisions. Quote the spec/task line for each finding."
29
+ **Standards axis prompt** — include the diff, the \`context\` and \`rules\` that \`tospec instructions apply --change "<name>" --json\` returned (they bind this diff exactly as the repo's documented conventions do; say so when the project sets neither), and the brief: "Report every place the diff violates this repo's documented conventions or the project \`context\`/\`rules\` given here (cite the file/rule), plus any of Fowler's code smells you spot (Mysterious Name, Duplicated Code, Feature Envy, Data Clumps, Primitive Obsession, Repeated Switches, Shotgun Surgery, Divergent Change, Speculative Generality, Message Chains, Middle Man, Refused Bequest) — name the smell, quote the hunk, and treat documented repo conventions as overriding the baseline. Distinguish hard violations from judgement calls. Skip anything tooling already enforces."
30
+
31
+ **Spec axis prompt** — include the diff plus, for sdd, the relevant \`specs/<capability>/spec.md\` delta content (\`tospec show "<name>" --json\`), \`design.md\`'s decisions, and the main-spec block (\`tospec/specs/<capability>/spec.md\`) of every REMOVED Requirement, under its own name, and of every RENAMED Requirement, under the FROM name — neither a REMOVED entry nor a FROM/TO pair carries its behavior, so the delta alone leaves the subagent nothing to judge it against. A REMOVED block the main spec no longer has comes from that file's history (\`git log -p -- tospec/specs/<capability>/spec.md\`, run from the project root; empty output means the path matched nothing) — in a project that is not a git repository, from this change's own delta entry (its Reason and Migration notes) and from earlier deltas under \`tospec/changes/archive/\` that ADDED or MODIFIED a Requirement of that name, the newest stamp's block being the last behavior agreed — and when none of these has it, say so in the prompt; for issue, \`task.md\`'s root cause and fix plan, plus — when the change has delta specs — the same delta content and main-spec blocks listed for sdd. Brief: "Report (a) requirements/task items that are missing or partially implemented; (b) behavior in the diff that wasn't asked for (scope creep); (c) requirements that look implemented but the implementation looks wrong, or that deviate from design.md's stated decisions. Judge each delta section by its own rule: ADDED/MODIFIED must be implemented; REMOVED must be *gone* — search for the behavior its main-spec block describes, never for the name alone; no implementation is the correct result, only behavior still present is a finding, and a REMOVED Requirement with no block to read is reported as not verified, never as clean; RENAMED is judged under its TO name against the main spec's behavior (\`tospec/specs/<capability>/spec.md\`, under the FROM name), or this delta's MODIFIED block for the TO name when there is one — read both sources before you judge. Quote the spec/task line for each finding. End with a **Not checked** list: everything you could not verify, and why."
29
32
 
30
33
  3. **Run the full test suite.** This is a hard gate alongside both axes — a change with green axes but red tests isn't verified.
31
34
 
@@ -37,7 +40,7 @@ export const VERIFY_METHODOLOGY = `Two-axis review of the implementation, run as
37
40
 
38
41
  5. **Aggregate — do not merge or rerank**
39
42
 
40
- Present the two reports under \`## Standards\` and \`## Spec\` headings. End with one line per axis: total findings and the worst issue within that axis. Do not pick a single overall verdict across axes.
43
+ Only once both axes have reported, present the two reports under \`## Standards\` and \`## Spec\` headings. Close each axis's section with what it did not check — e.g. "no delta specs; the Spec axis compared \`task.md\` only", or "REMOVED Requirement X had no block to read; not verified", or "not a git repository; reviewed the fallback scope, not a diff: <files>" — so an axis that passed and one that never looked do not read the same. End with one line per axis: total findings and the worst issue within that axis. Do not pick a single overall verdict across axes.
41
44
 
42
45
  This is a **mechanical collation you do yourself** — collect, label, count. Not another review pass, and not a job for a subagent.
43
46
 
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../../src/core/templates/fragments/verify.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,yDAAyD;AACzD,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;KA0B7B,qBAAqB;;;;;;;;;;;;;;;;gHAgBsF,CAAC;AAEjH,gFAAgF;AAChF,MAAM,CAAC,MAAM,UAAU,GAAG;;;;EAIxB,kBAAkB;CACnB,CAAC;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,cAAc,GAAG;;;;+SAIiR,CAAC"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../../../src/core/templates/fragments/verify.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEjE,yDAAyD;AACzD,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;KAc7B,WAAW,IAAI,gBAAgB;;;;;;;;;;;;;;KAc/B,qBAAqB;;;;;;;;;;;;;;;;gHAgBsF,CAAC;AAEjH,gFAAgF;AAChF,MAAM,CAAC,MAAM,UAAU,GAAG;;;;EAIxB,kBAAkB;CACnB,CAAC;AAEF,yEAAyE;AACzE,MAAM,CAAC,MAAM,cAAc,GAAG;;;;+SAIiR,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Two apply variants share the same gating (`applyRequires`), opt-in verify section
3
3
  * and re-validate step; they differ only in how tests relate to the implementation:
4
- * - `tospec-apply` — default, tests optional
4
+ * - `tospec-apply` — default, tests beyond the listed steps optional
5
5
  * - `tospec-apply-with-tdd` — strict TDD, red → green per slice
6
6
  */
7
7
  import type { SkillTemplate } from '../types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../../src/core/templates/workflows/apply.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA+GjD,wBAAgB,2BAA2B,IAAI,aAAa,CAe3D;AA4BD,wBAAgB,kCAAkC,IAAI,aAAa,CAelE"}
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../../src/core/templates/workflows/apply.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAoIjD,wBAAgB,2BAA2B,IAAI,aAAa,CAe3D;AA8BD,wBAAgB,kCAAkC,IAAI,aAAa,CAelE"}
@@ -20,6 +20,13 @@ function buildApplyBody(v) {
20
20
 
21
21
  It also carries the project's own constraints when \`tospec/config.yaml\` sets them: \`context\` (the stack, conventions and domain vocabulary this repo works to) and \`rules\` (rules configured for the apply phase). Both bind the code you are about to write — treat them as standing instructions for every item below, not as background. \`status[]\` reports anything in that config that could not be read; if it names a dropped \`context\`, say so rather than proceeding as if the project set none.
22
22
 
23
+ \`status[]\` can also carry warnings about the change itself. Show each one to the user before implementing anything — implementing past one silently means finishing work that cannot be archived or tracked.
24
+ - \`apply_specs_missing\` — the change has no delta specs and no valid \`skip_specs: true\`, so validate and archive will refuse it once the work is done. It has exactly two resolutions, and a go-ahead to implement anyway is not one of them: (a) stop and send the user to the planning skill its \`fix\` names, to write the delta specs; (b) when the user explicitly says this change needs no delta spec, set \`skip_specs: true\` in the change's \`.tospec.yaml\`. Never set the flag on your own judgment, even where a \`fix\` or a validate message suggests it — status, validate and archive all decide by it from then on, so it must record the user's decision. An invalid value such as \`skip_specs: "yes"\` counts as no flag: setting it to \`true\` is (b) and needs the same explicit statement; otherwise remove the key and take (a). If the user later wants delta specs after all, remove \`skip_specs\` first, then take (a): validate rejects the flag beside spec files.
25
+ - \`apply_skip_specs_contradicted\` — the change sets \`skip_specs: true\` but has delta spec files, so validate and archive will refuse it once the work is done. Resolve it before implementing, on the user's word, never your own judgment: when the user wants those delta specs, remove \`skip_specs\`; delete the spec files only when the user confirms this change needs no delta spec.
26
+ - \`apply_specs_misplaced\` — spec files sit where archive does not merge them (nested, in a dot folder, misnamed, or \`specs/spec.md\`), so validate and archive will refuse the change once the work is done. Resolve it before implementing: move each listed file to \`specs/<capability>/spec.md\` — \`tospec validate <name>\` names the exact path for each. When a file is not meant as a delta spec, ask the user before deleting it.
27
+ - \`apply_archive_would_refuse\` — archive's merge would refuse a delta spec as written (a MODIFIED, REMOVED or RENAMED on a capability with no main spec, an ADDED requirement that already exists, a rebuilt spec that fails validation), so the work could not be archived once done. Stop before implementing and report the message to the user. When it carries \`blockedBy\`, the delta is right and only the archive order is not: tell the user to archive the changes it lists with \`tospec-archive\`, then run this step again; otherwise send the user to the planning skill its \`fix\` names to correct the delta. Do not edit the delta on your own judgment to clear the warning.
28
+ - \`schema_tracks_unmatched\` — the schema's \`apply.tracks\` matches no artifact, so the progress you are about to rely on is read from the wrong file. Either resolve it — its \`fix\` names how — or get their explicit go-ahead before implementing anything.
29
+
23
30
  Act on \`state\`:
24
31
  - \`blocked\` — required artifacts or the tracks file are missing; show \`instruction\` and STOP, sending the user back to \`tospec-propose\`/\`tospec-issue\`.
25
32
  - \`all_done\` — everything is checked off already; say so and stop. A change being complete is not by itself a reason to review it.
@@ -59,7 +66,7 @@ ${VERIFY_POINTER}
59
66
 
60
67
  **Output**
61
68
 
62
- Report which tasks/checkboxes completed this pass, current progress (\`tospec status --change "<name>"\`), and whether all required artifacts are checked off. When everything is done and the test suite is green, tell the user the change is ready for \`tospec-archive\`. If they asked for a review and it surfaced findings it defines as blocking, keep working here to resolve them.
69
+ Report which tasks/checkboxes completed this pass, current progress (\`tospec status --change "<name>"\`), and whether all required artifacts are checked off. When everything is done and the test suite is green, tell the user the change is ready for \`tospec-archive\` — unless the user changed their mind after step 2 and the change now has neither delta specs nor \`skip_specs: true\`: then say it cannot be archived yet, and that the delta specs have to be written first. If they asked for a review and it surfaced findings it defines as blocking, keep working here to resolve them.
63
70
 
64
71
  **Guardrails**
65
72
  ${v.guardrailsHead}
@@ -69,7 +76,15 @@ ${v.guardrailsHead}
69
76
  - Fix root cause: check every caller of a shared function before declaring a fix complete
70
77
  - Don't hand off to archive until the full test suite is green`;
71
78
  }
72
- // Default apply — implement per slice; tests are optional, not mandated.
79
+ // An assertion that recomputes the expected value the way the code does can
80
+ // never fail, so it passes whatever the code does. Both variants name it next
81
+ // to implementation-coupled assertions, the other kind that tests nothing.
82
+ const TAUTOLOGICAL_ASSERTIONS = "tautological ones (the expected value computed the way the code computes it, e.g. `expect(add(a, b)).toBe(a + b)`, which always passes — take the expected value from an independent source: the spec's scenario or a hard-coded value)";
83
+ // The issue workflow's diagnosis tags temporary logging `[DEBUG-xxxx]` so it
84
+ // can be found again; nothing else removed it, so it rode into the fix's diff.
85
+ // Only the issue branches carry it: no other workflow adds the tag.
86
+ const DEBUG_LOG_CLEANUP = 'Before checking a task off, grep the project for `[DEBUG-` and delete every tagged log line diagnosis added.';
87
+ // Default apply — implement per slice; tests beyond the listed steps are optional, not mandated.
73
88
  const APPLY_VARIANT = {
74
89
  checkOffRule: 'Take the next unchecked item, implement it, confirm it works against its specs, check it off (\`- [ ]\` → \`- [x]\`), then move to the next.',
75
90
  sddBranch: `### sdd branch — implement per slice
@@ -79,14 +94,16 @@ For each tracer-bullet slice in \`tasks.md\`:
79
94
  2. Verify the result matches the behavior the slice's specs describe, and that the existing test suite still passes.
80
95
  3. Check off the slice, then move to the next one — one slice per cycle. Refactoring is not part of this loop; raise it separately once the slice is green.
81
96
 
82
- Test steps that \`tasks.md\` lists for a slice are part of that slice. Beyond those, writing a new test is **not required** in this loop — add one when it earns its keep. If you do, put it at the seam \`design.md\` named and don't test internals or add implementation-coupled assertions (mocking internal collaborators, reaching into private state, checking the database instead of the interface).`,
97
+ Test steps that \`tasks.md\` lists for a slice are part of that slice. Beyond those, writing a new test is **not required** in this loop — add one when it earns its keep. If you do, put it at the seam \`design.md\` named and don't test internals or add implementation-coupled assertions (mocking internal collaborators, reaching into private state, checking the database instead of the interface) or ${TAUTOLOGICAL_ASSERTIONS}.`,
83
98
  issueBranch: `### issue branch — fix root cause
84
99
 
85
- Read \`task.md\`'s feedback loop, then fix the root cause, not the symptom — if the same defect is reachable through multiple callers of a shared function, the fix belongs in the shared function, not patched into just the caller the ticket named (grep every caller of the function you're touching). Confirm the fix with \`task.md\`'s feedback loop and keep the existing suite green.
100
+ Read \`task.md\`'s feedback loop, then fix the root cause, not the symptom — if the same defect is reachable through multiple callers of a shared function, the fix belongs in the shared function, not patched into just the caller the ticket named (grep every caller of the function you're touching). Confirm the fix with \`task.md\`'s feedback loop and keep the existing suite green. ${DEBUG_LOG_CLEANUP}
86
101
 
87
- A regression test is **not required** here — add one when the bug is likely to recur, extending the existing test if there's one at the right seam.`,
102
+ Test steps that \`task.md\` lists are part of the fix. Beyond those, writing a new regression test is **not required** here — add one when the bug is likely to recur, extending the existing test if there's one at the right seam.`,
103
+ // Scoped to tests beyond the listed steps: both branches make those part of
104
+ // the work, and an unqualified "tests are optional" here licensed skipping them.
88
105
  guardrailsHead: `- One slice/task at a time — no batching
89
- - Tests are optional in this loop — write one when it earns its keep, and never let a missing test block progress; \`tospec-apply-with-tdd\` is the variant that mandates them
106
+ - Tests beyond the steps \`tasks.md\` / \`task.md\` lists are optional in this loop — write one when it earns its keep, and never let a missing one block progress; \`tospec-apply-with-tdd\` is the variant that mandates them
90
107
  - Never delete, skip, or weaken an existing test to get to green — fix the code instead`,
91
108
  };
92
109
  const APPLY_BODY = buildApplyBody(APPLY_VARIANT);
@@ -112,7 +129,7 @@ const APPLY_TDD_VARIANT = {
112
129
  sddBranch: `### sdd branch — TDD per slice
113
130
 
114
131
  For each tracer-bullet slice in \`tasks.md\`:
115
- 1. Write the failing test first (red) — **only at the seam \`design.md\` named**. Don't test internals, don't add implementation-coupled assertions (mocking internal collaborators, reaching into private state, checking the database instead of the interface).
132
+ 1. Write the failing test first (red) — **only at the seam \`design.md\` named**. Run it and confirm it fails on the behavior it asserts: a failure from a compile, import or setup error is not red, so fix that and re-run until the assertion itself fails. Don't test internals, don't add implementation-coupled assertions (mocking internal collaborators, reaching into private state, checking the database instead of the interface) or ${TAUTOLOGICAL_ASSERTIONS}.
116
133
  2. Implement the minimum to pass (green). Don't anticipate future slices or add speculative flexibility.
117
134
  3. Verify the result matches the behavior the slice's specs describe.
118
135
  4. Check off the slice, then move to the next one — one slice per cycle. Refactoring is not part of this loop; raise it separately once the slice is green.`,
@@ -120,10 +137,12 @@ For each tracer-bullet slice in \`tasks.md\`:
120
137
 
121
138
  Read \`task.md\`'s feedback loop. Then:
122
139
  - **Existing test, failing** → the regression test from diagnosis already goes red. Find out why it fails and fix root cause (grep every caller of the function you're touching — the bug may hit more than the one path the ticket names).
123
- - **Existing test, passing** → the bug is an edge case the existing test doesn't cover. Add a new failing test for that edge case first, then fix.
124
- - **No existing test** → write the red regression test from \`task.md\`'s feedback loop first, then fix.
140
+ - **Existing test, passing** → the bug is an edge case the existing test doesn't cover. Add a new failing test for that edge case first, run it and confirm it fails on the asserted behavior (a compile, import or setup error is not red), then fix.
141
+ - **No existing test** → write the red regression test from \`task.md\`'s feedback loop first, run it and confirm it fails on the asserted behavior (a compile, import or setup error is not red), then fix.
142
+
143
+ Fix root cause, not symptom — if the same defect is reachable through multiple callers of a shared function, the fix belongs in the shared function, not patched into just the caller the ticket named.
125
144
 
126
- Fix root cause, not symptom — if the same defect is reachable through multiple callers of a shared function, the fix belongs in the shared function, not patched into just the caller the ticket named.`,
145
+ ${DEBUG_LOG_CLEANUP}`,
127
146
  guardrailsHead: `- Red before green, always — never write the implementation before its failing test
128
147
  - One slice/task at a time — no batching`,
129
148
  };
@@ -1 +1 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../../src/core/templates/workflows/apply.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAcjE,iEAAiE;AACjE,SAAS,cAAc,CAAC,CAAe;IACrC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEAiC0D,CAAC,CAAC,YAAY;;;;;;;;;;EAU/E,CAAC,CAAC,SAAS;;EAEX,CAAC,CAAC,WAAW;;;;;;wMAMyL,qBAAqB;;EAE3N,cAAc;;;;;;;EAOd,CAAC,CAAC,cAAc;;;;;+DAK6C,CAAC;AAChE,CAAC;AAED,yEAAyE;AAEzE,MAAM,aAAa,GAAiB;IAClC,YAAY,EACV,8IAA8I;IAChJ,SAAS,EAAE;;;;;;;8YAOiY;IAC5Y,WAAW,EAAE;;;;oJAIqI;IAClJ,cAAc,EAAE;;wFAEsE;CACvF,CAAC;AAEF,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAEjD,MAAM,UAAU,2BAA2B;IACzC,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,wIAAwI;QACrJ,YAAY,EAAE;;;;EAIhB,UAAU,EAAE;QACV,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,sBAAsB;QACrC,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC;QAC3F,UAAU,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;KACxC,CAAC;AACJ,CAAC;AAED,6CAA6C;AAE7C,MAAM,iBAAiB,GAAiB;IACtC,YAAY,EACV,sIAAsI;IACxI,SAAS,EAAE;;;;;;4JAM+I;IAC1J,WAAW,EAAE;;;;;;;wMAOyL;IACtM,cAAc,EAAE;yCACuB;CACxC,CAAC;AAEF,MAAM,cAAc,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;AAEzD,MAAM,UAAU,kCAAkC;IAChD,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,oJAAoJ;QACjK,YAAY,EAAE;;;;EAIhB,cAAc,EAAE;QACd,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,sBAAsB;QACrC,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC;QAC3F,UAAU,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;KACxC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../../../src/core/templates/workflows/apply.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAcjE,iEAAiE;AACjE,SAAS,cAAc,CAAC,CAAe;IACrC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mEAwC0D,CAAC,CAAC,YAAY;;;;;;;;;;EAU/E,CAAC,CAAC,SAAS;;EAEX,CAAC,CAAC,WAAW;;;;;;wMAMyL,qBAAqB;;EAE3N,cAAc;;;;;;;EAOd,CAAC,CAAC,cAAc;;;;;+DAK6C,CAAC;AAChE,CAAC;AAED,4EAA4E;AAC5E,8EAA8E;AAC9E,2EAA2E;AAC3E,MAAM,uBAAuB,GAC3B,yOAAyO,CAAC;AAE5O,6EAA6E;AAC7E,+EAA+E;AAC/E,oEAAoE;AACpE,MAAM,iBAAiB,GACrB,8GAA8G,CAAC;AAEjH,iGAAiG;AAEjG,MAAM,aAAa,GAAiB;IAClC,YAAY,EACV,8IAA8I;IAChJ,SAAS,EAAE;;;;;;;kZAOqY,uBAAuB,GAAG;IAC1a,WAAW,EAAE;;iYAEkX,iBAAiB;;qOAE7K;IACnO,4EAA4E;IAC5E,iFAAiF;IACjF,cAAc,EAAE;;wFAEsE;CACvF,CAAC;AAEF,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;AAEjD,MAAM,UAAU,2BAA2B;IACzC,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,wIAAwI;QACrJ,YAAY,EAAE;;;;EAIhB,UAAU,EAAE;QACV,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,sBAAsB;QACrC,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC;QAC3F,UAAU,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;KACxC,CAAC;AACJ,CAAC;AAED,6CAA6C;AAE7C,MAAM,iBAAiB,GAAiB;IACtC,YAAY,EACV,sIAAsI;IACxI,SAAS,EAAE;;;obAGua,uBAAuB;;;4JAG/S;IAC1J,WAAW,EAAE;;;;;;;;;EASb,iBAAiB,EAAE;IACnB,cAAc,EAAE;yCACuB;CACxC,CAAC;AAEF,MAAM,cAAc,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC;AAEzD,MAAM,UAAU,kCAAkC;IAChD,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,oJAAoJ;QACjK,YAAY,EAAE;;;;EAIhB,cAAc,EAAE;QACd,OAAO,EAAE,KAAK;QACd,aAAa,EAAE,sBAAsB;QACrC,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;QAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,CAAC;QAC3F,UAAU,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;KACxC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../../src/core/templates/workflows/archive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAwEjD,wBAAgB,6BAA6B,IAAI,aAAa,CAc7D"}
1
+ {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../../src/core/templates/workflows/archive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA0FjD,wBAAgB,6BAA6B,IAAI,aAAa,CAc7D"}