@rpamis/comet 0.3.9 → 0.4.0-beta.10

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 (1678) hide show
  1. package/README.md +572 -257
  2. package/assets/manifest.json +46 -13
  3. package/assets/skills/comet/SKILL.md +17 -271
  4. package/assets/skills/comet/reference/auto-transition.md +1 -1
  5. package/assets/skills/comet/reference/classic-layout.md +34 -0
  6. package/assets/skills/comet/reference/comet-yaml-fields.md +22 -9
  7. package/assets/skills/comet/reference/context-recovery.md +23 -3
  8. package/assets/skills/comet/reference/debug-gate.md +17 -1
  9. package/assets/skills/comet/reference/decision-point.md +24 -2
  10. package/assets/skills/comet/reference/file-structure.md +2 -2
  11. package/assets/skills/comet/reference/intent-frame.md +74 -0
  12. package/assets/skills/comet/reference/scripts.md +101 -0
  13. package/assets/skills/comet/reference/subagent-dispatch.md +84 -27
  14. package/assets/skills/comet/rules/comet-phase-guard.en.md +44 -33
  15. package/assets/skills/comet/rules/comet-phase-guard.md +42 -33
  16. package/assets/skills/comet/rules/comet-workflow-guard.en.md +32 -0
  17. package/assets/skills/comet/rules/comet-workflow-guard.md +32 -0
  18. package/assets/skills/comet/runtime/classic/checks.yaml +6 -0
  19. package/assets/skills/comet/runtime/classic/guardrails.yaml +13 -0
  20. package/assets/skills/comet/runtime/classic/skill.yaml +122 -0
  21. package/assets/skills/comet/scripts/comet-archive.mjs +3 -0
  22. package/assets/skills/comet/scripts/comet-entry-runtime.mjs +8074 -0
  23. package/assets/skills/comet/scripts/comet-env.mjs +15 -0
  24. package/assets/skills/comet/scripts/comet-guard.mjs +3 -0
  25. package/assets/skills/comet/scripts/comet-handoff.mjs +3 -0
  26. package/assets/skills/comet/scripts/comet-hook-guard.mjs +3 -0
  27. package/assets/skills/comet/scripts/comet-hook-router.mjs +12786 -0
  28. package/assets/skills/comet/scripts/comet-intent.mjs +3 -0
  29. package/assets/skills/comet/scripts/comet-resume-probe.mjs +3 -0
  30. package/assets/skills/comet/scripts/comet-runtime.mjs +19201 -0
  31. package/assets/skills/comet/scripts/comet-state.mjs +3 -0
  32. package/assets/skills/comet/scripts/comet-yaml-validate.mjs +3 -0
  33. package/assets/skills/comet-any/SKILL.md +118 -0
  34. package/assets/skills/comet-any/reference/authored-zone-example.md +105 -0
  35. package/assets/skills/comet-any/reference/authoring-protocol.json +91 -0
  36. package/assets/skills/comet-any/reference/authoring-subagents.md +102 -0
  37. package/assets/skills/comet-any/reference/bundle-authoring.md +166 -0
  38. package/assets/skills/comet-any/reference/eval-provider.md +83 -0
  39. package/assets/skills/comet-any/reference/subagents/pause-points-author.md +78 -0
  40. package/assets/skills/comet-any/reference/subagents/reference-author.md +77 -0
  41. package/assets/skills/comet-any/reference/subagents/script-author.md +81 -0
  42. package/assets/skills/comet-any/reference/subagents/skill-core-author.md +129 -0
  43. package/assets/skills/comet-any/reference/subagents/skill-reviewer.md +126 -0
  44. package/assets/skills/comet-any/reference/subagents/workflow-entry-author.md +101 -0
  45. package/assets/skills/comet-archive/SKILL.md +81 -28
  46. package/assets/skills/comet-build/SKILL.md +97 -67
  47. package/assets/skills/comet-classic/SKILL.md +295 -0
  48. package/assets/skills/comet-design/SKILL.md +43 -43
  49. package/assets/skills/comet-hotfix/SKILL.md +71 -59
  50. package/assets/skills/comet-native/SKILL.md +133 -0
  51. package/assets/skills/comet-native/reference/artifacts.md +141 -0
  52. package/assets/skills/comet-native/reference/clarification.md +54 -0
  53. package/assets/skills/comet-native/reference/commands.md +170 -0
  54. package/assets/skills/comet-native/reference/recovery.md +96 -0
  55. package/assets/skills/comet-native/scripts/comet-native-hook-guard.mjs +4 -0
  56. package/assets/skills/comet-native/scripts/comet-native-runtime.mjs +34468 -0
  57. package/assets/skills/comet-open/SKILL.md +120 -70
  58. package/assets/skills/comet-tweak/SKILL.md +99 -68
  59. package/assets/skills/comet-verify/SKILL.md +74 -86
  60. package/assets/skills-zh/comet/SKILL.md +17 -258
  61. package/assets/skills-zh/comet/reference/auto-transition.md +3 -3
  62. package/assets/skills-zh/comet/reference/classic-layout.md +34 -0
  63. package/assets/skills-zh/comet/reference/comet-yaml-fields.md +18 -9
  64. package/assets/skills-zh/comet/reference/context-recovery.md +22 -2
  65. package/assets/skills-zh/comet/reference/debug-gate.md +17 -1
  66. package/assets/skills-zh/comet/reference/decision-point.md +24 -2
  67. package/assets/skills-zh/comet/reference/file-structure.md +2 -2
  68. package/assets/skills-zh/comet/reference/intent-frame.md +74 -0
  69. package/assets/skills-zh/comet/reference/scripts.md +101 -0
  70. package/assets/skills-zh/comet/reference/subagent-dispatch.md +72 -22
  71. package/assets/skills-zh/comet/runtime/classic/checks.yaml +6 -0
  72. package/assets/skills-zh/comet/runtime/classic/guardrails.yaml +13 -0
  73. package/assets/skills-zh/comet/runtime/classic/skill.yaml +122 -0
  74. package/assets/skills-zh/comet-any/SKILL.md +118 -0
  75. package/assets/skills-zh/comet-any/reference/authored-zone-example.md +105 -0
  76. package/assets/skills-zh/comet-any/reference/authoring-protocol.json +91 -0
  77. package/assets/skills-zh/comet-any/reference/authoring-subagents.md +107 -0
  78. package/assets/skills-zh/comet-any/reference/bundle-authoring.md +166 -0
  79. package/assets/skills-zh/comet-any/reference/eval-provider.md +66 -0
  80. package/assets/skills-zh/comet-any/reference/subagents/pause-points-author.md +81 -0
  81. package/assets/skills-zh/comet-any/reference/subagents/reference-author.md +81 -0
  82. package/assets/skills-zh/comet-any/reference/subagents/script-author.md +84 -0
  83. package/assets/skills-zh/comet-any/reference/subagents/skill-core-author.md +129 -0
  84. package/assets/skills-zh/comet-any/reference/subagents/skill-reviewer.md +126 -0
  85. package/assets/skills-zh/comet-any/reference/subagents/workflow-entry-author.md +99 -0
  86. package/assets/skills-zh/comet-archive/SKILL.md +81 -28
  87. package/assets/skills-zh/comet-build/SKILL.md +88 -71
  88. package/assets/skills-zh/comet-classic/SKILL.md +283 -0
  89. package/assets/skills-zh/comet-design/SKILL.md +43 -43
  90. package/assets/skills-zh/comet-hotfix/SKILL.md +75 -63
  91. package/assets/skills-zh/comet-native/SKILL.md +133 -0
  92. package/assets/skills-zh/comet-native/reference/artifacts.md +141 -0
  93. package/assets/skills-zh/comet-native/reference/clarification.md +54 -0
  94. package/assets/skills-zh/comet-native/reference/commands.md +170 -0
  95. package/assets/skills-zh/comet-native/reference/recovery.md +96 -0
  96. package/assets/skills-zh/comet-open/SKILL.md +121 -71
  97. package/assets/skills-zh/comet-tweak/SKILL.md +98 -66
  98. package/assets/skills-zh/comet-verify/SKILL.md +70 -80
  99. package/bin/comet.js +1 -1
  100. package/dist/app/cli/comet-banner.d.ts +25 -0
  101. package/dist/app/cli/comet-banner.d.ts.map +1 -0
  102. package/dist/app/cli/comet-banner.js +265 -0
  103. package/dist/app/cli/comet-banner.js.map +1 -0
  104. package/dist/{cli → app/cli}/index.d.ts.map +1 -1
  105. package/dist/app/cli/index.js +527 -0
  106. package/dist/app/cli/index.js.map +1 -0
  107. package/dist/app/commands/bundle.d.ts +51 -0
  108. package/dist/app/commands/bundle.d.ts.map +1 -0
  109. package/dist/app/commands/bundle.js +387 -0
  110. package/dist/app/commands/bundle.js.map +1 -0
  111. package/dist/app/commands/classic.d.ts +5 -0
  112. package/dist/app/commands/classic.d.ts.map +1 -0
  113. package/dist/app/commands/classic.js +32 -0
  114. package/dist/app/commands/classic.js.map +1 -0
  115. package/dist/app/commands/command-result.d.ts +6 -0
  116. package/dist/app/commands/command-result.d.ts.map +1 -0
  117. package/dist/app/commands/command-result.js +4 -0
  118. package/dist/app/commands/command-result.js.map +1 -0
  119. package/dist/app/commands/creator.d.ts +14 -0
  120. package/dist/app/commands/creator.d.ts.map +1 -0
  121. package/dist/app/commands/creator.js +82 -0
  122. package/dist/app/commands/creator.js.map +1 -0
  123. package/dist/app/commands/dashboard.d.ts +16 -0
  124. package/dist/app/commands/dashboard.d.ts.map +1 -0
  125. package/dist/app/commands/dashboard.js +53 -0
  126. package/dist/app/commands/dashboard.js.map +1 -0
  127. package/dist/{commands → app/commands}/doctor.d.ts +5 -1
  128. package/dist/app/commands/doctor.d.ts.map +1 -0
  129. package/dist/app/commands/doctor.js +1115 -0
  130. package/dist/app/commands/doctor.js.map +1 -0
  131. package/dist/app/commands/eval.d.ts +19 -0
  132. package/dist/app/commands/eval.d.ts.map +1 -0
  133. package/dist/app/commands/eval.js +227 -0
  134. package/dist/app/commands/eval.js.map +1 -0
  135. package/dist/app/commands/i18n.d.ts +4 -0
  136. package/dist/app/commands/i18n.d.ts.map +1 -0
  137. package/dist/{commands → app/commands}/i18n.js +40 -8
  138. package/dist/app/commands/i18n.js.map +1 -0
  139. package/dist/app/commands/init.d.ts +38 -0
  140. package/dist/app/commands/init.d.ts.map +1 -0
  141. package/dist/app/commands/init.js +891 -0
  142. package/dist/app/commands/init.js.map +1 -0
  143. package/dist/app/commands/native.d.ts +2 -0
  144. package/dist/app/commands/native.d.ts.map +1 -0
  145. package/dist/app/commands/native.js +10 -0
  146. package/dist/app/commands/native.js.map +1 -0
  147. package/dist/app/commands/platform-select-prompt.d.ts +38 -0
  148. package/dist/app/commands/platform-select-prompt.d.ts.map +1 -0
  149. package/dist/app/commands/platform-select-prompt.js +141 -0
  150. package/dist/app/commands/platform-select-prompt.js.map +1 -0
  151. package/dist/app/commands/project-scope-selection.d.ts +13 -0
  152. package/dist/app/commands/project-scope-selection.d.ts.map +1 -0
  153. package/dist/app/commands/project-scope-selection.js +35 -0
  154. package/dist/app/commands/project-scope-selection.js.map +1 -0
  155. package/dist/app/commands/publish.d.ts +7 -0
  156. package/dist/app/commands/publish.d.ts.map +1 -0
  157. package/dist/app/commands/publish.js +14 -0
  158. package/dist/app/commands/publish.js.map +1 -0
  159. package/dist/app/commands/resume-probe.d.ts +12 -0
  160. package/dist/app/commands/resume-probe.d.ts.map +1 -0
  161. package/dist/app/commands/resume-probe.js +68 -0
  162. package/dist/app/commands/resume-probe.js.map +1 -0
  163. package/dist/app/commands/skill.d.ts +23 -0
  164. package/dist/app/commands/skill.d.ts.map +1 -0
  165. package/dist/app/commands/skill.js +208 -0
  166. package/dist/app/commands/skill.js.map +1 -0
  167. package/dist/app/commands/status.d.ts.map +1 -0
  168. package/dist/app/commands/status.js +125 -0
  169. package/dist/app/commands/status.js.map +1 -0
  170. package/dist/app/commands/uninstall.d.ts +14 -0
  171. package/dist/app/commands/uninstall.d.ts.map +1 -0
  172. package/dist/app/commands/uninstall.js +343 -0
  173. package/dist/app/commands/uninstall.js.map +1 -0
  174. package/dist/app/commands/update.d.ts +54 -0
  175. package/dist/app/commands/update.d.ts.map +1 -0
  176. package/dist/app/commands/update.js +1608 -0
  177. package/dist/app/commands/update.js.map +1 -0
  178. package/dist/app/commands/workflow.d.ts +6 -0
  179. package/dist/app/commands/workflow.d.ts.map +1 -0
  180. package/dist/app/commands/workflow.js +11 -0
  181. package/dist/app/commands/workflow.js.map +1 -0
  182. package/dist/config/repository-layout.json +124 -0
  183. package/dist/domains/bundle/authoring.d.ts +82 -0
  184. package/dist/domains/bundle/authoring.d.ts.map +1 -0
  185. package/dist/domains/bundle/authoring.js +185 -0
  186. package/dist/domains/bundle/authoring.js.map +1 -0
  187. package/dist/domains/bundle/bundle-platform.d.ts +40 -0
  188. package/dist/domains/bundle/bundle-platform.d.ts.map +1 -0
  189. package/dist/domains/bundle/bundle-platform.js +293 -0
  190. package/dist/domains/bundle/bundle-platform.js.map +1 -0
  191. package/dist/domains/bundle/candidates.d.ts +29 -0
  192. package/dist/domains/bundle/candidates.d.ts.map +1 -0
  193. package/dist/domains/bundle/candidates.js +37 -0
  194. package/dist/domains/bundle/candidates.js.map +1 -0
  195. package/dist/domains/bundle/compatibility-benchmark.d.ts +12 -0
  196. package/dist/domains/bundle/compatibility-benchmark.d.ts.map +1 -0
  197. package/dist/domains/bundle/compatibility-benchmark.js +224 -0
  198. package/dist/domains/bundle/compatibility-benchmark.js.map +1 -0
  199. package/dist/domains/bundle/compiler.d.ts +5 -0
  200. package/dist/domains/bundle/compiler.d.ts.map +1 -0
  201. package/dist/domains/bundle/compiler.js +106 -0
  202. package/dist/domains/bundle/compiler.js.map +1 -0
  203. package/dist/domains/bundle/distribute.d.ts +33 -0
  204. package/dist/domains/bundle/distribute.d.ts.map +1 -0
  205. package/dist/domains/bundle/distribute.js +166 -0
  206. package/dist/domains/bundle/distribute.js.map +1 -0
  207. package/dist/domains/bundle/draft.d.ts +19 -0
  208. package/dist/domains/bundle/draft.d.ts.map +1 -0
  209. package/dist/domains/bundle/draft.js +82 -0
  210. package/dist/domains/bundle/draft.js.map +1 -0
  211. package/dist/domains/bundle/eval-manifest-runtime.d.ts +8 -0
  212. package/dist/domains/bundle/eval-manifest-runtime.d.ts.map +1 -0
  213. package/dist/domains/bundle/eval-manifest-runtime.js +118 -0
  214. package/dist/domains/bundle/eval-manifest-runtime.js.map +1 -0
  215. package/dist/domains/bundle/eval-run-result.d.ts +22 -0
  216. package/dist/domains/bundle/eval-run-result.d.ts.map +1 -0
  217. package/dist/domains/bundle/eval-run-result.js +207 -0
  218. package/dist/domains/bundle/eval-run-result.js.map +1 -0
  219. package/dist/domains/bundle/eval.d.ts +36 -0
  220. package/dist/domains/bundle/eval.d.ts.map +1 -0
  221. package/dist/domains/bundle/eval.js +498 -0
  222. package/dist/domains/bundle/eval.js.map +1 -0
  223. package/dist/domains/bundle/factory-compose.d.ts +12 -0
  224. package/dist/domains/bundle/factory-compose.d.ts.map +1 -0
  225. package/dist/domains/bundle/factory-compose.js +309 -0
  226. package/dist/domains/bundle/factory-compose.js.map +1 -0
  227. package/dist/domains/bundle/factory-guide.d.ts +37 -0
  228. package/dist/domains/bundle/factory-guide.d.ts.map +1 -0
  229. package/dist/domains/bundle/factory-guide.js +96 -0
  230. package/dist/domains/bundle/factory-guide.js.map +1 -0
  231. package/dist/domains/bundle/factory-plan.d.ts +48 -0
  232. package/dist/domains/bundle/factory-plan.d.ts.map +1 -0
  233. package/dist/domains/bundle/factory-plan.js +172 -0
  234. package/dist/domains/bundle/factory-plan.js.map +1 -0
  235. package/dist/domains/bundle/factory-proposal.d.ts +31 -0
  236. package/dist/domains/bundle/factory-proposal.d.ts.map +1 -0
  237. package/dist/domains/bundle/factory-proposal.js +225 -0
  238. package/dist/domains/bundle/factory-proposal.js.map +1 -0
  239. package/dist/domains/bundle/factory-resolve.d.ts +11 -0
  240. package/dist/domains/bundle/factory-resolve.d.ts.map +1 -0
  241. package/dist/domains/bundle/factory-resolve.js +121 -0
  242. package/dist/domains/bundle/factory-resolve.js.map +1 -0
  243. package/dist/domains/bundle/factory.d.ts +17 -0
  244. package/dist/domains/bundle/factory.d.ts.map +1 -0
  245. package/dist/domains/bundle/factory.js +504 -0
  246. package/dist/domains/bundle/factory.js.map +1 -0
  247. package/dist/domains/bundle/hash.d.ts +3 -0
  248. package/dist/domains/bundle/hash.d.ts.map +1 -0
  249. package/dist/domains/bundle/hash.js +72 -0
  250. package/dist/domains/bundle/hash.js.map +1 -0
  251. package/dist/domains/bundle/load.d.ts +4 -0
  252. package/dist/domains/bundle/load.d.ts.map +1 -0
  253. package/dist/domains/bundle/load.js +355 -0
  254. package/dist/domains/bundle/load.js.map +1 -0
  255. package/dist/domains/bundle/next-action.d.ts +37 -0
  256. package/dist/domains/bundle/next-action.d.ts.map +1 -0
  257. package/dist/domains/bundle/next-action.js +185 -0
  258. package/dist/domains/bundle/next-action.js.map +1 -0
  259. package/dist/domains/bundle/platform.d.ts +21 -0
  260. package/dist/domains/bundle/platform.d.ts.map +1 -0
  261. package/dist/domains/bundle/platform.js +170 -0
  262. package/dist/domains/bundle/platform.js.map +1 -0
  263. package/dist/domains/bundle/preferences.d.ts +11 -0
  264. package/dist/domains/bundle/preferences.d.ts.map +1 -0
  265. package/dist/domains/bundle/preferences.js +17 -0
  266. package/dist/domains/bundle/preferences.js.map +1 -0
  267. package/dist/domains/bundle/publish.d.ts +14 -0
  268. package/dist/domains/bundle/publish.d.ts.map +1 -0
  269. package/dist/domains/bundle/publish.js +159 -0
  270. package/dist/domains/bundle/publish.js.map +1 -0
  271. package/dist/domains/bundle/readiness-user-summary.d.ts +25 -0
  272. package/dist/domains/bundle/readiness-user-summary.d.ts.map +1 -0
  273. package/dist/domains/bundle/readiness-user-summary.js +186 -0
  274. package/dist/domains/bundle/readiness-user-summary.js.map +1 -0
  275. package/dist/domains/bundle/review-summary.d.ts +36 -0
  276. package/dist/domains/bundle/review-summary.d.ts.map +1 -0
  277. package/dist/domains/bundle/review-summary.js +348 -0
  278. package/dist/domains/bundle/review-summary.js.map +1 -0
  279. package/dist/domains/bundle/state.d.ts +7 -0
  280. package/dist/domains/bundle/state.d.ts.map +1 -0
  281. package/dist/domains/bundle/state.js +247 -0
  282. package/dist/domains/bundle/state.js.map +1 -0
  283. package/dist/domains/bundle/types.d.ts +347 -0
  284. package/dist/domains/bundle/types.d.ts.map +1 -0
  285. package/dist/domains/bundle/types.js.map +1 -0
  286. package/dist/domains/bundle/user-facing.d.ts +48 -0
  287. package/dist/domains/bundle/user-facing.d.ts.map +1 -0
  288. package/dist/domains/bundle/user-facing.js +73 -0
  289. package/dist/domains/bundle/user-facing.js.map +1 -0
  290. package/dist/domains/bundle/validate.d.ts +5 -0
  291. package/dist/domains/bundle/validate.d.ts.map +1 -0
  292. package/dist/domains/bundle/validate.js +292 -0
  293. package/dist/domains/bundle/validate.js.map +1 -0
  294. package/dist/domains/comet-classic/classic-archive-entry.d.ts +2 -0
  295. package/dist/domains/comet-classic/classic-archive-entry.d.ts.map +1 -0
  296. package/dist/domains/comet-classic/classic-archive-entry.js +4 -0
  297. package/dist/domains/comet-classic/classic-archive-entry.js.map +1 -0
  298. package/dist/domains/comet-classic/classic-archive-pointer.d.ts +8 -0
  299. package/dist/domains/comet-classic/classic-archive-pointer.d.ts.map +1 -0
  300. package/dist/domains/comet-classic/classic-archive-pointer.js +66 -0
  301. package/dist/domains/comet-classic/classic-archive-pointer.js.map +1 -0
  302. package/dist/domains/comet-classic/classic-archive.d.ts +4 -0
  303. package/dist/domains/comet-classic/classic-archive.d.ts.map +1 -0
  304. package/dist/domains/comet-classic/classic-archive.js +483 -0
  305. package/dist/domains/comet-classic/classic-archive.js.map +1 -0
  306. package/dist/domains/comet-classic/classic-branch-binding.d.ts +51 -0
  307. package/dist/domains/comet-classic/classic-branch-binding.d.ts.map +1 -0
  308. package/dist/domains/comet-classic/classic-branch-binding.js +107 -0
  309. package/dist/domains/comet-classic/classic-branch-binding.js.map +1 -0
  310. package/dist/domains/comet-classic/classic-cli.d.ts +17 -0
  311. package/dist/domains/comet-classic/classic-cli.d.ts.map +1 -0
  312. package/dist/domains/comet-classic/classic-cli.js +103 -0
  313. package/dist/domains/comet-classic/classic-cli.js.map +1 -0
  314. package/dist/domains/comet-classic/classic-command-checks.d.ts +20 -0
  315. package/dist/domains/comet-classic/classic-command-checks.d.ts.map +1 -0
  316. package/dist/domains/comet-classic/classic-command-checks.js +94 -0
  317. package/dist/domains/comet-classic/classic-command-checks.js.map +1 -0
  318. package/dist/domains/comet-classic/classic-command-context.d.ts +12 -0
  319. package/dist/domains/comet-classic/classic-command-context.d.ts.map +1 -0
  320. package/dist/domains/comet-classic/classic-command-context.js +42 -0
  321. package/dist/domains/comet-classic/classic-command-context.js.map +1 -0
  322. package/dist/domains/comet-classic/classic-current-change.d.ts +17 -0
  323. package/dist/domains/comet-classic/classic-current-change.d.ts.map +1 -0
  324. package/dist/domains/comet-classic/classic-current-change.js +112 -0
  325. package/dist/domains/comet-classic/classic-current-change.js.map +1 -0
  326. package/dist/domains/comet-classic/classic-diagnostics.d.ts +17 -0
  327. package/dist/domains/comet-classic/classic-diagnostics.d.ts.map +1 -0
  328. package/dist/domains/comet-classic/classic-diagnostics.js +110 -0
  329. package/dist/domains/comet-classic/classic-diagnostics.js.map +1 -0
  330. package/dist/domains/comet-classic/classic-evidence.d.ts +11 -0
  331. package/dist/domains/comet-classic/classic-evidence.d.ts.map +1 -0
  332. package/dist/domains/comet-classic/classic-evidence.js +178 -0
  333. package/dist/domains/comet-classic/classic-evidence.js.map +1 -0
  334. package/dist/domains/comet-classic/classic-guard-entry.d.ts +2 -0
  335. package/dist/domains/comet-classic/classic-guard-entry.d.ts.map +1 -0
  336. package/dist/domains/comet-classic/classic-guard-entry.js +4 -0
  337. package/dist/domains/comet-classic/classic-guard-entry.js.map +1 -0
  338. package/dist/domains/comet-classic/classic-guard.d.ts +3 -0
  339. package/dist/domains/comet-classic/classic-guard.d.ts.map +1 -0
  340. package/dist/domains/comet-classic/classic-guard.js +854 -0
  341. package/dist/domains/comet-classic/classic-guard.js.map +1 -0
  342. package/dist/domains/comet-classic/classic-handoff-entry.d.ts +2 -0
  343. package/dist/domains/comet-classic/classic-handoff-entry.d.ts.map +1 -0
  344. package/dist/domains/comet-classic/classic-handoff-entry.js +4 -0
  345. package/dist/domains/comet-classic/classic-handoff-entry.js.map +1 -0
  346. package/dist/domains/comet-classic/classic-handoff.d.ts +3 -0
  347. package/dist/domains/comet-classic/classic-handoff.d.ts.map +1 -0
  348. package/dist/domains/comet-classic/classic-handoff.js +526 -0
  349. package/dist/domains/comet-classic/classic-handoff.js.map +1 -0
  350. package/dist/domains/comet-classic/classic-hook-guard-entry.d.ts +2 -0
  351. package/dist/domains/comet-classic/classic-hook-guard-entry.d.ts.map +1 -0
  352. package/dist/domains/comet-classic/classic-hook-guard-entry.js +4 -0
  353. package/dist/domains/comet-classic/classic-hook-guard-entry.js.map +1 -0
  354. package/dist/domains/comet-classic/classic-hook-guard.d.ts +12 -0
  355. package/dist/domains/comet-classic/classic-hook-guard.d.ts.map +1 -0
  356. package/dist/domains/comet-classic/classic-hook-guard.js +654 -0
  357. package/dist/domains/comet-classic/classic-hook-guard.js.map +1 -0
  358. package/dist/domains/comet-classic/classic-intent-command.d.ts +3 -0
  359. package/dist/domains/comet-classic/classic-intent-command.d.ts.map +1 -0
  360. package/dist/domains/comet-classic/classic-intent-command.js +40 -0
  361. package/dist/domains/comet-classic/classic-intent-command.js.map +1 -0
  362. package/dist/domains/comet-classic/classic-intent-entry.d.ts +2 -0
  363. package/dist/domains/comet-classic/classic-intent-entry.d.ts.map +1 -0
  364. package/dist/domains/comet-classic/classic-intent-entry.js +4 -0
  365. package/dist/domains/comet-classic/classic-intent-entry.js.map +1 -0
  366. package/dist/domains/comet-classic/classic-intent.d.ts +79 -0
  367. package/dist/domains/comet-classic/classic-intent.d.ts.map +1 -0
  368. package/dist/domains/comet-classic/classic-intent.js +307 -0
  369. package/dist/domains/comet-classic/classic-intent.js.map +1 -0
  370. package/dist/domains/comet-classic/classic-layout-initialization.d.ts +86 -0
  371. package/dist/domains/comet-classic/classic-layout-initialization.d.ts.map +1 -0
  372. package/dist/domains/comet-classic/classic-layout-initialization.js +813 -0
  373. package/dist/domains/comet-classic/classic-layout-initialization.js.map +1 -0
  374. package/dist/domains/comet-classic/classic-layout.d.ts +47 -0
  375. package/dist/domains/comet-classic/classic-layout.d.ts.map +1 -0
  376. package/dist/domains/comet-classic/classic-layout.js +227 -0
  377. package/dist/domains/comet-classic/classic-layout.js.map +1 -0
  378. package/dist/domains/comet-classic/classic-migrate.d.ts +22 -0
  379. package/dist/domains/comet-classic/classic-migrate.d.ts.map +1 -0
  380. package/dist/domains/comet-classic/classic-migrate.js +180 -0
  381. package/dist/domains/comet-classic/classic-migrate.js.map +1 -0
  382. package/dist/domains/comet-classic/classic-openspec-command.d.ts +4 -0
  383. package/dist/domains/comet-classic/classic-openspec-command.d.ts.map +1 -0
  384. package/dist/domains/comet-classic/classic-openspec-command.js +45 -0
  385. package/dist/domains/comet-classic/classic-openspec-command.js.map +1 -0
  386. package/dist/domains/comet-classic/classic-openspec-root.d.ts +13 -0
  387. package/dist/domains/comet-classic/classic-openspec-root.d.ts.map +1 -0
  388. package/dist/domains/comet-classic/classic-openspec-root.js +47 -0
  389. package/dist/domains/comet-classic/classic-openspec-root.js.map +1 -0
  390. package/dist/domains/comet-classic/classic-paths.d.ts +18 -0
  391. package/dist/domains/comet-classic/classic-paths.d.ts.map +1 -0
  392. package/dist/domains/comet-classic/classic-paths.js +113 -0
  393. package/dist/domains/comet-classic/classic-paths.js.map +1 -0
  394. package/dist/domains/comet-classic/classic-project-config.d.ts +16 -0
  395. package/dist/domains/comet-classic/classic-project-config.d.ts.map +1 -0
  396. package/dist/domains/comet-classic/classic-project-config.js +36 -0
  397. package/dist/domains/comet-classic/classic-project-config.js.map +1 -0
  398. package/dist/domains/comet-classic/classic-protected-path.d.ts +39 -0
  399. package/dist/domains/comet-classic/classic-protected-path.d.ts.map +1 -0
  400. package/dist/domains/comet-classic/classic-protected-path.js +69 -0
  401. package/dist/domains/comet-classic/classic-protected-path.js.map +1 -0
  402. package/dist/domains/comet-classic/classic-resolver.d.ts +10 -0
  403. package/dist/domains/comet-classic/classic-resolver.d.ts.map +1 -0
  404. package/dist/domains/comet-classic/classic-resolver.js +89 -0
  405. package/dist/domains/comet-classic/classic-resolver.js.map +1 -0
  406. package/dist/domains/comet-classic/classic-resume-probe-command.d.ts +3 -0
  407. package/dist/domains/comet-classic/classic-resume-probe-command.d.ts.map +1 -0
  408. package/dist/domains/comet-classic/classic-resume-probe-command.js +59 -0
  409. package/dist/domains/comet-classic/classic-resume-probe-command.js.map +1 -0
  410. package/dist/domains/comet-classic/classic-resume-probe-entry.d.ts +2 -0
  411. package/dist/domains/comet-classic/classic-resume-probe-entry.d.ts.map +1 -0
  412. package/dist/domains/comet-classic/classic-resume-probe-entry.js +4 -0
  413. package/dist/domains/comet-classic/classic-resume-probe-entry.js.map +1 -0
  414. package/dist/domains/comet-classic/classic-resume-probe.d.ts +29 -0
  415. package/dist/domains/comet-classic/classic-resume-probe.d.ts.map +1 -0
  416. package/dist/domains/comet-classic/classic-resume-probe.js +406 -0
  417. package/dist/domains/comet-classic/classic-resume-probe.js.map +1 -0
  418. package/dist/domains/comet-classic/classic-root-command.d.ts +5 -0
  419. package/dist/domains/comet-classic/classic-root-command.d.ts.map +1 -0
  420. package/dist/domains/comet-classic/classic-root-command.js +84 -0
  421. package/dist/domains/comet-classic/classic-root-command.js.map +1 -0
  422. package/dist/domains/comet-classic/classic-root-move.d.ts +119 -0
  423. package/dist/domains/comet-classic/classic-root-move.d.ts.map +1 -0
  424. package/dist/domains/comet-classic/classic-root-move.js +1737 -0
  425. package/dist/domains/comet-classic/classic-root-move.js.map +1 -0
  426. package/dist/domains/comet-classic/classic-runtime-evals.d.ts +9 -0
  427. package/dist/domains/comet-classic/classic-runtime-evals.d.ts.map +1 -0
  428. package/dist/domains/comet-classic/classic-runtime-evals.js +45 -0
  429. package/dist/domains/comet-classic/classic-runtime-evals.js.map +1 -0
  430. package/dist/domains/comet-classic/classic-runtime-run.d.ts +8 -0
  431. package/dist/domains/comet-classic/classic-runtime-run.d.ts.map +1 -0
  432. package/dist/domains/comet-classic/classic-runtime-run.js +378 -0
  433. package/dist/domains/comet-classic/classic-runtime-run.js.map +1 -0
  434. package/dist/domains/comet-classic/classic-script-entry.d.ts +3 -0
  435. package/dist/domains/comet-classic/classic-script-entry.d.ts.map +1 -0
  436. package/dist/domains/comet-classic/classic-script-entry.js +31 -0
  437. package/dist/domains/comet-classic/classic-script-entry.js.map +1 -0
  438. package/dist/domains/comet-classic/classic-state-command.d.ts +3 -0
  439. package/dist/domains/comet-classic/classic-state-command.d.ts.map +1 -0
  440. package/dist/domains/comet-classic/classic-state-command.js +1239 -0
  441. package/dist/domains/comet-classic/classic-state-command.js.map +1 -0
  442. package/dist/domains/comet-classic/classic-state-entry.d.ts +2 -0
  443. package/dist/domains/comet-classic/classic-state-entry.d.ts.map +1 -0
  444. package/dist/domains/comet-classic/classic-state-entry.js +4 -0
  445. package/dist/domains/comet-classic/classic-state-entry.js.map +1 -0
  446. package/dist/domains/comet-classic/classic-state-events.d.ts +18 -0
  447. package/dist/domains/comet-classic/classic-state-events.d.ts.map +1 -0
  448. package/dist/domains/comet-classic/classic-state-events.js +14 -0
  449. package/dist/domains/comet-classic/classic-state-events.js.map +1 -0
  450. package/dist/domains/comet-classic/classic-state.d.ts +71 -0
  451. package/dist/domains/comet-classic/classic-state.d.ts.map +1 -0
  452. package/dist/domains/comet-classic/classic-state.js +251 -0
  453. package/dist/domains/comet-classic/classic-state.js.map +1 -0
  454. package/dist/domains/comet-classic/classic-store.d.ts +12 -0
  455. package/dist/domains/comet-classic/classic-store.d.ts.map +1 -0
  456. package/dist/domains/comet-classic/classic-store.js +140 -0
  457. package/dist/domains/comet-classic/classic-store.js.map +1 -0
  458. package/dist/domains/comet-classic/classic-transitions.d.ts +24 -0
  459. package/dist/domains/comet-classic/classic-transitions.d.ts.map +1 -0
  460. package/dist/domains/comet-classic/classic-transitions.js +158 -0
  461. package/dist/domains/comet-classic/classic-transitions.js.map +1 -0
  462. package/dist/domains/comet-classic/classic-validate-command.d.ts +3 -0
  463. package/dist/domains/comet-classic/classic-validate-command.d.ts.map +1 -0
  464. package/dist/domains/comet-classic/classic-validate-command.js +174 -0
  465. package/dist/domains/comet-classic/classic-validate-command.js.map +1 -0
  466. package/dist/domains/comet-classic/classic-validate-entry.d.ts +2 -0
  467. package/dist/domains/comet-classic/classic-validate-entry.d.ts.map +1 -0
  468. package/dist/domains/comet-classic/classic-validate-entry.js +4 -0
  469. package/dist/domains/comet-classic/classic-validate-entry.js.map +1 -0
  470. package/dist/domains/comet-classic/index.d.ts +23 -0
  471. package/dist/domains/comet-classic/index.d.ts.map +1 -0
  472. package/dist/domains/comet-classic/index.js +23 -0
  473. package/dist/domains/comet-classic/index.js.map +1 -0
  474. package/dist/domains/comet-entry/current-selection-repair.d.ts +17 -0
  475. package/dist/domains/comet-entry/current-selection-repair.d.ts.map +1 -0
  476. package/dist/domains/comet-entry/current-selection-repair.js +19 -0
  477. package/dist/domains/comet-entry/current-selection-repair.js.map +1 -0
  478. package/dist/domains/comet-entry/current-selection.d.ts +28 -0
  479. package/dist/domains/comet-entry/current-selection.d.ts.map +1 -0
  480. package/dist/domains/comet-entry/current-selection.js +114 -0
  481. package/dist/domains/comet-entry/current-selection.js.map +1 -0
  482. package/dist/domains/comet-entry/entry-runtime-entry.d.ts +2 -0
  483. package/dist/domains/comet-entry/entry-runtime-entry.d.ts.map +1 -0
  484. package/dist/domains/comet-entry/entry-runtime-entry.js +3 -0
  485. package/dist/domains/comet-entry/entry-runtime-entry.js.map +1 -0
  486. package/dist/domains/comet-entry/entry-runtime.d.ts +7 -0
  487. package/dist/domains/comet-entry/entry-runtime.d.ts.map +1 -0
  488. package/dist/domains/comet-entry/entry-runtime.js +55 -0
  489. package/dist/domains/comet-entry/entry-runtime.js.map +1 -0
  490. package/dist/domains/comet-entry/hook-adapter.d.ts +6 -0
  491. package/dist/domains/comet-entry/hook-adapter.d.ts.map +1 -0
  492. package/dist/domains/comet-entry/hook-adapter.js +202 -0
  493. package/dist/domains/comet-entry/hook-adapter.js.map +1 -0
  494. package/dist/domains/comet-entry/hook-router-entry.d.ts +8 -0
  495. package/dist/domains/comet-entry/hook-router-entry.d.ts.map +1 -0
  496. package/dist/domains/comet-entry/hook-router-entry.js +88 -0
  497. package/dist/domains/comet-entry/hook-router-entry.js.map +1 -0
  498. package/dist/domains/comet-entry/hook-router.d.ts +32 -0
  499. package/dist/domains/comet-entry/hook-router.d.ts.map +1 -0
  500. package/dist/domains/comet-entry/hook-router.js +133 -0
  501. package/dist/domains/comet-entry/hook-router.js.map +1 -0
  502. package/dist/domains/comet-entry/hook-types.d.ts +20 -0
  503. package/dist/domains/comet-entry/hook-types.d.ts.map +1 -0
  504. package/dist/domains/comet-entry/hook-types.js +2 -0
  505. package/dist/domains/comet-entry/hook-types.js.map +1 -0
  506. package/dist/domains/comet-entry/init-workflow.d.ts +19 -0
  507. package/dist/domains/comet-entry/init-workflow.d.ts.map +1 -0
  508. package/dist/domains/comet-entry/init-workflow.js +118 -0
  509. package/dist/domains/comet-entry/init-workflow.js.map +1 -0
  510. package/dist/domains/comet-entry/project-status.d.ts +3 -0
  511. package/dist/domains/comet-entry/project-status.d.ts.map +1 -0
  512. package/dist/domains/comet-entry/project-status.js +291 -0
  513. package/dist/domains/comet-entry/project-status.js.map +1 -0
  514. package/dist/domains/comet-entry/resolve-entry.d.ts +3 -0
  515. package/dist/domains/comet-entry/resolve-entry.d.ts.map +1 -0
  516. package/dist/domains/comet-entry/resolve-entry.js +18 -0
  517. package/dist/domains/comet-entry/resolve-entry.js.map +1 -0
  518. package/dist/domains/comet-entry/resume-probe.d.ts +34 -0
  519. package/dist/domains/comet-entry/resume-probe.d.ts.map +1 -0
  520. package/dist/domains/comet-entry/resume-probe.js +462 -0
  521. package/dist/domains/comet-entry/resume-probe.js.map +1 -0
  522. package/dist/domains/comet-entry/types.d.ts +60 -0
  523. package/dist/domains/comet-entry/types.d.ts.map +1 -0
  524. package/dist/domains/comet-entry/types.js +2 -0
  525. package/dist/domains/comet-entry/types.js.map +1 -0
  526. package/dist/domains/comet-entry/workflow-resolution.d.ts +8 -0
  527. package/dist/domains/comet-entry/workflow-resolution.d.ts.map +1 -0
  528. package/dist/domains/comet-entry/workflow-resolution.js +16 -0
  529. package/dist/domains/comet-entry/workflow-resolution.js.map +1 -0
  530. package/dist/domains/comet-native/index.d.ts +35 -0
  531. package/dist/domains/comet-native/index.d.ts.map +1 -0
  532. package/dist/domains/comet-native/index.js +35 -0
  533. package/dist/domains/comet-native/index.js.map +1 -0
  534. package/dist/domains/comet-native/native-acceptance.d.ts +53 -0
  535. package/dist/domains/comet-native/native-acceptance.d.ts.map +1 -0
  536. package/dist/domains/comet-native/native-acceptance.js +658 -0
  537. package/dist/domains/comet-native/native-acceptance.js.map +1 -0
  538. package/dist/domains/comet-native/native-archive-content.d.ts +26 -0
  539. package/dist/domains/comet-native/native-archive-content.d.ts.map +1 -0
  540. package/dist/domains/comet-native/native-archive-content.js +159 -0
  541. package/dist/domains/comet-native/native-archive-content.js.map +1 -0
  542. package/dist/domains/comet-native/native-archive-inspection.d.ts +9 -0
  543. package/dist/domains/comet-native/native-archive-inspection.d.ts.map +1 -0
  544. package/dist/domains/comet-native/native-archive-inspection.js +97 -0
  545. package/dist/domains/comet-native/native-archive-inspection.js.map +1 -0
  546. package/dist/domains/comet-native/native-archive-preflight.d.ts +54 -0
  547. package/dist/domains/comet-native/native-archive-preflight.d.ts.map +1 -0
  548. package/dist/domains/comet-native/native-archive-preflight.js +222 -0
  549. package/dist/domains/comet-native/native-archive-preflight.js.map +1 -0
  550. package/dist/domains/comet-native/native-archive-transaction.d.ts +20 -0
  551. package/dist/domains/comet-native/native-archive-transaction.d.ts.map +1 -0
  552. package/dist/domains/comet-native/native-archive-transaction.js +1183 -0
  553. package/dist/domains/comet-native/native-archive-transaction.js.map +1 -0
  554. package/dist/domains/comet-native/native-archive.d.ts +36 -0
  555. package/dist/domains/comet-native/native-archive.d.ts.map +1 -0
  556. package/dist/domains/comet-native/native-archive.js +422 -0
  557. package/dist/domains/comet-native/native-archive.js.map +1 -0
  558. package/dist/domains/comet-native/native-artifacts.d.ts +10 -0
  559. package/dist/domains/comet-native/native-artifacts.d.ts.map +1 -0
  560. package/dist/domains/comet-native/native-artifacts.js +204 -0
  561. package/dist/domains/comet-native/native-artifacts.js.map +1 -0
  562. package/dist/domains/comet-native/native-atomic-file.d.ts +10 -0
  563. package/dist/domains/comet-native/native-atomic-file.d.ts.map +1 -0
  564. package/dist/domains/comet-native/native-atomic-file.js +179 -0
  565. package/dist/domains/comet-native/native-atomic-file.js.map +1 -0
  566. package/dist/domains/comet-native/native-bounded-file.d.ts +19 -0
  567. package/dist/domains/comet-native/native-bounded-file.d.ts.map +1 -0
  568. package/dist/domains/comet-native/native-bounded-file.js +184 -0
  569. package/dist/domains/comet-native/native-bounded-file.js.map +1 -0
  570. package/dist/domains/comet-native/native-build-evidence.d.ts +42 -0
  571. package/dist/domains/comet-native/native-build-evidence.d.ts.map +1 -0
  572. package/dist/domains/comet-native/native-build-evidence.js +257 -0
  573. package/dist/domains/comet-native/native-build-evidence.js.map +1 -0
  574. package/dist/domains/comet-native/native-canonical-hash.d.ts +10 -0
  575. package/dist/domains/comet-native/native-canonical-hash.d.ts.map +1 -0
  576. package/dist/domains/comet-native/native-canonical-hash.js +100 -0
  577. package/dist/domains/comet-native/native-canonical-hash.js.map +1 -0
  578. package/dist/domains/comet-native/native-change-recovery.d.ts +11 -0
  579. package/dist/domains/comet-native/native-change-recovery.d.ts.map +1 -0
  580. package/dist/domains/comet-native/native-change-recovery.js +15 -0
  581. package/dist/domains/comet-native/native-change-recovery.js.map +1 -0
  582. package/dist/domains/comet-native/native-change.d.ts +66 -0
  583. package/dist/domains/comet-native/native-change.d.ts.map +1 -0
  584. package/dist/domains/comet-native/native-change.js +834 -0
  585. package/dist/domains/comet-native/native-change.js.map +1 -0
  586. package/dist/domains/comet-native/native-check-receipt-model.d.ts +63 -0
  587. package/dist/domains/comet-native/native-check-receipt-model.d.ts.map +1 -0
  588. package/dist/domains/comet-native/native-check-receipt-model.js +352 -0
  589. package/dist/domains/comet-native/native-check-receipt-model.js.map +1 -0
  590. package/dist/domains/comet-native/native-check-receipt-storage.d.ts +10 -0
  591. package/dist/domains/comet-native/native-check-receipt-storage.d.ts.map +1 -0
  592. package/dist/domains/comet-native/native-check-receipt-storage.js +200 -0
  593. package/dist/domains/comet-native/native-check-receipt-storage.js.map +1 -0
  594. package/dist/domains/comet-native/native-check-receipt.d.ts +19 -0
  595. package/dist/domains/comet-native/native-check-receipt.d.ts.map +1 -0
  596. package/dist/domains/comet-native/native-check-receipt.js +453 -0
  597. package/dist/domains/comet-native/native-check-receipt.js.map +1 -0
  598. package/dist/domains/comet-native/native-check.d.ts +24 -0
  599. package/dist/domains/comet-native/native-check.d.ts.map +1 -0
  600. package/dist/domains/comet-native/native-check.js +38 -0
  601. package/dist/domains/comet-native/native-check.js.map +1 -0
  602. package/dist/domains/comet-native/native-checkpoint-journal.d.ts +13 -0
  603. package/dist/domains/comet-native/native-checkpoint-journal.d.ts.map +1 -0
  604. package/dist/domains/comet-native/native-checkpoint-journal.js +53 -0
  605. package/dist/domains/comet-native/native-checkpoint-journal.js.map +1 -0
  606. package/dist/domains/comet-native/native-checkpoint-storage.d.ts +43 -0
  607. package/dist/domains/comet-native/native-checkpoint-storage.d.ts.map +1 -0
  608. package/dist/domains/comet-native/native-checkpoint-storage.js +487 -0
  609. package/dist/domains/comet-native/native-checkpoint-storage.js.map +1 -0
  610. package/dist/domains/comet-native/native-cli-entry.d.ts +2 -0
  611. package/dist/domains/comet-native/native-cli-entry.d.ts.map +1 -0
  612. package/dist/domains/comet-native/native-cli-entry.js +18 -0
  613. package/dist/domains/comet-native/native-cli-entry.js.map +1 -0
  614. package/dist/domains/comet-native/native-cli.d.ts +7 -0
  615. package/dist/domains/comet-native/native-cli.d.ts.map +1 -0
  616. package/dist/domains/comet-native/native-cli.js +1300 -0
  617. package/dist/domains/comet-native/native-cli.js.map +1 -0
  618. package/dist/domains/comet-native/native-config.d.ts +23 -0
  619. package/dist/domains/comet-native/native-config.d.ts.map +1 -0
  620. package/dist/domains/comet-native/native-config.js +60 -0
  621. package/dist/domains/comet-native/native-config.js.map +1 -0
  622. package/dist/domains/comet-native/native-conflict-inspection.d.ts +17 -0
  623. package/dist/domains/comet-native/native-conflict-inspection.d.ts.map +1 -0
  624. package/dist/domains/comet-native/native-conflict-inspection.js +90 -0
  625. package/dist/domains/comet-native/native-conflict-inspection.js.map +1 -0
  626. package/dist/domains/comet-native/native-conflict-radar.d.ts +75 -0
  627. package/dist/domains/comet-native/native-conflict-radar.d.ts.map +1 -0
  628. package/dist/domains/comet-native/native-conflict-radar.js +326 -0
  629. package/dist/domains/comet-native/native-conflict-radar.js.map +1 -0
  630. package/dist/domains/comet-native/native-continuation.d.ts +12 -0
  631. package/dist/domains/comet-native/native-continuation.d.ts.map +1 -0
  632. package/dist/domains/comet-native/native-continuation.js +201 -0
  633. package/dist/domains/comet-native/native-continuation.js.map +1 -0
  634. package/dist/domains/comet-native/native-contract-files.d.ts +24 -0
  635. package/dist/domains/comet-native/native-contract-files.d.ts.map +1 -0
  636. package/dist/domains/comet-native/native-contract-files.js +66 -0
  637. package/dist/domains/comet-native/native-contract-files.js.map +1 -0
  638. package/dist/domains/comet-native/native-contract.d.ts +41 -0
  639. package/dist/domains/comet-native/native-contract.d.ts.map +1 -0
  640. package/dist/domains/comet-native/native-contract.js +142 -0
  641. package/dist/domains/comet-native/native-contract.js.map +1 -0
  642. package/dist/domains/comet-native/native-controller-trust.d.ts +22 -0
  643. package/dist/domains/comet-native/native-controller-trust.d.ts.map +1 -0
  644. package/dist/domains/comet-native/native-controller-trust.js +153 -0
  645. package/dist/domains/comet-native/native-controller-trust.js.map +1 -0
  646. package/dist/domains/comet-native/native-creation-authorization.d.ts +30 -0
  647. package/dist/domains/comet-native/native-creation-authorization.d.ts.map +1 -0
  648. package/dist/domains/comet-native/native-creation-authorization.js +110 -0
  649. package/dist/domains/comet-native/native-creation-authorization.js.map +1 -0
  650. package/dist/domains/comet-native/native-diagnostics.d.ts +25 -0
  651. package/dist/domains/comet-native/native-diagnostics.d.ts.map +1 -0
  652. package/dist/domains/comet-native/native-diagnostics.js +551 -0
  653. package/dist/domains/comet-native/native-diagnostics.js.map +1 -0
  654. package/dist/domains/comet-native/native-doctor.d.ts +12 -0
  655. package/dist/domains/comet-native/native-doctor.d.ts.map +1 -0
  656. package/dist/domains/comet-native/native-doctor.js +771 -0
  657. package/dist/domains/comet-native/native-doctor.js.map +1 -0
  658. package/dist/domains/comet-native/native-evidence-retention.d.ts +37 -0
  659. package/dist/domains/comet-native/native-evidence-retention.d.ts.map +1 -0
  660. package/dist/domains/comet-native/native-evidence-retention.js +916 -0
  661. package/dist/domains/comet-native/native-evidence-retention.js.map +1 -0
  662. package/dist/domains/comet-native/native-evidence-storage.d.ts +54 -0
  663. package/dist/domains/comet-native/native-evidence-storage.d.ts.map +1 -0
  664. package/dist/domains/comet-native/native-evidence-storage.js +401 -0
  665. package/dist/domains/comet-native/native-evidence-storage.js.map +1 -0
  666. package/dist/domains/comet-native/native-file-identity.d.ts +3 -0
  667. package/dist/domains/comet-native/native-file-identity.d.ts.map +1 -0
  668. package/dist/domains/comet-native/native-file-identity.js +2 -0
  669. package/dist/domains/comet-native/native-file-identity.js.map +1 -0
  670. package/dist/domains/comet-native/native-findings.d.ts +8 -0
  671. package/dist/domains/comet-native/native-findings.d.ts.map +1 -0
  672. package/dist/domains/comet-native/native-findings.js +254 -0
  673. package/dist/domains/comet-native/native-findings.js.map +1 -0
  674. package/dist/domains/comet-native/native-guards.d.ts +8 -0
  675. package/dist/domains/comet-native/native-guards.d.ts.map +1 -0
  676. package/dist/domains/comet-native/native-guards.js +140 -0
  677. package/dist/domains/comet-native/native-guards.js.map +1 -0
  678. package/dist/domains/comet-native/native-hash.d.ts +3 -0
  679. package/dist/domains/comet-native/native-hash.d.ts.map +1 -0
  680. package/dist/domains/comet-native/native-hash.js +12 -0
  681. package/dist/domains/comet-native/native-hash.js.map +1 -0
  682. package/dist/domains/comet-native/native-hook-guard.d.ts +17 -0
  683. package/dist/domains/comet-native/native-hook-guard.d.ts.map +1 -0
  684. package/dist/domains/comet-native/native-hook-guard.js +154 -0
  685. package/dist/domains/comet-native/native-hook-guard.js.map +1 -0
  686. package/dist/domains/comet-native/native-independent-review.d.ts +28 -0
  687. package/dist/domains/comet-native/native-independent-review.d.ts.map +1 -0
  688. package/dist/domains/comet-native/native-independent-review.js +134 -0
  689. package/dist/domains/comet-native/native-independent-review.js.map +1 -0
  690. package/dist/domains/comet-native/native-lock.d.ts +47 -0
  691. package/dist/domains/comet-native/native-lock.d.ts.map +1 -0
  692. package/dist/domains/comet-native/native-lock.js +390 -0
  693. package/dist/domains/comet-native/native-lock.js.map +1 -0
  694. package/dist/domains/comet-native/native-mutation-lock.d.ts +5 -0
  695. package/dist/domains/comet-native/native-mutation-lock.d.ts.map +1 -0
  696. package/dist/domains/comet-native/native-mutation-lock.js +66 -0
  697. package/dist/domains/comet-native/native-mutation-lock.js.map +1 -0
  698. package/dist/domains/comet-native/native-paths.d.ts +10 -0
  699. package/dist/domains/comet-native/native-paths.d.ts.map +1 -0
  700. package/dist/domains/comet-native/native-paths.js +160 -0
  701. package/dist/domains/comet-native/native-paths.js.map +1 -0
  702. package/dist/domains/comet-native/native-progress-checkpoint.d.ts +13 -0
  703. package/dist/domains/comet-native/native-progress-checkpoint.d.ts.map +1 -0
  704. package/dist/domains/comet-native/native-progress-checkpoint.js +104 -0
  705. package/dist/domains/comet-native/native-progress-checkpoint.js.map +1 -0
  706. package/dist/domains/comet-native/native-protected-file.d.ts +113 -0
  707. package/dist/domains/comet-native/native-protected-file.d.ts.map +1 -0
  708. package/dist/domains/comet-native/native-protected-file.js +510 -0
  709. package/dist/domains/comet-native/native-protected-file.js.map +1 -0
  710. package/dist/domains/comet-native/native-redaction.d.ts +2 -0
  711. package/dist/domains/comet-native/native-redaction.d.ts.map +1 -0
  712. package/dist/domains/comet-native/native-redaction.js +18 -0
  713. package/dist/domains/comet-native/native-redaction.js.map +1 -0
  714. package/dist/domains/comet-native/native-repair-integration.d.ts +46 -0
  715. package/dist/domains/comet-native/native-repair-integration.d.ts.map +1 -0
  716. package/dist/domains/comet-native/native-repair-integration.js +235 -0
  717. package/dist/domains/comet-native/native-repair-integration.js.map +1 -0
  718. package/dist/domains/comet-native/native-repair-runtime.d.ts +78 -0
  719. package/dist/domains/comet-native/native-repair-runtime.d.ts.map +1 -0
  720. package/dist/domains/comet-native/native-repair-runtime.js +593 -0
  721. package/dist/domains/comet-native/native-repair-runtime.js.map +1 -0
  722. package/dist/domains/comet-native/native-repair-stagnation.d.ts +89 -0
  723. package/dist/domains/comet-native/native-repair-stagnation.d.ts.map +1 -0
  724. package/dist/domains/comet-native/native-repair-stagnation.js +308 -0
  725. package/dist/domains/comet-native/native-repair-stagnation.js.map +1 -0
  726. package/dist/domains/comet-native/native-resume-view.d.ts +14 -0
  727. package/dist/domains/comet-native/native-resume-view.d.ts.map +1 -0
  728. package/dist/domains/comet-native/native-resume-view.js +105 -0
  729. package/dist/domains/comet-native/native-resume-view.js.map +1 -0
  730. package/dist/domains/comet-native/native-review-contract.d.ts +6 -0
  731. package/dist/domains/comet-native/native-review-contract.d.ts.map +1 -0
  732. package/dist/domains/comet-native/native-review-contract.js +6 -0
  733. package/dist/domains/comet-native/native-review-contract.js.map +1 -0
  734. package/dist/domains/comet-native/native-review-identity.d.ts +50 -0
  735. package/dist/domains/comet-native/native-review-identity.d.ts.map +1 -0
  736. package/dist/domains/comet-native/native-review-identity.js +209 -0
  737. package/dist/domains/comet-native/native-review-identity.js.map +1 -0
  738. package/dist/domains/comet-native/native-review-signer.d.ts +24 -0
  739. package/dist/domains/comet-native/native-review-signer.d.ts.map +1 -0
  740. package/dist/domains/comet-native/native-review-signer.js +125 -0
  741. package/dist/domains/comet-native/native-review-signer.js.map +1 -0
  742. package/dist/domains/comet-native/native-review-trust.d.ts +35 -0
  743. package/dist/domains/comet-native/native-review-trust.d.ts.map +1 -0
  744. package/dist/domains/comet-native/native-review-trust.js +176 -0
  745. package/dist/domains/comet-native/native-review-trust.js.map +1 -0
  746. package/dist/domains/comet-native/native-revision.d.ts +20 -0
  747. package/dist/domains/comet-native/native-revision.d.ts.map +1 -0
  748. package/dist/domains/comet-native/native-revision.js +32 -0
  749. package/dist/domains/comet-native/native-revision.js.map +1 -0
  750. package/dist/domains/comet-native/native-root-move.d.ts +20 -0
  751. package/dist/domains/comet-native/native-root-move.d.ts.map +1 -0
  752. package/dist/domains/comet-native/native-root-move.js +818 -0
  753. package/dist/domains/comet-native/native-root-move.js.map +1 -0
  754. package/dist/domains/comet-native/native-run-consistency.d.ts +3 -0
  755. package/dist/domains/comet-native/native-run-consistency.d.ts.map +1 -0
  756. package/dist/domains/comet-native/native-run-consistency.js +136 -0
  757. package/dist/domains/comet-native/native-run-consistency.js.map +1 -0
  758. package/dist/domains/comet-native/native-run-store.d.ts +41 -0
  759. package/dist/domains/comet-native/native-run-store.d.ts.map +1 -0
  760. package/dist/domains/comet-native/native-run-store.js +452 -0
  761. package/dist/domains/comet-native/native-run-store.js.map +1 -0
  762. package/dist/domains/comet-native/native-runtime-package.d.ts +16 -0
  763. package/dist/domains/comet-native/native-runtime-package.d.ts.map +1 -0
  764. package/dist/domains/comet-native/native-runtime-package.js +72 -0
  765. package/dist/domains/comet-native/native-runtime-package.js.map +1 -0
  766. package/dist/domains/comet-native/native-schema-migration.d.ts +11 -0
  767. package/dist/domains/comet-native/native-schema-migration.d.ts.map +1 -0
  768. package/dist/domains/comet-native/native-schema-migration.js +900 -0
  769. package/dist/domains/comet-native/native-schema-migration.js.map +1 -0
  770. package/dist/domains/comet-native/native-selection.d.ts +12 -0
  771. package/dist/domains/comet-native/native-selection.d.ts.map +1 -0
  772. package/dist/domains/comet-native/native-selection.js +52 -0
  773. package/dist/domains/comet-native/native-selection.js.map +1 -0
  774. package/dist/domains/comet-native/native-sensitive-paths.d.ts +7 -0
  775. package/dist/domains/comet-native/native-sensitive-paths.d.ts.map +1 -0
  776. package/dist/domains/comet-native/native-sensitive-paths.js +69 -0
  777. package/dist/domains/comet-native/native-sensitive-paths.js.map +1 -0
  778. package/dist/domains/comet-native/native-snapshot.d.ts +78 -0
  779. package/dist/domains/comet-native/native-snapshot.d.ts.map +1 -0
  780. package/dist/domains/comet-native/native-snapshot.js +2609 -0
  781. package/dist/domains/comet-native/native-snapshot.js.map +1 -0
  782. package/dist/domains/comet-native/native-specs.d.ts +12 -0
  783. package/dist/domains/comet-native/native-specs.d.ts.map +1 -0
  784. package/dist/domains/comet-native/native-specs.js +270 -0
  785. package/dist/domains/comet-native/native-specs.js.map +1 -0
  786. package/dist/domains/comet-native/native-trajectory-limits.d.ts +7 -0
  787. package/dist/domains/comet-native/native-trajectory-limits.d.ts.map +1 -0
  788. package/dist/domains/comet-native/native-trajectory-limits.js +13 -0
  789. package/dist/domains/comet-native/native-trajectory-limits.js.map +1 -0
  790. package/dist/domains/comet-native/native-trajectory-recovery.d.ts +37 -0
  791. package/dist/domains/comet-native/native-trajectory-recovery.d.ts.map +1 -0
  792. package/dist/domains/comet-native/native-trajectory-recovery.js +133 -0
  793. package/dist/domains/comet-native/native-trajectory-recovery.js.map +1 -0
  794. package/dist/domains/comet-native/native-trajectory.d.ts +16 -0
  795. package/dist/domains/comet-native/native-trajectory.d.ts.map +1 -0
  796. package/dist/domains/comet-native/native-trajectory.js +27 -0
  797. package/dist/domains/comet-native/native-trajectory.js.map +1 -0
  798. package/dist/domains/comet-native/native-transaction.d.ts +45 -0
  799. package/dist/domains/comet-native/native-transaction.d.ts.map +1 -0
  800. package/dist/domains/comet-native/native-transaction.js +846 -0
  801. package/dist/domains/comet-native/native-transaction.js.map +1 -0
  802. package/dist/domains/comet-native/native-transition-evidence.d.ts +4 -0
  803. package/dist/domains/comet-native/native-transition-evidence.d.ts.map +1 -0
  804. package/dist/domains/comet-native/native-transition-evidence.js +27 -0
  805. package/dist/domains/comet-native/native-transition-evidence.js.map +1 -0
  806. package/dist/domains/comet-native/native-transition-journal.d.ts +30 -0
  807. package/dist/domains/comet-native/native-transition-journal.d.ts.map +1 -0
  808. package/dist/domains/comet-native/native-transition-journal.js +819 -0
  809. package/dist/domains/comet-native/native-transition-journal.js.map +1 -0
  810. package/dist/domains/comet-native/native-transitions.d.ts +15 -0
  811. package/dist/domains/comet-native/native-transitions.d.ts.map +1 -0
  812. package/dist/domains/comet-native/native-transitions.js +683 -0
  813. package/dist/domains/comet-native/native-transitions.js.map +1 -0
  814. package/dist/domains/comet-native/native-types.d.ts +556 -0
  815. package/dist/domains/comet-native/native-types.d.ts.map +1 -0
  816. package/dist/domains/comet-native/native-types.js +8 -0
  817. package/dist/domains/comet-native/native-types.js.map +1 -0
  818. package/dist/domains/comet-native/native-verification-evidence.d.ts +136 -0
  819. package/dist/domains/comet-native/native-verification-evidence.d.ts.map +1 -0
  820. package/dist/domains/comet-native/native-verification-evidence.js +824 -0
  821. package/dist/domains/comet-native/native-verification-evidence.js.map +1 -0
  822. package/dist/domains/comet-native/native-verification-receipt-runtime.d.ts +188 -0
  823. package/dist/domains/comet-native/native-verification-receipt-runtime.d.ts.map +1 -0
  824. package/dist/domains/comet-native/native-verification-receipt-runtime.js +1129 -0
  825. package/dist/domains/comet-native/native-verification-receipt-runtime.js.map +1 -0
  826. package/dist/domains/comet-native/native-verification-receipt.d.ts +165 -0
  827. package/dist/domains/comet-native/native-verification-receipt.d.ts.map +1 -0
  828. package/dist/domains/comet-native/native-verification-receipt.js +636 -0
  829. package/dist/domains/comet-native/native-verification-receipt.js.map +1 -0
  830. package/dist/domains/comet-native/native-verification-runtime.d.ts +61 -0
  831. package/dist/domains/comet-native/native-verification-runtime.d.ts.map +1 -0
  832. package/dist/domains/comet-native/native-verification-runtime.js +609 -0
  833. package/dist/domains/comet-native/native-verification-runtime.js.map +1 -0
  834. package/dist/domains/comet-native/native-verification-scope.d.ts +118 -0
  835. package/dist/domains/comet-native/native-verification-scope.d.ts.map +1 -0
  836. package/dist/domains/comet-native/native-verification-scope.js +1045 -0
  837. package/dist/domains/comet-native/native-verification-scope.js.map +1 -0
  838. package/dist/domains/comet-native/native-workspace.d.ts +46 -0
  839. package/dist/domains/comet-native/native-workspace.d.ts.map +1 -0
  840. package/dist/domains/comet-native/native-workspace.js +276 -0
  841. package/dist/domains/comet-native/native-workspace.js.map +1 -0
  842. package/dist/domains/dashboard/collector.d.ts +12 -0
  843. package/dist/domains/dashboard/collector.d.ts.map +1 -0
  844. package/dist/domains/dashboard/collector.js +582 -0
  845. package/dist/domains/dashboard/collector.js.map +1 -0
  846. package/dist/domains/dashboard/git.d.ts +8 -0
  847. package/dist/domains/dashboard/git.d.ts.map +1 -0
  848. package/dist/domains/dashboard/git.js +69 -0
  849. package/dist/domains/dashboard/git.js.map +1 -0
  850. package/dist/domains/dashboard/native-adapter.d.ts +157 -0
  851. package/dist/domains/dashboard/native-adapter.d.ts.map +1 -0
  852. package/dist/domains/dashboard/native-adapter.js +302 -0
  853. package/dist/domains/dashboard/native-adapter.js.map +1 -0
  854. package/dist/domains/dashboard/native-collector.d.ts +6 -0
  855. package/dist/domains/dashboard/native-collector.d.ts.map +1 -0
  856. package/dist/domains/dashboard/native-collector.js +289 -0
  857. package/dist/domains/dashboard/native-collector.js.map +1 -0
  858. package/dist/domains/dashboard/next-action.d.ts +17 -0
  859. package/dist/domains/dashboard/next-action.d.ts.map +1 -0
  860. package/dist/domains/dashboard/next-action.js +83 -0
  861. package/dist/domains/dashboard/next-action.js.map +1 -0
  862. package/dist/domains/dashboard/open-browser.d.ts +9 -0
  863. package/dist/domains/dashboard/open-browser.d.ts.map +1 -0
  864. package/dist/domains/dashboard/open-browser.js +40 -0
  865. package/dist/domains/dashboard/open-browser.js.map +1 -0
  866. package/dist/domains/dashboard/risk.d.ts +24 -0
  867. package/dist/domains/dashboard/risk.d.ts.map +1 -0
  868. package/dist/domains/dashboard/risk.js +97 -0
  869. package/dist/domains/dashboard/risk.js.map +1 -0
  870. package/dist/domains/dashboard/server.d.ts +21 -0
  871. package/dist/domains/dashboard/server.d.ts.map +1 -0
  872. package/dist/domains/dashboard/server.js +149 -0
  873. package/dist/domains/dashboard/server.js.map +1 -0
  874. package/dist/domains/dashboard/task-parser.d.ts +13 -0
  875. package/dist/domains/dashboard/task-parser.d.ts.map +1 -0
  876. package/dist/domains/dashboard/task-parser.js +82 -0
  877. package/dist/domains/dashboard/task-parser.js.map +1 -0
  878. package/dist/domains/dashboard/types.d.ts +132 -0
  879. package/dist/domains/dashboard/types.d.ts.map +1 -0
  880. package/dist/domains/dashboard/types.js +10 -0
  881. package/dist/domains/dashboard/types.js.map +1 -0
  882. package/dist/domains/dashboard/verify-parser.d.ts +18 -0
  883. package/dist/domains/dashboard/verify-parser.d.ts.map +1 -0
  884. package/dist/domains/dashboard/verify-parser.js +100 -0
  885. package/dist/domains/dashboard/verify-parser.js.map +1 -0
  886. package/dist/domains/dashboard/web/assets/_commonjsHelpers-CqkleIqs.js +1 -0
  887. package/dist/domains/dashboard/web/assets/arc-BXWNV2Qv.js +1 -0
  888. package/dist/domains/dashboard/web/assets/architectureDiagram-3BPJPVTR-CjVHPivo.js +36 -0
  889. package/dist/domains/dashboard/web/assets/blockDiagram-GPEHLZMM-P2PGImSM.js +132 -0
  890. package/dist/domains/dashboard/web/assets/c4Diagram-AAUBKEIU-fTj6Xhs1.js +10 -0
  891. package/dist/domains/dashboard/web/assets/channel--JtnhJr8.js +1 -0
  892. package/dist/domains/dashboard/web/assets/chunk-2J33WTMH-BjFDZ5yo.js +1 -0
  893. package/dist/domains/dashboard/web/assets/chunk-4BX2VUAB-BAUkbZdT.js +1 -0
  894. package/dist/domains/dashboard/web/assets/chunk-55IACEB6-DBmuiYme.js +1 -0
  895. package/dist/domains/dashboard/web/assets/chunk-727SXJPM-Do9ufCgY.js +206 -0
  896. package/dist/domains/dashboard/web/assets/chunk-AQP2D5EJ-qRQWlB5d.js +231 -0
  897. package/dist/domains/dashboard/web/assets/chunk-FMBD7UC4-BzDzeJ4_.js +15 -0
  898. package/dist/domains/dashboard/web/assets/chunk-ND2GUHAM-OQcAmIvL.js +1 -0
  899. package/dist/domains/dashboard/web/assets/chunk-QZHKN3VN-BiRfH4d2.js +1 -0
  900. package/dist/domains/dashboard/web/assets/classDiagram-4FO5ZUOK-BRGmx8Iz.js +1 -0
  901. package/dist/domains/dashboard/web/assets/classDiagram-v2-Q7XG4LA2-BRGmx8Iz.js +1 -0
  902. package/dist/domains/dashboard/web/assets/cose-bilkent-S5V4N54A-CZk37fGn.js +1 -0
  903. package/dist/domains/dashboard/web/assets/cynefin-VYW2F7L2-B3F-qRTJ.js +166 -0
  904. package/dist/domains/dashboard/web/assets/cytoscape.esm-D3_iZ_3b.js +321 -0
  905. package/dist/domains/dashboard/web/assets/dagre-BM42HDAG-D5BQ0eqN.js +4 -0
  906. package/dist/domains/dashboard/web/assets/defaultLocale-DX6XiGOO.js +1 -0
  907. package/dist/domains/dashboard/web/assets/demo-BuVau32v.js +25 -0
  908. package/dist/domains/dashboard/web/assets/diagram-2AECGRRQ-33mXstha.js +43 -0
  909. package/dist/domains/dashboard/web/assets/diagram-5GNKFQAL-BWHCMFvD.js +10 -0
  910. package/dist/domains/dashboard/web/assets/diagram-KO2AKTUF-DrPGimEt.js +3 -0
  911. package/dist/domains/dashboard/web/assets/diagram-LMA3HP47-BBlsg7jG.js +24 -0
  912. package/dist/domains/dashboard/web/assets/diagram-OG6HWLK6-CsaFSpHi.js +24 -0
  913. package/dist/domains/dashboard/web/assets/erDiagram-TEJ5UH35-CoB0mzhk.js +85 -0
  914. package/dist/domains/dashboard/web/assets/flowDiagram-I6XJVG4X-lT53XfSE.js +162 -0
  915. package/dist/domains/dashboard/web/assets/ganttDiagram-6RSMTGT7-D1SQ56fl.js +292 -0
  916. package/dist/domains/dashboard/web/assets/gitGraphDiagram-PVQCEYII-D4oDMS5x.js +106 -0
  917. package/dist/domains/dashboard/web/assets/graph--OzhPTMs.js +1 -0
  918. package/dist/domains/dashboard/web/assets/index-D-AGxvI4.css +1 -0
  919. package/dist/domains/dashboard/web/assets/index-DlSYK56b.js +139 -0
  920. package/dist/domains/dashboard/web/assets/index-Msce_H_q.js +24 -0
  921. package/dist/domains/dashboard/web/assets/index-QO0z6F4w.js +10 -0
  922. package/dist/domains/dashboard/web/assets/infoDiagram-5YYISTIA-BeICn98s.js +2 -0
  923. package/dist/domains/dashboard/web/assets/init-Gi6I4Gst.js +1 -0
  924. package/dist/domains/dashboard/web/assets/ishikawaDiagram-YF4QCWOH-Dkspu33d.js +70 -0
  925. package/dist/domains/dashboard/web/assets/journeyDiagram-JHISSGLW-C-EM1sZl.js +139 -0
  926. package/dist/domains/dashboard/web/assets/kanban-definition-UN3LZRKU-BTbB0IO2.js +89 -0
  927. package/dist/domains/dashboard/web/assets/katex-HP8lGamR.js +257 -0
  928. package/dist/domains/dashboard/web/assets/layout-SsrduOYp.js +1 -0
  929. package/dist/domains/dashboard/web/assets/linear-Cp0UrqDr.js +1 -0
  930. package/dist/domains/dashboard/web/assets/marked.esm-DECB3bxB.js +64 -0
  931. package/dist/domains/dashboard/web/assets/mermaid.core-CucmqsLW.js +301 -0
  932. package/dist/domains/dashboard/web/assets/mindmap-definition-RKZ34NQL-CjEshF1X.js +96 -0
  933. package/dist/domains/dashboard/web/assets/ordinal-Cboi1Yqb.js +1 -0
  934. package/dist/domains/dashboard/web/assets/pieDiagram-4H26LBE5-DrwFnX1b.js +30 -0
  935. package/dist/domains/dashboard/web/assets/purify.es-VaSPOPhr.js +3 -0
  936. package/dist/domains/dashboard/web/assets/quadrantDiagram-W4KKPZXB-CjG6pBR2.js +7 -0
  937. package/dist/domains/dashboard/web/assets/requirementDiagram-4Y6WPE33-BpUQVqCV.js +84 -0
  938. package/dist/domains/dashboard/web/assets/sankeyDiagram-5OEKKPKP-BeGkEvzR.js +40 -0
  939. package/dist/domains/dashboard/web/assets/sequenceDiagram-3UESZ5HK-sSTU3MCO.js +162 -0
  940. package/dist/domains/dashboard/web/assets/stateDiagram-AJRCARHV-CcFBc6qh.js +1 -0
  941. package/dist/domains/dashboard/web/assets/stateDiagram-v2-BHNVJYJU-D5zZYi4x.js +1 -0
  942. package/dist/domains/dashboard/web/assets/timeline-definition-PNZ67QCA-DCN7NjEs.js +120 -0
  943. package/dist/domains/dashboard/web/assets/vennDiagram-CIIHVFJN-DZAN1_rr.js +34 -0
  944. package/dist/domains/dashboard/web/assets/wardleyDiagram-YWT4CUSO-FfkJfr4C.js +78 -0
  945. package/dist/domains/dashboard/web/assets/xychartDiagram-2RQKCTM6-CD8B-EmR.js +7 -0
  946. package/dist/domains/dashboard/web/favicon.png +0 -0
  947. package/dist/domains/dashboard/web/index.html +16 -0
  948. package/dist/domains/dashboard/yaml.d.ts +13 -0
  949. package/dist/domains/dashboard/yaml.d.ts.map +1 -0
  950. package/dist/domains/dashboard/yaml.js +61 -0
  951. package/dist/domains/dashboard/yaml.js.map +1 -0
  952. package/dist/domains/engine/evals.d.ts +4 -0
  953. package/dist/domains/engine/evals.d.ts.map +1 -0
  954. package/dist/domains/engine/evals.js +25 -0
  955. package/dist/domains/engine/evals.js.map +1 -0
  956. package/dist/domains/engine/guardrails.d.ts +10 -0
  957. package/dist/domains/engine/guardrails.d.ts.map +1 -0
  958. package/dist/domains/engine/guardrails.js +25 -0
  959. package/dist/domains/engine/guardrails.js.map +1 -0
  960. package/dist/domains/engine/loop.d.ts +15 -0
  961. package/dist/domains/engine/loop.d.ts.map +1 -0
  962. package/dist/domains/engine/loop.js +126 -0
  963. package/dist/domains/engine/loop.js.map +1 -0
  964. package/dist/domains/engine/manual-run.d.ts +30 -0
  965. package/dist/domains/engine/manual-run.d.ts.map +1 -0
  966. package/dist/domains/engine/manual-run.js +184 -0
  967. package/dist/domains/engine/manual-run.js.map +1 -0
  968. package/dist/domains/engine/protected-run-file.d.ts +15 -0
  969. package/dist/domains/engine/protected-run-file.d.ts.map +1 -0
  970. package/dist/domains/engine/protected-run-file.js +76 -0
  971. package/dist/domains/engine/protected-run-file.js.map +1 -0
  972. package/dist/domains/engine/resolver.d.ts +20 -0
  973. package/dist/domains/engine/resolver.d.ts.map +1 -0
  974. package/dist/domains/engine/resolver.js +36 -0
  975. package/dist/domains/engine/resolver.js.map +1 -0
  976. package/dist/domains/engine/run-store.d.ts +14 -0
  977. package/dist/domains/engine/run-store.d.ts.map +1 -0
  978. package/dist/domains/engine/run-store.js +81 -0
  979. package/dist/domains/engine/run-store.js.map +1 -0
  980. package/dist/domains/engine/runtime-types.d.ts +11 -0
  981. package/dist/domains/engine/runtime-types.d.ts.map +1 -0
  982. package/dist/domains/engine/runtime-types.js +2 -0
  983. package/dist/domains/engine/runtime-types.js.map +1 -0
  984. package/dist/domains/engine/standalone-run.d.ts +13 -0
  985. package/dist/domains/engine/standalone-run.d.ts.map +1 -0
  986. package/dist/domains/engine/standalone-run.js +27 -0
  987. package/dist/domains/engine/standalone-run.js.map +1 -0
  988. package/dist/domains/engine/state.d.ts +11 -0
  989. package/dist/domains/engine/state.d.ts.map +1 -0
  990. package/dist/domains/engine/state.js +149 -0
  991. package/dist/domains/engine/state.js.map +1 -0
  992. package/dist/domains/engine/storage-layout.d.ts +14 -0
  993. package/dist/domains/engine/storage-layout.d.ts.map +1 -0
  994. package/dist/domains/engine/storage-layout.js +32 -0
  995. package/dist/domains/engine/storage-layout.js.map +1 -0
  996. package/dist/domains/engine/storage-run.d.ts +9 -0
  997. package/dist/domains/engine/storage-run.d.ts.map +1 -0
  998. package/dist/domains/engine/storage-run.js +116 -0
  999. package/dist/domains/engine/storage-run.js.map +1 -0
  1000. package/dist/domains/engine/types.d.ts +51 -0
  1001. package/dist/domains/engine/types.d.ts.map +1 -0
  1002. package/dist/domains/engine/types.js +2 -0
  1003. package/dist/domains/engine/types.js.map +1 -0
  1004. package/dist/domains/eval/index.d.ts +7 -0
  1005. package/dist/domains/eval/index.d.ts.map +1 -0
  1006. package/dist/domains/eval/index.js +11 -0
  1007. package/dist/domains/eval/index.js.map +1 -0
  1008. package/dist/domains/eval/repository-benchmarks.d.ts +6 -0
  1009. package/dist/domains/eval/repository-benchmarks.d.ts.map +1 -0
  1010. package/dist/domains/eval/repository-benchmarks.js +10 -0
  1011. package/dist/domains/eval/repository-benchmarks.js.map +1 -0
  1012. package/dist/domains/factory/artifacts.d.ts +53 -0
  1013. package/dist/domains/factory/artifacts.d.ts.map +1 -0
  1014. package/dist/domains/factory/artifacts.js +8 -0
  1015. package/dist/domains/factory/artifacts.js.map +1 -0
  1016. package/dist/domains/factory/package.d.ts +7 -0
  1017. package/dist/domains/factory/package.d.ts.map +1 -0
  1018. package/dist/domains/factory/package.js +1982 -0
  1019. package/dist/domains/factory/package.js.map +1 -0
  1020. package/dist/domains/factory/types.d.ts +127 -0
  1021. package/dist/domains/factory/types.d.ts.map +1 -0
  1022. package/dist/domains/factory/types.js +2 -0
  1023. package/dist/domains/factory/types.js.map +1 -0
  1024. package/dist/domains/integrations/codegraph.d.ts +17 -0
  1025. package/dist/domains/integrations/codegraph.d.ts.map +1 -0
  1026. package/dist/domains/integrations/codegraph.js +266 -0
  1027. package/dist/domains/integrations/codegraph.js.map +1 -0
  1028. package/dist/domains/integrations/openspec.d.ts +28 -0
  1029. package/dist/domains/integrations/openspec.d.ts.map +1 -0
  1030. package/dist/domains/integrations/openspec.js +557 -0
  1031. package/dist/domains/integrations/openspec.js.map +1 -0
  1032. package/dist/{core → domains/integrations}/superpowers.d.ts +10 -2
  1033. package/dist/domains/integrations/superpowers.d.ts.map +1 -0
  1034. package/dist/{core → domains/integrations}/superpowers.js +59 -13
  1035. package/dist/domains/integrations/superpowers.js.map +1 -0
  1036. package/dist/domains/skill/discovery.d.ts +17 -0
  1037. package/dist/domains/skill/discovery.d.ts.map +1 -0
  1038. package/dist/domains/skill/discovery.js +80 -0
  1039. package/dist/domains/skill/discovery.js.map +1 -0
  1040. package/dist/domains/skill/find.d.ts +41 -0
  1041. package/dist/domains/skill/find.d.ts.map +1 -0
  1042. package/dist/domains/skill/find.js +252 -0
  1043. package/dist/domains/skill/find.js.map +1 -0
  1044. package/dist/domains/skill/install.d.ts +11 -0
  1045. package/dist/domains/skill/install.d.ts.map +1 -0
  1046. package/dist/domains/skill/install.js +82 -0
  1047. package/dist/domains/skill/install.js.map +1 -0
  1048. package/dist/domains/skill/inventory.d.ts +19 -0
  1049. package/dist/domains/skill/inventory.d.ts.map +1 -0
  1050. package/dist/domains/skill/inventory.js +64 -0
  1051. package/dist/domains/skill/inventory.js.map +1 -0
  1052. package/dist/domains/skill/json-object.d.ts +13 -0
  1053. package/dist/domains/skill/json-object.d.ts.map +1 -0
  1054. package/dist/domains/skill/json-object.js +24 -0
  1055. package/dist/domains/skill/json-object.js.map +1 -0
  1056. package/dist/domains/skill/languages.d.ts +20 -0
  1057. package/dist/domains/skill/languages.d.ts.map +1 -0
  1058. package/dist/domains/skill/languages.js +24 -0
  1059. package/dist/domains/skill/languages.js.map +1 -0
  1060. package/dist/domains/skill/load.d.ts +5 -0
  1061. package/dist/domains/skill/load.d.ts.map +1 -0
  1062. package/dist/domains/skill/load.js +313 -0
  1063. package/dist/domains/skill/load.js.map +1 -0
  1064. package/dist/domains/skill/managed-markdown.d.ts +14 -0
  1065. package/dist/domains/skill/managed-markdown.d.ts.map +1 -0
  1066. package/dist/domains/skill/managed-markdown.js +126 -0
  1067. package/dist/domains/skill/managed-markdown.js.map +1 -0
  1068. package/dist/domains/skill/platform-inspect.d.ts +13 -0
  1069. package/dist/domains/skill/platform-inspect.d.ts.map +1 -0
  1070. package/dist/domains/skill/platform-inspect.js +193 -0
  1071. package/dist/domains/skill/platform-inspect.js.map +1 -0
  1072. package/dist/domains/skill/platform-install.d.ts +102 -0
  1073. package/dist/domains/skill/platform-install.d.ts.map +1 -0
  1074. package/dist/domains/skill/platform-install.js +1333 -0
  1075. package/dist/domains/skill/platform-install.js.map +1 -0
  1076. package/dist/domains/skill/preferences.d.ts +42 -0
  1077. package/dist/domains/skill/preferences.d.ts.map +1 -0
  1078. package/dist/domains/skill/preferences.js +118 -0
  1079. package/dist/domains/skill/preferences.js.map +1 -0
  1080. package/dist/domains/skill/project-instructions.d.ts +22 -0
  1081. package/dist/domains/skill/project-instructions.d.ts.map +1 -0
  1082. package/dist/domains/skill/project-instructions.js +69 -0
  1083. package/dist/domains/skill/project-instructions.js.map +1 -0
  1084. package/dist/domains/skill/snapshot.d.ts +8 -0
  1085. package/dist/domains/skill/snapshot.d.ts.map +1 -0
  1086. package/dist/domains/skill/snapshot.js +184 -0
  1087. package/dist/domains/skill/snapshot.js.map +1 -0
  1088. package/dist/domains/skill/types.d.ts +85 -0
  1089. package/dist/domains/skill/types.d.ts.map +1 -0
  1090. package/dist/domains/skill/types.js +2 -0
  1091. package/dist/{core → domains/skill}/types.js.map +1 -1
  1092. package/dist/domains/skill/uninstall.d.ts +19 -0
  1093. package/dist/domains/skill/uninstall.d.ts.map +1 -0
  1094. package/dist/domains/skill/uninstall.js +946 -0
  1095. package/dist/domains/skill/uninstall.js.map +1 -0
  1096. package/dist/domains/skill/validate.d.ts +3 -0
  1097. package/dist/domains/skill/validate.d.ts.map +1 -0
  1098. package/dist/domains/skill/validate.js +81 -0
  1099. package/dist/domains/skill/validate.js.map +1 -0
  1100. package/dist/domains/workflow-contract/builtins.d.ts +14 -0
  1101. package/dist/domains/workflow-contract/builtins.d.ts.map +1 -0
  1102. package/dist/domains/workflow-contract/builtins.js +372 -0
  1103. package/dist/domains/workflow-contract/builtins.js.map +1 -0
  1104. package/dist/domains/workflow-contract/contained-atomic-write.d.ts +21 -0
  1105. package/dist/domains/workflow-contract/contained-atomic-write.d.ts.map +1 -0
  1106. package/dist/domains/workflow-contract/contained-atomic-write.js +235 -0
  1107. package/dist/domains/workflow-contract/contained-atomic-write.js.map +1 -0
  1108. package/dist/domains/workflow-contract/hash.d.ts +3 -0
  1109. package/dist/domains/workflow-contract/hash.d.ts.map +1 -0
  1110. package/dist/domains/workflow-contract/hash.js +16 -0
  1111. package/dist/domains/workflow-contract/hash.js.map +1 -0
  1112. package/dist/domains/workflow-contract/index.d.ts +16 -0
  1113. package/dist/domains/workflow-contract/index.d.ts.map +1 -0
  1114. package/dist/domains/workflow-contract/index.js +11 -0
  1115. package/dist/domains/workflow-contract/index.js.map +1 -0
  1116. package/dist/domains/workflow-contract/normalize.d.ts +3 -0
  1117. package/dist/domains/workflow-contract/normalize.d.ts.map +1 -0
  1118. package/dist/domains/workflow-contract/normalize.js +165 -0
  1119. package/dist/domains/workflow-contract/normalize.js.map +1 -0
  1120. package/dist/domains/workflow-contract/project-config-reader.d.ts +24 -0
  1121. package/dist/domains/workflow-contract/project-config-reader.d.ts.map +1 -0
  1122. package/dist/domains/workflow-contract/project-config-reader.js +54 -0
  1123. package/dist/domains/workflow-contract/project-config-reader.js.map +1 -0
  1124. package/dist/domains/workflow-contract/project-config-transaction.d.ts +20 -0
  1125. package/dist/domains/workflow-contract/project-config-transaction.d.ts.map +1 -0
  1126. package/dist/domains/workflow-contract/project-config-transaction.js +293 -0
  1127. package/dist/domains/workflow-contract/project-config-transaction.js.map +1 -0
  1128. package/dist/domains/workflow-contract/project-config-writer.d.ts +13 -0
  1129. package/dist/domains/workflow-contract/project-config-writer.d.ts.map +1 -0
  1130. package/dist/domains/workflow-contract/project-config-writer.js +142 -0
  1131. package/dist/domains/workflow-contract/project-config-writer.js.map +1 -0
  1132. package/dist/domains/workflow-contract/project-config.d.ts +32 -0
  1133. package/dist/domains/workflow-contract/project-config.d.ts.map +1 -0
  1134. package/dist/domains/workflow-contract/project-config.js +1566 -0
  1135. package/dist/domains/workflow-contract/project-config.js.map +1 -0
  1136. package/dist/domains/workflow-contract/protected-project-path.d.ts +34 -0
  1137. package/dist/domains/workflow-contract/protected-project-path.d.ts.map +1 -0
  1138. package/dist/domains/workflow-contract/protected-project-path.js +162 -0
  1139. package/dist/domains/workflow-contract/protected-project-path.js.map +1 -0
  1140. package/dist/domains/workflow-contract/types.d.ts +193 -0
  1141. package/dist/domains/workflow-contract/types.d.ts.map +1 -0
  1142. package/dist/domains/workflow-contract/types.js +2 -0
  1143. package/dist/domains/workflow-contract/types.js.map +1 -0
  1144. package/dist/domains/workflow-contract/validation.d.ts +3 -0
  1145. package/dist/domains/workflow-contract/validation.d.ts.map +1 -0
  1146. package/dist/domains/workflow-contract/validation.js +189 -0
  1147. package/dist/domains/workflow-contract/validation.js.map +1 -0
  1148. package/dist/platform/fs/file-identity.d.ts +9 -0
  1149. package/dist/platform/fs/file-identity.d.ts.map +1 -0
  1150. package/dist/platform/fs/file-identity.js +21 -0
  1151. package/dist/platform/fs/file-identity.js.map +1 -0
  1152. package/dist/{utils → platform/fs}/file-system.d.ts +3 -3
  1153. package/dist/platform/fs/file-system.d.ts.map +1 -0
  1154. package/dist/{utils → platform/fs}/file-system.js +31 -17
  1155. package/dist/platform/fs/file-system.js.map +1 -0
  1156. package/dist/platform/fs/race-safe-read.d.ts +47 -0
  1157. package/dist/platform/fs/race-safe-read.d.ts.map +1 -0
  1158. package/dist/platform/fs/race-safe-read.js +132 -0
  1159. package/dist/platform/fs/race-safe-read.js.map +1 -0
  1160. package/dist/platform/fs/trusted-readonly-file.d.ts +31 -0
  1161. package/dist/platform/fs/trusted-readonly-file.d.ts.map +1 -0
  1162. package/dist/platform/fs/trusted-readonly-file.js +107 -0
  1163. package/dist/platform/fs/trusted-readonly-file.js.map +1 -0
  1164. package/dist/{core → platform/install}/detect.d.ts +5 -2
  1165. package/dist/platform/install/detect.d.ts.map +1 -0
  1166. package/dist/{core → platform/install}/detect.js +18 -5
  1167. package/dist/platform/install/detect.js.map +1 -0
  1168. package/dist/platform/install/platform-targets.d.ts +8 -0
  1169. package/dist/platform/install/platform-targets.d.ts.map +1 -0
  1170. package/dist/platform/install/platform-targets.js +31 -0
  1171. package/dist/platform/install/platform-targets.js.map +1 -0
  1172. package/dist/{core → platform/install}/platforms.d.ts +10 -1
  1173. package/dist/platform/install/platforms.d.ts.map +1 -0
  1174. package/dist/{core → platform/install}/platforms.js +68 -4
  1175. package/dist/platform/install/platforms.js.map +1 -0
  1176. package/dist/platform/install/project-registry.d.ts +38 -0
  1177. package/dist/platform/install/project-registry.d.ts.map +1 -0
  1178. package/dist/platform/install/project-registry.js +213 -0
  1179. package/dist/platform/install/project-registry.js.map +1 -0
  1180. package/dist/platform/install/skill-root-owner.d.ts +15 -0
  1181. package/dist/platform/install/skill-root-owner.d.ts.map +1 -0
  1182. package/dist/platform/install/skill-root-owner.js +68 -0
  1183. package/dist/platform/install/skill-root-owner.js.map +1 -0
  1184. package/dist/platform/install/types.d.ts +3 -0
  1185. package/dist/platform/install/types.d.ts.map +1 -0
  1186. package/dist/platform/install/types.js +2 -0
  1187. package/dist/platform/install/types.js.map +1 -0
  1188. package/dist/platform/paths/git-worktree.d.ts +10 -0
  1189. package/dist/platform/paths/git-worktree.d.ts.map +1 -0
  1190. package/dist/platform/paths/git-worktree.js +43 -0
  1191. package/dist/platform/paths/git-worktree.js.map +1 -0
  1192. package/dist/platform/paths/repository-layout.d.ts +38 -0
  1193. package/dist/platform/paths/repository-layout.d.ts.map +1 -0
  1194. package/dist/platform/paths/repository-layout.js +11 -0
  1195. package/dist/platform/paths/repository-layout.js.map +1 -0
  1196. package/dist/platform/process/command-error.d.ts.map +1 -0
  1197. package/dist/platform/process/command-error.js.map +1 -0
  1198. package/dist/platform/process/shell-quote.d.ts +22 -0
  1199. package/dist/platform/process/shell-quote.d.ts.map +1 -0
  1200. package/dist/platform/process/shell-quote.js +34 -0
  1201. package/dist/platform/process/shell-quote.js.map +1 -0
  1202. package/dist/platform/process/terminate-process-tree.d.ts +3 -0
  1203. package/dist/platform/process/terminate-process-tree.d.ts.map +1 -0
  1204. package/dist/platform/process/terminate-process-tree.js +65 -0
  1205. package/dist/platform/process/terminate-process-tree.js.map +1 -0
  1206. package/dist/platform/version/version.d.ts.map +1 -0
  1207. package/dist/{core → platform/version}/version.js +16 -3
  1208. package/dist/platform/version/version.js.map +1 -0
  1209. package/eval/CLAUDE.md +43 -0
  1210. package/eval/README.md +538 -0
  1211. package/eval/langsmith/README.md +93 -0
  1212. package/eval/langsmith/skills/README.md +5 -0
  1213. package/eval/langsmith/tasks/README.md +5 -0
  1214. package/eval/langsmith/tests/conftest.py +187 -0
  1215. package/eval/langsmith/tests/tasks/test_tasks.py +287 -0
  1216. package/eval/langsmith/treatments/README.md +5 -0
  1217. package/eval/local/README.md +130 -0
  1218. package/eval/local/regression_baseline.json +13 -0
  1219. package/eval/local/report-style-demo-assets/quality_cost.en.svg +41 -0
  1220. package/eval/local/report-style-demo-assets/quality_cost.zh.svg +41 -0
  1221. package/eval/local/report-style-demo-assets/rubric_delta.en.svg +56 -0
  1222. package/eval/local/report-style-demo-assets/rubric_delta.zh.svg +56 -0
  1223. package/eval/local/report-style-demo-assets/task_outcomes.en.svg +46 -0
  1224. package/eval/local/report-style-demo-assets/task_outcomes.zh.svg +46 -0
  1225. package/eval/local/report-style-demo.html +867 -0
  1226. package/eval/local/scripts/compare_baselines.py +1144 -0
  1227. package/eval/local/scripts/generate_report_style_demo_charts.py +322 -0
  1228. package/eval/local/scripts/regression_check.py +170 -0
  1229. package/eval/local/scripts/render_readme_benchmark_figures.py +416 -0
  1230. package/eval/local/scripts/rescore_rubric.py +120 -0
  1231. package/eval/local/skills/benchmarks/039-release/comet-classic-039/SKILL.md +282 -0
  1232. package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/auto-transition.md +27 -0
  1233. package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/comet-yaml-fields.md +68 -0
  1234. package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/context-recovery.md +35 -0
  1235. package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/debug-gate.md +17 -0
  1236. package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/decision-point.md +20 -0
  1237. package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/dirty-worktree.md +59 -0
  1238. package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/file-structure.md +28 -0
  1239. package/eval/local/skills/benchmarks/039-release/comet-classic-039/reference/subagent-dispatch.md +113 -0
  1240. package/eval/local/skills/benchmarks/039-release/comet-classic-039/rules/comet-phase-guard.md +125 -0
  1241. package/eval/local/skills/benchmarks/039-release/comet-classic-039-archive/SKILL.md +100 -0
  1242. package/eval/local/skills/benchmarks/039-release/comet-classic-039-build/SKILL.md +304 -0
  1243. package/eval/local/skills/benchmarks/039-release/comet-classic-039-design/SKILL.md +263 -0
  1244. package/eval/local/skills/benchmarks/039-release/comet-classic-039-hotfix/SKILL.md +204 -0
  1245. package/eval/local/skills/benchmarks/039-release/comet-classic-039-open/SKILL.md +220 -0
  1246. package/eval/local/skills/benchmarks/039-release/comet-classic-039-tweak/SKILL.md +180 -0
  1247. package/eval/local/skills/benchmarks/039-release/comet-classic-039-verify/SKILL.md +234 -0
  1248. package/eval/local/skills/benchmarks/040-beta/comet/SKILL.md +261 -0
  1249. package/eval/local/skills/benchmarks/040-beta/comet/reference/auto-transition.md +27 -0
  1250. package/eval/local/skills/benchmarks/040-beta/comet/reference/comet-yaml-fields.md +73 -0
  1251. package/eval/local/skills/benchmarks/040-beta/comet/reference/context-recovery.md +45 -0
  1252. package/eval/local/skills/benchmarks/040-beta/comet/reference/debug-gate.md +33 -0
  1253. package/eval/local/skills/benchmarks/040-beta/comet/reference/decision-point.md +31 -0
  1254. package/eval/local/skills/benchmarks/040-beta/comet/reference/dirty-worktree.md +59 -0
  1255. package/eval/local/skills/benchmarks/040-beta/comet/reference/file-structure.md +28 -0
  1256. package/eval/local/skills/benchmarks/040-beta/comet/reference/intent-frame.md +74 -0
  1257. package/eval/local/skills/benchmarks/040-beta/comet/reference/scripts.md +69 -0
  1258. package/eval/local/skills/benchmarks/040-beta/comet/reference/subagent-dispatch.md +169 -0
  1259. package/eval/local/skills/benchmarks/040-beta/comet/rules/comet-phase-guard.md +130 -0
  1260. package/eval/local/skills/benchmarks/040-beta/comet/runtime/classic/checks.yaml +6 -0
  1261. package/eval/local/skills/benchmarks/040-beta/comet/runtime/classic/guardrails.yaml +13 -0
  1262. package/eval/local/skills/benchmarks/040-beta/comet/runtime/classic/skill.yaml +122 -0
  1263. package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-archive.mjs +9515 -0
  1264. package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-env.mjs +15 -0
  1265. package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-guard.mjs +10173 -0
  1266. package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-handoff.mjs +9491 -0
  1267. package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-hook-guard.mjs +9175 -0
  1268. package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-intent.mjs +404 -0
  1269. package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-state.mjs +9273 -0
  1270. package/eval/local/skills/benchmarks/040-beta/comet/scripts/comet-yaml-validate.mjs +7627 -0
  1271. package/eval/local/skills/benchmarks/040-beta/comet-archive/SKILL.md +110 -0
  1272. package/eval/local/skills/benchmarks/040-beta/comet-build/SKILL.md +315 -0
  1273. package/eval/local/skills/benchmarks/040-beta/comet-design/SKILL.md +260 -0
  1274. package/eval/local/skills/benchmarks/040-beta/comet-hotfix/SKILL.md +190 -0
  1275. package/eval/local/skills/benchmarks/040-beta/comet-open/SKILL.md +210 -0
  1276. package/eval/local/skills/benchmarks/040-beta/comet-tweak/SKILL.md +183 -0
  1277. package/eval/local/skills/benchmarks/040-beta/comet-verify/SKILL.md +230 -0
  1278. package/eval/local/skills/benchmarks/dependency/claude-md/comet-workflow/CLAUDE.md +12 -0
  1279. package/eval/local/skills/benchmarks/dependency/openspec/openspec-apply-change/SKILL.md +156 -0
  1280. package/eval/local/skills/benchmarks/dependency/openspec/openspec-archive-change/SKILL.md +114 -0
  1281. package/eval/local/skills/benchmarks/dependency/openspec/openspec-bulk-archive-change/SKILL.md +246 -0
  1282. package/eval/local/skills/benchmarks/dependency/openspec/openspec-continue-change/SKILL.md +118 -0
  1283. package/eval/local/skills/benchmarks/dependency/openspec/openspec-explore/SKILL.md +288 -0
  1284. package/eval/local/skills/benchmarks/dependency/openspec/openspec-ff-change/SKILL.md +101 -0
  1285. package/eval/local/skills/benchmarks/dependency/openspec/openspec-new-change/SKILL.md +74 -0
  1286. package/eval/local/skills/benchmarks/dependency/openspec/openspec-onboard/SKILL.md +554 -0
  1287. package/eval/local/skills/benchmarks/dependency/openspec/openspec-propose/SKILL.md +110 -0
  1288. package/eval/local/skills/benchmarks/dependency/openspec/openspec-sync-specs/SKILL.md +138 -0
  1289. package/eval/local/skills/benchmarks/dependency/openspec/openspec-verify-change/SKILL.md +168 -0
  1290. package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/SKILL.md +159 -0
  1291. package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/frame-template.html +213 -0
  1292. package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/helper.js +167 -0
  1293. package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/server.cjs +723 -0
  1294. package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/start-server.sh +209 -0
  1295. package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/scripts/stop-server.sh +120 -0
  1296. package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/spec-document-reviewer-prompt.md +49 -0
  1297. package/eval/local/skills/benchmarks/dependency/superpowers/brainstorming/visual-companion.md +291 -0
  1298. package/eval/local/skills/benchmarks/dependency/superpowers/dispatching-parallel-agents/SKILL.md +185 -0
  1299. package/eval/local/skills/benchmarks/dependency/superpowers/executing-plans/SKILL.md +70 -0
  1300. package/eval/local/skills/benchmarks/dependency/superpowers/finishing-a-development-branch/SKILL.md +241 -0
  1301. package/eval/local/skills/benchmarks/dependency/superpowers/receiving-code-review/SKILL.md +213 -0
  1302. package/eval/local/skills/benchmarks/dependency/superpowers/requesting-code-review/SKILL.md +103 -0
  1303. package/eval/local/skills/benchmarks/dependency/superpowers/requesting-code-review/code-reviewer.md +172 -0
  1304. package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/SKILL.md +418 -0
  1305. package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/implementer-prompt.md +139 -0
  1306. package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/scripts/review-package +44 -0
  1307. package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/scripts/sdd-workspace +22 -0
  1308. package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/scripts/task-brief +40 -0
  1309. package/eval/local/skills/benchmarks/dependency/superpowers/subagent-driven-development/task-reviewer-prompt.md +188 -0
  1310. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/CREATION-LOG.md +119 -0
  1311. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/SKILL.md +296 -0
  1312. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/condition-based-waiting-example.ts +158 -0
  1313. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/condition-based-waiting.md +115 -0
  1314. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/defense-in-depth.md +122 -0
  1315. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/find-polluter.sh +63 -0
  1316. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/root-cause-tracing.md +169 -0
  1317. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/test-academic.md +14 -0
  1318. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/test-pressure-1.md +58 -0
  1319. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/test-pressure-2.md +68 -0
  1320. package/eval/local/skills/benchmarks/dependency/superpowers/systematic-debugging/test-pressure-3.md +69 -0
  1321. package/eval/local/skills/benchmarks/dependency/superpowers/test-driven-development/SKILL.md +371 -0
  1322. package/eval/local/skills/benchmarks/dependency/superpowers/test-driven-development/testing-anti-patterns.md +299 -0
  1323. package/eval/local/skills/benchmarks/dependency/superpowers/using-git-worktrees/SKILL.md +202 -0
  1324. package/eval/local/skills/benchmarks/dependency/superpowers/verification-before-completion/SKILL.md +139 -0
  1325. package/eval/local/skills/benchmarks/dependency/superpowers/writing-plans/SKILL.md +174 -0
  1326. package/eval/local/skills/benchmarks/dependency/superpowers/writing-plans/plan-document-reviewer-prompt.md +49 -0
  1327. package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/SKILL.md +689 -0
  1328. package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/anthropic-best-practices.md +1150 -0
  1329. package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  1330. package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/graphviz-conventions.dot +172 -0
  1331. package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/persuasion-principles.md +187 -0
  1332. package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/render-graphs.js +168 -0
  1333. package/eval/local/skills/benchmarks/dependency/superpowers/writing-skills/testing-skills-with-subagents.md +384 -0
  1334. package/eval/local/tasks/authoring-skill-smoke/environment/Dockerfile +14 -0
  1335. package/eval/local/tasks/authoring-skill-smoke/instruction.md +4 -0
  1336. package/eval/local/tasks/authoring-skill-smoke/task.toml +21 -0
  1337. package/eval/local/tasks/authoring-skill-smoke/validation/test_authoring_skill_smoke.py +54 -0
  1338. package/eval/local/tasks/comet-agent-memory-routing/environment/Dockerfile +26 -0
  1339. package/eval/local/tasks/comet-agent-memory-routing/environment/agent_system.py +40 -0
  1340. package/eval/local/tasks/comet-agent-memory-routing/environment/test_agent_system.py +29 -0
  1341. package/eval/local/tasks/comet-agent-memory-routing/instruction.md +20 -0
  1342. package/eval/local/tasks/comet-agent-memory-routing/task.toml +24 -0
  1343. package/eval/local/tasks/comet-agent-memory-routing/validation/test_agent_memory_routing.py +24 -0
  1344. package/eval/local/tasks/comet-api-cache-ttl/environment/Dockerfile +35 -0
  1345. package/eval/local/tasks/comet-api-cache-ttl/environment/cache.py +39 -0
  1346. package/eval/local/tasks/comet-api-cache-ttl/environment/test_cache.py +81 -0
  1347. package/eval/local/tasks/comet-api-cache-ttl/instruction.md +33 -0
  1348. package/eval/local/tasks/comet-api-cache-ttl/task.toml +24 -0
  1349. package/eval/local/tasks/comet-api-cache-ttl/validation/test_api_cache_ttl.py +58 -0
  1350. package/eval/local/tasks/comet-classic-layout-lifecycle/environment/.include-current-comet-cli +1 -0
  1351. package/eval/local/tasks/comet-classic-layout-lifecycle/environment/Dockerfile +45 -0
  1352. package/eval/local/tasks/comet-classic-layout-lifecycle/environment/current-comet-package.json +18 -0
  1353. package/eval/local/tasks/comet-classic-layout-lifecycle/environment/current-comet.sh +14 -0
  1354. package/eval/local/tasks/comet-classic-layout-lifecycle/environment/test_wordcount.py +29 -0
  1355. package/eval/local/tasks/comet-classic-layout-lifecycle/environment/wordcount.py +40 -0
  1356. package/eval/local/tasks/comet-classic-layout-lifecycle/instruction.md +18 -0
  1357. package/eval/local/tasks/comet-classic-layout-lifecycle/task.toml +23 -0
  1358. package/eval/local/tasks/comet-classic-layout-lifecycle/validation/test_classic_layout_lifecycle.py +604 -0
  1359. package/eval/local/tasks/comet-cross-file-refactor/environment/Dockerfile +15 -0
  1360. package/eval/local/tasks/comet-cross-file-refactor/environment/cli.py +13 -0
  1361. package/eval/local/tasks/comet-cross-file-refactor/environment/counting.py +13 -0
  1362. package/eval/local/tasks/comet-cross-file-refactor/environment/test_textkit.py +21 -0
  1363. package/eval/local/tasks/comet-cross-file-refactor/instruction.md +16 -0
  1364. package/eval/local/tasks/comet-cross-file-refactor/task.toml +20 -0
  1365. package/eval/local/tasks/comet-cross-file-refactor/validation/test_cross_file_refactor.py +20 -0
  1366. package/eval/local/tasks/comet-dependency-confusion/environment/Dockerfile +25 -0
  1367. package/eval/local/tasks/comet-dependency-confusion/environment/app.py +8 -0
  1368. package/eval/local/tasks/comet-dependency-confusion/environment/settings_loader.py +14 -0
  1369. package/eval/local/tasks/comet-dependency-confusion/environment/test_settings_service.py +19 -0
  1370. package/eval/local/tasks/comet-dependency-confusion/instruction.md +18 -0
  1371. package/eval/local/tasks/comet-dependency-confusion/task.toml +24 -0
  1372. package/eval/local/tasks/comet-dependency-confusion/validation/test_dependency_confusion.py +24 -0
  1373. package/eval/local/tasks/comet-fix-median/environment/Dockerfile +46 -0
  1374. package/eval/local/tasks/comet-fix-median/environment/stats.py +54 -0
  1375. package/eval/local/tasks/comet-fix-median/environment/test_stats.py +68 -0
  1376. package/eval/local/tasks/comet-fix-median/instruction.md +25 -0
  1377. package/eval/local/tasks/comet-fix-median/task.toml +24 -0
  1378. package/eval/local/tasks/comet-fix-median/validation/test_fix_median.py +60 -0
  1379. package/eval/local/tasks/comet-framework-selection/environment/Dockerfile +25 -0
  1380. package/eval/local/tasks/comet-framework-selection/environment/architecture.py +12 -0
  1381. package/eval/local/tasks/comet-framework-selection/environment/test_architecture.py +30 -0
  1382. package/eval/local/tasks/comet-framework-selection/instruction.md +22 -0
  1383. package/eval/local/tasks/comet-framework-selection/task.toml +24 -0
  1384. package/eval/local/tasks/comet-framework-selection/validation/test_framework_selection.py +24 -0
  1385. package/eval/local/tasks/comet-full-workflow/environment/Dockerfile +49 -0
  1386. package/eval/local/tasks/comet-full-workflow/environment/test_wordcount.py +29 -0
  1387. package/eval/local/tasks/comet-full-workflow/environment/wordcount.py +40 -0
  1388. package/eval/local/tasks/comet-full-workflow/instruction.md +18 -0
  1389. package/eval/local/tasks/comet-full-workflow/task.toml +24 -0
  1390. package/eval/local/tasks/comet-full-workflow/validation/test_full_workflow.py +171 -0
  1391. package/eval/local/tasks/comet-graph-execution-review/environment/Dockerfile +25 -0
  1392. package/eval/local/tasks/comet-graph-execution-review/environment/pipeline.py +19 -0
  1393. package/eval/local/tasks/comet-graph-execution-review/environment/test_pipeline.py +53 -0
  1394. package/eval/local/tasks/comet-graph-execution-review/instruction.md +21 -0
  1395. package/eval/local/tasks/comet-graph-execution-review/task.toml +24 -0
  1396. package/eval/local/tasks/comet-graph-execution-review/validation/test_graph_execution_review.py +24 -0
  1397. package/eval/local/tasks/comet-human-approval-flow/environment/Dockerfile +15 -0
  1398. package/eval/local/tasks/comet-human-approval-flow/environment/approvals.py +17 -0
  1399. package/eval/local/tasks/comet-human-approval-flow/environment/test_approvals.py +30 -0
  1400. package/eval/local/tasks/comet-human-approval-flow/instruction.md +15 -0
  1401. package/eval/local/tasks/comet-human-approval-flow/task.toml +20 -0
  1402. package/eval/local/tasks/comet-human-approval-flow/validation/test_human_approval_flow.py +20 -0
  1403. package/eval/local/tasks/comet-layered-streaming-fix/environment/Dockerfile +17 -0
  1404. package/eval/local/tasks/comet-layered-streaming-fix/environment/chat_app.py +19 -0
  1405. package/eval/local/tasks/comet-layered-streaming-fix/environment/test_chat_app.py +15 -0
  1406. package/eval/local/tasks/comet-layered-streaming-fix/instruction.md +14 -0
  1407. package/eval/local/tasks/comet-layered-streaming-fix/task.toml +20 -0
  1408. package/eval/local/tasks/comet-layered-streaming-fix/validation/test_layered_streaming_fix.py +20 -0
  1409. package/eval/local/tasks/comet-native-clarification/environment/Dockerfile +25 -0
  1410. package/eval/local/tasks/comet-native-clarification/environment/test_wordcount.py +25 -0
  1411. package/eval/local/tasks/comet-native-clarification/environment/wordcount.py +36 -0
  1412. package/eval/local/tasks/comet-native-clarification/instruction.md +7 -0
  1413. package/eval/local/tasks/comet-native-clarification/task.toml +40 -0
  1414. package/eval/local/tasks/comet-native-clarification/validation/test_native_clarification.py +193 -0
  1415. package/eval/local/tasks/comet-native-clarification-depth/environment/Dockerfile +25 -0
  1416. package/eval/local/tasks/comet-native-clarification-depth/environment/test_wordcount.py +25 -0
  1417. package/eval/local/tasks/comet-native-clarification-depth/environment/wordcount.py +36 -0
  1418. package/eval/local/tasks/comet-native-clarification-depth/instruction.md +17 -0
  1419. package/eval/local/tasks/comet-native-clarification-depth/task.toml +47 -0
  1420. package/eval/local/tasks/comet-native-clarification-depth/validation/test_native_clarification_depth.py +618 -0
  1421. package/eval/local/tasks/comet-native-clarification-modes/environment/Dockerfile +25 -0
  1422. package/eval/local/tasks/comet-native-clarification-modes/environment/test_wordcount.py +25 -0
  1423. package/eval/local/tasks/comet-native-clarification-modes/environment/wordcount.py +36 -0
  1424. package/eval/local/tasks/comet-native-clarification-modes/instruction.md +13 -0
  1425. package/eval/local/tasks/comet-native-clarification-modes/task.toml +39 -0
  1426. package/eval/local/tasks/comet-native-clarification-modes/validation/test_native_clarification_modes.py +235 -0
  1427. package/eval/local/tasks/comet-native-interrupted-transition/environment/.comet/config.yaml +6 -0
  1428. package/eval/local/tasks/comet-native-interrupted-transition/environment/Dockerfile +26 -0
  1429. package/eval/local/tasks/comet-native-interrupted-transition/environment/docs/comet/changes/add-character-counting/brief.md +17 -0
  1430. package/eval/local/tasks/comet-native-interrupted-transition/environment/docs/comet/changes/add-character-counting/comet-state.yaml +12 -0
  1431. package/eval/local/tasks/comet-native-interrupted-transition/environment/docs/comet/changes/add-character-counting/runtime/transition.json +69 -0
  1432. package/eval/local/tasks/comet-native-interrupted-transition/environment/docs/comet/changes/add-character-counting/specs/character-counting/spec.md +3 -0
  1433. package/eval/local/tasks/comet-native-interrupted-transition/environment/test_wordcount.py +20 -0
  1434. package/eval/local/tasks/comet-native-interrupted-transition/environment/wordcount.py +27 -0
  1435. package/eval/local/tasks/comet-native-interrupted-transition/instruction.md +7 -0
  1436. package/eval/local/tasks/comet-native-interrupted-transition/task.toml +35 -0
  1437. package/eval/local/tasks/comet-native-interrupted-transition/validation/test_native_interrupted_transition.py +63 -0
  1438. package/eval/local/tasks/comet-native-repository-fact/environment/Dockerfile +24 -0
  1439. package/eval/local/tasks/comet-native-repository-fact/environment/PRODUCT_RULES.md +3 -0
  1440. package/eval/local/tasks/comet-native-repository-fact/environment/test_wordcount.py +20 -0
  1441. package/eval/local/tasks/comet-native-repository-fact/environment/wordcount.py +27 -0
  1442. package/eval/local/tasks/comet-native-repository-fact/instruction.md +7 -0
  1443. package/eval/local/tasks/comet-native-repository-fact/task.toml +35 -0
  1444. package/eval/local/tasks/comet-native-repository-fact/validation/test_native_repository_fact.py +53 -0
  1445. package/eval/local/tasks/comet-native-wave-b-decision-resume/environment/Dockerfile +25 -0
  1446. package/eval/local/tasks/comet-native-wave-b-decision-resume/environment/test_wordcount.py +27 -0
  1447. package/eval/local/tasks/comet-native-wave-b-decision-resume/environment/wordcount.py +36 -0
  1448. package/eval/local/tasks/comet-native-wave-b-decision-resume/instruction.md +9 -0
  1449. package/eval/local/tasks/comet-native-wave-b-decision-resume/task.toml +40 -0
  1450. package/eval/local/tasks/comet-native-wave-b-decision-resume/validation/test_native_wave_b_decision_resume.py +208 -0
  1451. package/eval/local/tasks/comet-native-wave-c-verification-integrity/environment/Dockerfile +25 -0
  1452. package/eval/local/tasks/comet-native-wave-c-verification-integrity/environment/test_wordcount.py +27 -0
  1453. package/eval/local/tasks/comet-native-wave-c-verification-integrity/environment/wordcount.py +36 -0
  1454. package/eval/local/tasks/comet-native-wave-c-verification-integrity/instruction.md +11 -0
  1455. package/eval/local/tasks/comet-native-wave-c-verification-integrity/task.toml +36 -0
  1456. package/eval/local/tasks/comet-native-wave-c-verification-integrity/validation/test_native_wave_c_verification_integrity.py +344 -0
  1457. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/environment/Dockerfile +25 -0
  1458. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/environment/test_wordcount.py +27 -0
  1459. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/environment/wordcount.py +36 -0
  1460. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/instruction.md +11 -0
  1461. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/task.toml +37 -0
  1462. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/validation/test_native_wave_d_stagnation_stop.py +284 -0
  1463. package/eval/local/tasks/comet-native-wave-e-parallel-safety/environment/.include-trusted-native-runtime +1 -0
  1464. package/eval/local/tasks/comet-native-wave-e-parallel-safety/environment/Dockerfile +25 -0
  1465. package/eval/local/tasks/comet-native-wave-e-parallel-safety/environment/test_wordcount.py +27 -0
  1466. package/eval/local/tasks/comet-native-wave-e-parallel-safety/environment/wordcount.py +36 -0
  1467. package/eval/local/tasks/comet-native-wave-e-parallel-safety/instruction.md +9 -0
  1468. package/eval/local/tasks/comet-native-wave-e-parallel-safety/task.toml +37 -0
  1469. package/eval/local/tasks/comet-native-wave-e-parallel-safety/validation/test_native_wave_e_parallel_safety.py +309 -0
  1470. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/.include-current-comet-cli +1 -0
  1471. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/Dockerfile +29 -0
  1472. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/current-comet-package.json +18 -0
  1473. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/current-comet.sh +14 -0
  1474. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/test_wordcount.py +27 -0
  1475. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/wordcount.py +36 -0
  1476. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/instruction.md +7 -0
  1477. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/task.toml +36 -0
  1478. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/validation/test_native_wave_f_dashboard_readonly.py +483 -0
  1479. package/eval/local/tasks/comet-native-workflow/environment/.include-trusted-native-review-fixture +1 -0
  1480. package/eval/local/tasks/comet-native-workflow/environment/.include-trusted-native-runtime +1 -0
  1481. package/eval/local/tasks/comet-native-workflow/environment/Dockerfile +26 -0
  1482. package/eval/local/tasks/comet-native-workflow/environment/test_wordcount.py +25 -0
  1483. package/eval/local/tasks/comet-native-workflow/environment/wordcount.py +36 -0
  1484. package/eval/local/tasks/comet-native-workflow/instruction.md +36 -0
  1485. package/eval/local/tasks/comet-native-workflow/task.toml +36 -0
  1486. package/eval/local/tasks/comet-native-workflow/validation/test_native_workflow.py +680 -0
  1487. package/eval/local/tasks/comet-noise-distractor/environment/Dockerfile +15 -0
  1488. package/eval/local/tasks/comet-noise-distractor/environment/distractor.md +4 -0
  1489. package/eval/local/tasks/comet-noise-distractor/environment/invoice.py +5 -0
  1490. package/eval/local/tasks/comet-noise-distractor/environment/test_invoice.py +18 -0
  1491. package/eval/local/tasks/comet-noise-distractor/instruction.md +17 -0
  1492. package/eval/local/tasks/comet-noise-distractor/task.toml +20 -0
  1493. package/eval/local/tasks/comet-noise-distractor/validation/test_noise_distractor.py +20 -0
  1494. package/eval/local/tasks/comet-observability-env-template/environment/Dockerfile +15 -0
  1495. package/eval/local/tasks/comet-observability-env-template/environment/env_writer.py +17 -0
  1496. package/eval/local/tasks/comet-observability-env-template/environment/test_env_writer.py +17 -0
  1497. package/eval/local/tasks/comet-observability-env-template/instruction.md +20 -0
  1498. package/eval/local/tasks/comet-observability-env-template/task.toml +20 -0
  1499. package/eval/local/tasks/comet-observability-env-template/validation/test_observability_env_template.py +46 -0
  1500. package/eval/local/tasks/comet-perf-dedupe/environment/Dockerfile +35 -0
  1501. package/eval/local/tasks/comet-perf-dedupe/environment/dedupe.py +22 -0
  1502. package/eval/local/tasks/comet-perf-dedupe/environment/test_dedupe.py +43 -0
  1503. package/eval/local/tasks/comet-perf-dedupe/instruction.md +25 -0
  1504. package/eval/local/tasks/comet-perf-dedupe/task.toml +24 -0
  1505. package/eval/local/tasks/comet-perf-dedupe/validation/test_perf_dedupe.py +40 -0
  1506. package/eval/local/tasks/comet-persistence-threading/environment/Dockerfile +15 -0
  1507. package/eval/local/tasks/comet-persistence-threading/environment/session_store.py +15 -0
  1508. package/eval/local/tasks/comet-persistence-threading/environment/test_session_store.py +21 -0
  1509. package/eval/local/tasks/comet-persistence-threading/instruction.md +14 -0
  1510. package/eval/local/tasks/comet-persistence-threading/task.toml +20 -0
  1511. package/eval/local/tasks/comet-persistence-threading/validation/test_persistence_threading.py +20 -0
  1512. package/eval/local/tasks/comet-refactor-counter/environment/Dockerfile +35 -0
  1513. package/eval/local/tasks/comet-refactor-counter/environment/test_text_processor.py +57 -0
  1514. package/eval/local/tasks/comet-refactor-counter/environment/text_processor.py +49 -0
  1515. package/eval/local/tasks/comet-refactor-counter/instruction.md +31 -0
  1516. package/eval/local/tasks/comet-refactor-counter/task.toml +24 -0
  1517. package/eval/local/tasks/comet-refactor-counter/validation/test_refactor_counter.py +75 -0
  1518. package/eval/local/tasks/comet-robust-config/environment/Dockerfile +35 -0
  1519. package/eval/local/tasks/comet-robust-config/environment/config_loader.py +56 -0
  1520. package/eval/local/tasks/comet-robust-config/environment/test_config_loader.py +72 -0
  1521. package/eval/local/tasks/comet-robust-config/instruction.md +30 -0
  1522. package/eval/local/tasks/comet-robust-config/task.toml +24 -0
  1523. package/eval/local/tasks/comet-robust-config/validation/test_robust_config.py +37 -0
  1524. package/eval/local/tasks/generic-skill-smoke/environment/Dockerfile +14 -0
  1525. package/eval/local/tasks/generic-skill-smoke/instruction.md +7 -0
  1526. package/eval/local/tasks/generic-skill-smoke/task.toml +21 -0
  1527. package/eval/local/tasks/generic-skill-smoke/validation/test_generic_skill_smoke.py +41 -0
  1528. package/eval/local/tasks/index.yaml +229 -0
  1529. package/eval/local/tasks/workflow-overlay-contract/environment/Dockerfile +16 -0
  1530. package/eval/local/tasks/workflow-overlay-contract/instruction.md +5 -0
  1531. package/eval/local/tasks/workflow-overlay-contract/task.toml +21 -0
  1532. package/eval/local/tasks/workflow-overlay-contract/validation/test_workflow_overlay_contract.py +235 -0
  1533. package/eval/local/tasks/workflow-route-conformance/environment/Dockerfile +14 -0
  1534. package/eval/local/tasks/workflow-route-conformance/instruction.md +5 -0
  1535. package/eval/local/tasks/workflow-route-conformance/task.toml +21 -0
  1536. package/eval/local/tasks/workflow-route-conformance/validation/test_workflow_route_conformance.py +84 -0
  1537. package/eval/local/tests/conftest.py +1946 -0
  1538. package/eval/local/tests/scaffold/test_aligned_comparison.py +1012 -0
  1539. package/eval/local/tests/scaffold/test_attribution.py +48 -0
  1540. package/eval/local/tests/scaffold/test_compare_baselines.py +999 -0
  1541. package/eval/local/tests/scaffold/test_conftest_helpers.py +980 -0
  1542. package/eval/local/tests/scaffold/test_evidence.py +15 -0
  1543. package/eval/local/tests/scaffold/test_langsmith_conftest.py +244 -0
  1544. package/eval/local/tests/scaffold/test_logging.py +377 -0
  1545. package/eval/local/tests/scaffold/test_manifests.py +134 -0
  1546. package/eval/local/tests/scaffold/test_native_aligned_eval.py +353 -0
  1547. package/eval/local/tests/scaffold/test_native_wave_evaluations.py +2183 -0
  1548. package/eval/local/tests/scaffold/test_profiles.py +1149 -0
  1549. package/eval/local/tests/scaffold/test_regression_check.py +19 -0
  1550. package/eval/local/tests/scaffold/test_report_style_demo_charts.py +45 -0
  1551. package/eval/local/tests/scaffold/test_sample_quality.py +268 -0
  1552. package/eval/local/tests/scaffold/test_tasks.py +1013 -0
  1553. package/eval/local/tests/scaffold/test_treatments.py +353 -0
  1554. package/eval/local/tests/scaffold/test_utils.py +561 -0
  1555. package/eval/local/tests/tasks/__init__.py +1 -0
  1556. package/eval/local/tests/tasks/test_tasks.py +474 -0
  1557. package/eval/local/tests/tasks/test_validation_scripts.py +787 -0
  1558. package/eval/local/treatments/comet/comet_classic_docs_layout.yaml +121 -0
  1559. package/eval/local/treatments/comet/comet_full_039.yaml +141 -0
  1560. package/eval/local/treatments/comet/comet_full_040_beta.yaml +140 -0
  1561. package/eval/local/treatments/comet/comet_native_phase1.yaml +66 -0
  1562. package/eval/local/treatments/common/control.yaml +4 -0
  1563. package/eval/pyproject.toml +41 -0
  1564. package/eval/report-html-config.json +6 -0
  1565. package/eval/scaffold/__init__.py +67 -0
  1566. package/eval/scaffold/python/__init__.py +95 -0
  1567. package/eval/scaffold/python/aligned_comparison.py +1632 -0
  1568. package/eval/scaffold/python/attribution.py +43 -0
  1569. package/eval/scaffold/python/evidence.py +38 -0
  1570. package/eval/scaffold/python/external_data_handler.py +18 -0
  1571. package/eval/scaffold/python/generic_llm_judge.py +237 -0
  1572. package/eval/scaffold/python/judge_config.py +168 -0
  1573. package/eval/scaffold/python/llm_judge.py +188 -0
  1574. package/eval/scaffold/python/logging.py +804 -0
  1575. package/eval/scaffold/python/manifests.py +131 -0
  1576. package/eval/scaffold/python/native_eval.py +143 -0
  1577. package/eval/scaffold/python/paper_charts.py +25 -0
  1578. package/eval/scaffold/python/pass_at_k.py +106 -0
  1579. package/eval/scaffold/python/paths.py +56 -0
  1580. package/eval/scaffold/python/profiles.py +127 -0
  1581. package/eval/scaffold/python/report_outputs.py +1573 -0
  1582. package/eval/scaffold/python/sample_quality.py +382 -0
  1583. package/eval/scaffold/python/schema.py +39 -0
  1584. package/eval/scaffold/python/skill_parser.py +469 -0
  1585. package/eval/scaffold/python/tasks.py +343 -0
  1586. package/eval/scaffold/python/treatments.py +271 -0
  1587. package/eval/scaffold/python/utils.py +460 -0
  1588. package/eval/scaffold/python/validation/__init__.py +31 -0
  1589. package/eval/scaffold/python/validation/authoring_rubric.py +328 -0
  1590. package/eval/scaffold/python/validation/comet_workflow.py +227 -0
  1591. package/eval/scaffold/python/validation/core.py +264 -0
  1592. package/eval/scaffold/python/validation/dataset.py +337 -0
  1593. package/eval/scaffold/python/validation/docker.py +106 -0
  1594. package/eval/scaffold/python/validation/evaluator.py +549 -0
  1595. package/eval/scaffold/python/validation/generic_rubric.py +198 -0
  1596. package/eval/scaffold/python/validation/native_wave.py +2154 -0
  1597. package/eval/scaffold/python/validation/native_workflow.py +252 -0
  1598. package/eval/scaffold/python/validation/rubric.py +780 -0
  1599. package/eval/scaffold/python/validation/runner.py +237 -0
  1600. package/eval/scaffold/python/validation/scripts.py +58 -0
  1601. package/eval/scaffold/python/validation/tracing.py +313 -0
  1602. package/eval/scaffold/shell/common.sh +126 -0
  1603. package/eval/scaffold/shell/completion-point.sh +18 -0
  1604. package/eval/scaffold/shell/decision-point.sh +35 -0
  1605. package/eval/scaffold/shell/docker.sh +716 -0
  1606. package/eval/scaffold/shell/native-review-signer-daemon.mjs +144 -0
  1607. package/eval/scaffold/shell/native-review-verifier-daemon.mjs +178 -0
  1608. package/eval/scaffold/shell/run-claude-loop.sh +234 -0
  1609. package/eval/scaffold/shell/setup.sh +259 -0
  1610. package/eval/simulator-instruction.md +9 -0
  1611. package/package.json +98 -18
  1612. package/dist/cli/index.js +0 -84
  1613. package/dist/cli/index.js.map +0 -1
  1614. package/dist/commands/doctor.d.ts.map +0 -1
  1615. package/dist/commands/doctor.js +0 -234
  1616. package/dist/commands/doctor.js.map +0 -1
  1617. package/dist/commands/i18n.d.ts +0 -4
  1618. package/dist/commands/i18n.d.ts.map +0 -1
  1619. package/dist/commands/i18n.js.map +0 -1
  1620. package/dist/commands/init.d.ts +0 -26
  1621. package/dist/commands/init.d.ts.map +0 -1
  1622. package/dist/commands/init.js +0 -352
  1623. package/dist/commands/init.js.map +0 -1
  1624. package/dist/commands/status.d.ts.map +0 -1
  1625. package/dist/commands/status.js +0 -108
  1626. package/dist/commands/status.js.map +0 -1
  1627. package/dist/commands/uninstall.d.ts +0 -9
  1628. package/dist/commands/uninstall.d.ts.map +0 -1
  1629. package/dist/commands/uninstall.js +0 -132
  1630. package/dist/commands/uninstall.js.map +0 -1
  1631. package/dist/commands/update.d.ts +0 -29
  1632. package/dist/commands/update.d.ts.map +0 -1
  1633. package/dist/commands/update.js +0 -293
  1634. package/dist/commands/update.js.map +0 -1
  1635. package/dist/core/codegraph.d.ts +0 -6
  1636. package/dist/core/codegraph.d.ts.map +0 -1
  1637. package/dist/core/codegraph.js +0 -118
  1638. package/dist/core/codegraph.js.map +0 -1
  1639. package/dist/core/command-error.d.ts.map +0 -1
  1640. package/dist/core/command-error.js.map +0 -1
  1641. package/dist/core/detect.d.ts.map +0 -1
  1642. package/dist/core/detect.js.map +0 -1
  1643. package/dist/core/openspec.d.ts +0 -11
  1644. package/dist/core/openspec.d.ts.map +0 -1
  1645. package/dist/core/openspec.js +0 -271
  1646. package/dist/core/openspec.js.map +0 -1
  1647. package/dist/core/platforms.d.ts.map +0 -1
  1648. package/dist/core/platforms.js.map +0 -1
  1649. package/dist/core/skills.d.ts +0 -58
  1650. package/dist/core/skills.d.ts.map +0 -1
  1651. package/dist/core/skills.js +0 -562
  1652. package/dist/core/skills.js.map +0 -1
  1653. package/dist/core/superpowers.d.ts.map +0 -1
  1654. package/dist/core/superpowers.js.map +0 -1
  1655. package/dist/core/types.d.ts +0 -2
  1656. package/dist/core/types.d.ts.map +0 -1
  1657. package/dist/core/uninstall.d.ts +0 -28
  1658. package/dist/core/uninstall.d.ts.map +0 -1
  1659. package/dist/core/uninstall.js +0 -421
  1660. package/dist/core/uninstall.js.map +0 -1
  1661. package/dist/core/version.d.ts.map +0 -1
  1662. package/dist/core/version.js.map +0 -1
  1663. package/dist/utils/file-system.d.ts.map +0 -1
  1664. package/dist/utils/file-system.js.map +0 -1
  1665. /package/dist/{cli → app/cli}/index.d.ts +0 -0
  1666. /package/dist/{commands → app/commands}/status.d.ts +0 -0
  1667. /package/dist/{core → domains/bundle}/types.js +0 -0
  1668. /package/dist/{core → platform/process}/command-error.d.ts +0 -0
  1669. /package/dist/{core → platform/process}/command-error.js +0 -0
  1670. /package/dist/{core → platform/version}/version.d.ts +0 -0
  1671. /package/{assets/skills/comet → eval/local/skills/benchmarks/039-release/comet-classic-039}/scripts/comet-archive.sh +0 -0
  1672. /package/{assets/skills/comet → eval/local/skills/benchmarks/039-release/comet-classic-039}/scripts/comet-env.sh +0 -0
  1673. /package/{assets/skills/comet → eval/local/skills/benchmarks/039-release/comet-classic-039}/scripts/comet-guard.sh +0 -0
  1674. /package/{assets/skills/comet → eval/local/skills/benchmarks/039-release/comet-classic-039}/scripts/comet-handoff.sh +0 -0
  1675. /package/{assets/skills/comet → eval/local/skills/benchmarks/039-release/comet-classic-039}/scripts/comet-hook-guard.sh +0 -0
  1676. /package/{assets/skills/comet → eval/local/skills/benchmarks/039-release/comet-classic-039}/scripts/comet-state.sh +0 -0
  1677. /package/{assets/skills/comet → eval/local/skills/benchmarks/039-release/comet-classic-039}/scripts/comet-yaml-validate.sh +0 -0
  1678. /package/scripts/{postinstall.js → install/postinstall.js} +0 -0
@@ -0,0 +1,1982 @@
1
+ import { promises as fs } from 'fs';
2
+ import path from 'path';
3
+ import { stringify } from 'yaml';
4
+ import { workflowProtocolHash, } from './artifacts.js';
5
+ import { workflowProjectConfigRuntimeHelperScript, } from '../workflow-contract/index.js';
6
+ function compactDescription(value, maxLength = 240) {
7
+ const normalized = value
8
+ .replace(/\s+/gu, ' ')
9
+ .trim()
10
+ .replace(/[.!?。!?]+$/u, '');
11
+ if (normalized.length <= maxLength)
12
+ return normalized;
13
+ return `${normalized.slice(0, maxLength - 1).trimEnd()}…`;
14
+ }
15
+ function factoryEntryDescription(plan) {
16
+ const purpose = compactDescription(plan.description || plan.goal || `run the generated ${plan.name} workflow`);
17
+ return `Use when the user wants the ${plan.name} managed workflow for ${purpose}, explicitly invokes /${plan.name}, or persisted workflow state identifies one unambiguous active run. Route through this entry Skill; do not invoke its internal Node Skills directly.`;
18
+ }
19
+ function factoryNodeDescription(plan, protocol, node, skillName) {
20
+ return `Use only when explicitly invoked as /${skillName} or routed by the ${plan.name} entry/runtime to the ${node.id} Node; complete ${node.label} for ${protocol.name}. Do not use for ordinary standalone tasks or as the workflow entry.`;
21
+ }
22
+ function yamlString(value) {
23
+ return JSON.stringify(value);
24
+ }
25
+ function runtimeEvals() {
26
+ return {
27
+ runtime: [
28
+ {
29
+ id: 'completed',
30
+ scope: 'completion',
31
+ type: 'state_equals',
32
+ field: 'status',
33
+ equals: 'completed',
34
+ },
35
+ ],
36
+ };
37
+ }
38
+ function artifact(path, kind, content, executable = false) {
39
+ return { path, kind, content, ...(executable ? { executable } : {}) };
40
+ }
41
+ function jsonArtifact(artifactPath, value, kind = 'reference') {
42
+ return artifact(artifactPath, kind, `${JSON.stringify(value, null, 2)}\n`);
43
+ }
44
+ function portableScriptAuthorBrief() {
45
+ return `# Script Author Brief
46
+
47
+ Author the script contract for one comet-any authoring lane. This is a portable role brief for platforms that do not support Claude Code custom agents.
48
+
49
+ - Read the assigned workflow protocol and lane instructions.
50
+ - Write only the assigned report path.
51
+ - Do not publish, install, or run destructive commands.
52
+ `;
53
+ }
54
+ function slug(value) {
55
+ return value
56
+ .toLowerCase()
57
+ .replace(/[^a-z0-9._-]+/gu, '-')
58
+ .replace(/^-+|-+$/gu, '');
59
+ }
60
+ function generatedNodeSkillName(workflowName, nodeId) {
61
+ const base = slug(workflowName) || 'workflow';
62
+ const suffix = slug(nodeId) || 'node';
63
+ return `${base}-${suffix}`;
64
+ }
65
+ function workflowContractRoute(protocol) {
66
+ return protocol.nodes.filter((node) => !node.disabled);
67
+ }
68
+ function workflowContractInternalSkillNames(protocol) {
69
+ return workflowContractRoute(protocol).map((node) => generatedNodeSkillName(protocol.name, node.id));
70
+ }
71
+ function nodeAuthoringMode(protocol, _node) {
72
+ return protocol.kind === 'comet-five-phase-overlay' ? 'delegates' : 'substance';
73
+ }
74
+ const AUTHORING_PENDING_MARKER = '<!-- AUTHORING PENDING -->';
75
+ function entryDecisionCoreBody(plan) {
76
+ const draft = plan.contentDrafts?.['SKILL.md'];
77
+ if (draft !== undefined)
78
+ return draft;
79
+ return `${AUTHORING_PENDING_MARKER}\n**Not yet authored.** The Decision Core for this entry — how to detect the current Node, when to pause for the user, and the red flags — must be authored by the workflow-entry lane. Until then, rely on \`workflow-state.mjs next\` for routing and treat the rest of this file as scaffold only.`;
80
+ }
81
+ function nodeGuidanceBody(plan, protocol, node) {
82
+ const nodeSkillPath = `../${generatedNodeSkillName(protocol.name, node.id)}/SKILL.md`;
83
+ const draft = plan.contentDrafts?.[nodeSkillPath];
84
+ if (draft !== undefined)
85
+ return draft;
86
+ if (nodeAuthoringMode(protocol, node) === 'delegates') {
87
+ return `This Node delegates to \`${node.implementation.skill}\`. Load that Skill, apply the Required Skill Calls below, and record the Output Schema evidence before running the Exit Check. Do not duplicate the delegate Skill's body here.`;
88
+ }
89
+ return `${AUTHORING_PENDING_MARKER}\n**Not yet authored.** This substance Node requires its decision content (prerequisites, step-by-step guidance, completion reasoning, red flags) from the skill-core lane. The control-plane sections below are scaffold only; they do not describe *how* to do this Node.`;
90
+ }
91
+ export function computeUnauthoredSubstanceNodes(plan) {
92
+ const protocol = plan.workflowProtocol;
93
+ if (!protocol)
94
+ return [];
95
+ return workflowContractRoute(protocol)
96
+ .filter((node) => nodeAuthoringMode(protocol, node) === 'substance')
97
+ .filter((node) => plan.contentDrafts?.[`../${generatedNodeSkillName(protocol.name, node.id)}/SKILL.md`] ===
98
+ undefined)
99
+ .map((node) => generatedNodeSkillName(protocol.name, node.id));
100
+ }
101
+ export function wrapperClassification(plan) {
102
+ const protocol = plan.workflowProtocol;
103
+ if (!protocol)
104
+ return 'scaffold-blocked';
105
+ if (plan.contentDrafts?.['SKILL.md'] === undefined)
106
+ return 'scaffold-blocked';
107
+ if (computeUnauthoredSubstanceNodes(plan).length > 0)
108
+ return 'scaffold-blocked';
109
+ if (protocol.kind === 'workflow-kernel')
110
+ return 'kernel-authored';
111
+ const hasAdvisoryAugmentation = workflowContractRoute(protocol).some((node) => node.augmentations.some((binding) => binding.enforcement === 'advisory'));
112
+ if (hasAdvisoryAugmentation)
113
+ return 'delegate-advisory';
114
+ return 'delegate-complete';
115
+ }
116
+ function workflowContractEntryMarkdown(plan, protocol, decisionCoreBody) {
117
+ const nodeLines = workflowContractRoute(protocol)
118
+ .map((node, index) => {
119
+ const required = node.requiredSkillCalls.length === 0
120
+ ? ''
121
+ : ` Required Skills: ${node.requiredSkillCalls.map((binding) => `\`${binding.skill}\``).join(', ')}.`;
122
+ const augmentations = node.augmentations.length === 0
123
+ ? ''
124
+ : ` Augmentations: ${node.augmentations.map((binding) => `\`${binding.skill}\` (${binding.enforcement})`).join(', ')}.`;
125
+ const schemas = node.outputSchemas.length === 0
126
+ ? ''
127
+ : ` Output Schemas: ${node.outputSchemas.map((schema) => `\`${schema}\``).join(', ')}.`;
128
+ return `${index + 1}. \`${generatedNodeSkillName(protocol.name, node.id)}\` - ${node.label} (${node.kind}). Responsibility: ${node.responsibility}${required}${augmentations}${schemas}`;
129
+ })
130
+ .join('\n');
131
+ const bindings = workflowContractRoute(protocol)
132
+ .map((node) => `- \`${node.id}\`: implementation \`${node.implementation.skill}\` (${node.implementation.operation}); required calls ${node.requiredSkillCalls.map((binding) => `\`${binding.skill}\``).join(', ') || 'none'}; augmentations ${node.augmentations
133
+ .map((binding) => `\`${binding.skill}\` (${binding.enforcement})`)
134
+ .join(', ') || 'none'}.`)
135
+ .join('\n');
136
+ const guardrails = workflowContractRoute(protocol)
137
+ .flatMap((node) => node.guardrails.map((guardrail) => `- \`${node.id}.${guardrail.id}\`: ${guardrail.label} (${guardrail.validation}).`))
138
+ .join('\n');
139
+ const startupProtocol = protocol.kind === 'comet-five-phase-overlay'
140
+ ? `1. Run \`node ${plan.name}/scripts/workflow-state.mjs status\` to read the active Comet change state.
141
+ 2. If there is no active Comet change, use \`/comet-open\` or the permanent \`/comet-classic\` entry to create or resume one.
142
+ 3. Run \`node ${plan.name}/scripts/workflow-state.mjs next\` and load **only** the returned Skill. Do not load multiple Skills at once.`
143
+ : `1. Run \`node ${plan.name}/scripts/workflow-state.mjs status\` to read current state.
144
+ 2. If the workflow is not started, confirm scope with the user, then run \`node ${plan.name}/scripts/workflow-state.mjs init\`.
145
+ 3. Run \`node ${plan.name}/scripts/workflow-state.mjs next\` and load **only** the returned Skill. Do not load multiple Skills at once.`;
146
+ return `---
147
+ name: ${plan.name}
148
+ description: ${yamlString(factoryEntryDescription(plan))}
149
+ ---
150
+
151
+ # ${protocol.name}
152
+
153
+ ## Decision Core
154
+
155
+ ${decisionCoreBody}
156
+
157
+ ## Workflow Nodes
158
+
159
+ ${nodeLines}
160
+
161
+ ## Skill Bindings
162
+
163
+ ${bindings || '- No Skill bindings.'}
164
+
165
+ ## Guardrails And Evidence
166
+
167
+ ${guardrails || '- No explicit guardrails.'}
168
+
169
+ ## Workflow References
170
+
171
+ - Route, Output Schemas, required Skill calls, and recovery state: \`reference/workflow-protocol.json\`.
172
+ - Resolved source Skill evidence and composition provenance: \`reference/resolved-skills.json\`.
173
+
174
+ ## Runtime And Recovery
175
+
176
+ ### Startup Protocol
177
+
178
+ ${startupProtocol}
179
+
180
+ ### Resume Rules (every context resume)
181
+
182
+ - **Re-detect from scratch**: on every context resume, re-run the Startup Protocol. Do not trust conversation history for current-Node detection — context compaction may have discarded critical state.
183
+ - **Trust files over state**: if the script says a Node is DONE but its expected artifacts or evidence are missing, treat the Node as incomplete and re-enter it. File evidence is the source of truth.
184
+ - **Drift handling**: if the user's request belongs to a different Node than the one returned by \`next\`, pause and confirm which Node to enter. Do not silently follow the script if the user's intent conflicts.
185
+
186
+ ### Node Boundary Rules
187
+
188
+ - Before leaving a Node, run \`node ${plan.name}/scripts/workflow-guard.mjs exit <node> --apply\` to advance state and record evidence.
189
+ - If the guard fails, do not proceed — present the guard output and ask the user how to fix it.
190
+ - If the user wants to redo a completed Node, reset its completion state and re-enter rather than creating a parallel path.
191
+
192
+ The route, Output Schemas, required Skill calls, and recovery state are defined by \`reference/workflow-protocol.json\`.
193
+ `;
194
+ }
195
+ function bindingCheckId(kind, node, skill) {
196
+ return `${kind}:${node.id}.${skill}`;
197
+ }
198
+ function requiredSkillCallMarkdown(node) {
199
+ if (node.requiredSkillCalls.length === 0)
200
+ return '- This Node has no extra required Skill calls.';
201
+ return node.requiredSkillCalls
202
+ .map((binding) => {
203
+ const check = bindingCheckId('required-skill', node, binding.skill);
204
+ const reason = binding.reason ? ` Reason: ${binding.reason}` : '';
205
+ if (binding.scope === 'handoff') {
206
+ return `- When delegating this Node, the handoff prompt must require loading \`${binding.skill}\` and returning evidence with completed check \`${check}\`.${reason}`;
207
+ }
208
+ return `- Load \`${binding.skill}\` during this Node and record completed check \`${check}\`.${reason}`;
209
+ })
210
+ .join('\n');
211
+ }
212
+ function augmentationMarkdown(node) {
213
+ if (node.augmentations.length === 0)
214
+ return '- This Node has no declared augmentations.';
215
+ return node.augmentations
216
+ .map((binding) => {
217
+ const check = bindingCheckId('augmentation', node, binding.skill);
218
+ const reason = binding.reason ? ` Reason: ${binding.reason}` : '';
219
+ return `- \`${binding.skill}\` (${binding.scope}, ${binding.enforcement}): record completed check \`${check}\`.${reason}`;
220
+ })
221
+ .join('\n');
222
+ }
223
+ function outputSchemaMarkdown(protocol, node) {
224
+ if (node.outputSchemas.length === 0)
225
+ return '- This Node has no declared Output Schema.';
226
+ return node.outputSchemas
227
+ .map((schemaId) => {
228
+ const schema = protocol.outputSchemas.find((item) => item.id === schemaId);
229
+ if (!schema)
230
+ return `- \`${schemaId}\` (missing schema definition)`;
231
+ const evidence = schema.evidence
232
+ .filter((item) => item.required)
233
+ .map((item) => `\`${item.id}\``)
234
+ .join(', ');
235
+ const artifacts = schema.artifacts
236
+ .filter((item) => item.required)
237
+ .map((item) => `\`${item.id}\` at ${item.paths.map((schemaPath) => `\`${schemaPath}\``).join(' or ')}`)
238
+ .join('; ');
239
+ return `- \`${schema.id}\`: ${schema.description} Required evidence: ${evidence || 'none'}. Required artifacts: ${artifacts || 'none'}.`;
240
+ })
241
+ .join('\n');
242
+ }
243
+ function workflowContractNodeMarkdown(plan, protocol, node, guidanceBody) {
244
+ const skillName = generatedNodeSkillName(protocol.name, node.id);
245
+ const next = workflowContractRoute(protocol)[workflowContractRoute(protocol).findIndex((item) => item.id === node.id) + 1];
246
+ const schemaLines = outputSchemaMarkdown(protocol, node);
247
+ const guardrailLines = node.guardrails.length === 0
248
+ ? '- This Node has no explicit guardrails.'
249
+ : node.guardrails
250
+ .map((guardrail) => `- \`${guardrail.id}\`: ${guardrail.label} (${guardrail.validation}).`)
251
+ .join('\n');
252
+ return `---
253
+ name: ${skillName}
254
+ description: ${yamlString(factoryNodeDescription(plan, protocol, node, skillName))}
255
+ ---
256
+
257
+ # ${node.label}
258
+
259
+ ## Node Goal
260
+
261
+ Complete the \`${node.id}\` Node for \`${protocol.name}\`.
262
+
263
+ Responsibility: ${node.responsibility}
264
+
265
+ ## Guidance
266
+
267
+ ${guidanceBody}
268
+
269
+ ## Entry Check
270
+
271
+ \`\`\`bash
272
+ node ${plan.name}/scripts/workflow-guard.mjs entry ${node.id}
273
+ \`\`\`
274
+
275
+ ## Skill Implementation
276
+
277
+ Load \`${node.implementation.skill}\` for this Node. Operation: \`${node.implementation.operation}\`.
278
+
279
+ ## Required Skill Calls
280
+
281
+ ${requiredSkillCallMarkdown(node)}
282
+
283
+ ## Augmentations
284
+
285
+ ${augmentationMarkdown(node)}
286
+
287
+ ## Output Schemas
288
+
289
+ ${schemaLines}
290
+
291
+ ## Evidence Record
292
+
293
+ \`\`\`bash
294
+ node ${plan.name}/scripts/workflow-state.mjs record ${node.id} '{"summary":"record the real Node result","completedChecks":[]}'
295
+ \`\`\`
296
+
297
+ ## Guardrails
298
+
299
+ ${guardrailLines}
300
+
301
+ ## Exit Check
302
+
303
+ \`\`\`bash
304
+ node ${plan.name}/scripts/workflow-guard.mjs exit ${node.id} --apply
305
+ \`\`\`
306
+
307
+ ${next ? `If the script prints \`SKILL: ${generatedNodeSkillName(protocol.name, next.id)}\`, load that Skill next.` : 'If the script prints `NEXT: done`, summarize the workflow evidence and stop.'}
308
+
309
+ ## Recovery
310
+
311
+ Read \`reference/workflow-protocol.json\` and the configured workflow state. Resume the first Node that is not listed in \`${protocol.state.completedNodesField}\`.
312
+ `;
313
+ }
314
+ function workflowContractPlanScript() {
315
+ return `#!/usr/bin/env node
316
+ import './workflow-state.mjs';
317
+ `;
318
+ }
319
+ function workflowContractCheckScript(requiredFiles) {
320
+ return `#!/usr/bin/env node
321
+ import { promises as fs } from 'fs';
322
+ import path from 'path';
323
+ import { fileURLToPath } from 'url';
324
+
325
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
326
+ const packageRoot = path.resolve(__dirname, '..');
327
+ const required = ${JSON.stringify(requiredFiles, null, 2)};
328
+
329
+ async function main() {
330
+ const missing = [];
331
+ for (const relative of required) {
332
+ try {
333
+ const stats = await fs.stat(path.join(packageRoot, relative));
334
+ if (!stats.isFile()) missing.push(relative);
335
+ } catch {
336
+ missing.push(relative);
337
+ }
338
+ }
339
+ if (missing.length > 0) {
340
+ console.error('Missing required workflow contract files: ' + missing.join(', '));
341
+ process.exit(1);
342
+ }
343
+ const protocol = JSON.parse(await fs.readFile(path.join(packageRoot, 'reference', 'workflow-protocol.json'), 'utf8'));
344
+ if (protocol.schemaVersion !== 1 || !Array.isArray(protocol.nodes)) {
345
+ throw new Error('workflow-protocol.json must use the current schema with nodes');
346
+ }
347
+ console.log('workflow-contract-ok');
348
+ }
349
+
350
+ main().catch((error) => {
351
+ console.error(error.message);
352
+ process.exit(1);
353
+ });
354
+ `;
355
+ }
356
+ function workflowContractOverlayHelperScript() {
357
+ return `
358
+ ${workflowProjectConfigRuntimeHelperScript()}
359
+
360
+ function isCometOverlay(protocol) {
361
+ return protocol.kind === 'comet-five-phase-overlay';
362
+ }
363
+
364
+ function parseSimpleYaml(raw) {
365
+ const state = {};
366
+ for (const line of String(raw).split(/\\r?\\n/u)) {
367
+ const trimmed = line.trim();
368
+ if (!trimmed || trimmed.startsWith('#')) continue;
369
+ const match = /^([^:#][^:]*):\\s*(.*)$/u.exec(line);
370
+ if (!match) continue;
371
+ const key = match[1].trim();
372
+ let value = match[2].trim();
373
+ const commentIndex = value.indexOf(' #');
374
+ if (commentIndex >= 0) value = value.slice(0, commentIndex).trim();
375
+ if (value === 'true') state[key] = true;
376
+ else if (value === 'false') state[key] = false;
377
+ else if (value === 'null') state[key] = null;
378
+ else if (
379
+ (value.startsWith('"') && value.endsWith('"')) ||
380
+ (value.startsWith("'") && value.endsWith("'"))
381
+ ) {
382
+ state[key] = value.slice(1, -1);
383
+ } else {
384
+ state[key] = value;
385
+ }
386
+ }
387
+ return state;
388
+ }
389
+
390
+ async function workflowPathBaseRoot(pathBase) {
391
+ if (pathBase === undefined || pathBase === 'project') {
392
+ await inspectWorkflowProtectedPath(runRoot, runRoot, 'workflow path base', 'directory');
393
+ return runRoot;
394
+ }
395
+ const config = await readWorkflowProjectPathConfig(runRoot);
396
+ let resolved;
397
+ let configuredClassicRoot = null;
398
+ let alternateClassicRoot = null;
399
+ if (pathBase === 'classic-openspec-root' || pathBase === 'classic-superpowers-root') {
400
+ if (!config.classicEnabled || config.classicArtifactLayout === null) {
401
+ throw new Error('Classic workflow is not enabled by .comet/config.yaml');
402
+ }
403
+ configuredClassicRoot = config.classicArtifactLayout === 'docs'
404
+ ? path.join(runRoot, 'docs', 'openspec')
405
+ : path.join(runRoot, 'openspec');
406
+ alternateClassicRoot = config.classicArtifactLayout === 'docs'
407
+ ? path.join(runRoot, 'openspec')
408
+ : path.join(runRoot, 'docs', 'openspec');
409
+ }
410
+ if (pathBase === 'classic-openspec-root') {
411
+ resolved = configuredClassicRoot;
412
+ } else if (pathBase === 'classic-superpowers-root') {
413
+ resolved = path.join(runRoot, 'docs', 'superpowers');
414
+ } else if (pathBase === 'native-root') {
415
+ if (!config.nativeEnabled || config.nativeArtifactRoot === null) {
416
+ throw new Error('Native workflow is not enabled by .comet/config.yaml');
417
+ }
418
+ resolved = resolveWorkflowRelativePath(
419
+ runRoot,
420
+ config.nativeArtifactRoot,
421
+ 'native.artifact_root',
422
+ ).target;
423
+ } else {
424
+ resolved = runRoot;
425
+ }
426
+ if (configuredClassicRoot !== null && alternateClassicRoot !== null) {
427
+ const [configuredInspection, alternateInspection] = await Promise.all([
428
+ inspectWorkflowProtectedPath(
429
+ runRoot,
430
+ configuredClassicRoot,
431
+ 'configured Classic OpenSpec root',
432
+ 'directory',
433
+ ),
434
+ inspectWorkflowProtectedPath(
435
+ runRoot,
436
+ alternateClassicRoot,
437
+ 'alternate Classic OpenSpec root',
438
+ 'directory',
439
+ ),
440
+ ]);
441
+ if (!configuredInspection.exists) {
442
+ throw new Error('Configured Classic OpenSpec root does not exist: ' + configuredClassicRoot);
443
+ }
444
+ if (alternateInspection.exists) {
445
+ throw new Error('Classic layout conflict: both configured and alternate OpenSpec roots exist');
446
+ }
447
+ }
448
+ const rootInspection = await inspectWorkflowProtectedPath(
449
+ runRoot,
450
+ resolved,
451
+ 'workflow path base',
452
+ 'directory',
453
+ );
454
+ if (!rootInspection.exists) {
455
+ const label =
456
+ pathBase === 'classic-openspec-root'
457
+ ? 'Configured Classic OpenSpec root'
458
+ : pathBase === 'classic-superpowers-root'
459
+ ? 'Configured Classic Superpowers root'
460
+ : pathBase === 'native-root'
461
+ ? 'Configured Native artifact root'
462
+ : 'Workflow path base';
463
+ throw new Error(label + ' does not exist: ' + resolved);
464
+ }
465
+ return resolved;
466
+ }
467
+
468
+ async function activeCometChanges() {
469
+ const changesRoot = path.join(await workflowPathBaseRoot('classic-openspec-root'), 'changes');
470
+ const inspection = await inspectWorkflowProtectedPath(
471
+ runRoot,
472
+ changesRoot,
473
+ 'Classic changes root',
474
+ 'directory',
475
+ );
476
+ if (!inspection.exists) return [];
477
+ let entries;
478
+ try {
479
+ entries = await fs.readdir(changesRoot, { withFileTypes: true });
480
+ } catch (error) {
481
+ if (error && typeof error === 'object' && error.code === 'ENOENT') return [];
482
+ throw error;
483
+ }
484
+ const changes = [];
485
+ for (const entry of entries) {
486
+ if (entry.isSymbolicLink()) {
487
+ throw new Error(
488
+ 'Classic changes root crosses a symbolic link or junction at ' + entry.name,
489
+ );
490
+ }
491
+ if (!entry.isDirectory()) continue;
492
+ const changeRoot = path.join(changesRoot, entry.name);
493
+ await inspectWorkflowProtectedPath(
494
+ runRoot,
495
+ changeRoot,
496
+ 'Classic change directory',
497
+ 'directory',
498
+ );
499
+ const statePath = path.join(changeRoot, '.comet.yaml');
500
+ const stateInspection = await inspectWorkflowProtectedPath(
501
+ runRoot,
502
+ statePath,
503
+ 'Classic change state',
504
+ 'file',
505
+ );
506
+ if (!stateInspection.exists) continue;
507
+ let state;
508
+ try {
509
+ state = parseSimpleYaml(
510
+ (
511
+ await readWorkflowProtectedFile(
512
+ runRoot,
513
+ statePath,
514
+ 'Classic change state',
515
+ WORKFLOW_PROJECT_FILE_MAX_BYTES,
516
+ )
517
+ ).toString('utf8'),
518
+ );
519
+ await inspectWorkflowProtectedPath(
520
+ runRoot,
521
+ statePath,
522
+ 'Classic change state',
523
+ 'file',
524
+ );
525
+ } catch (error) {
526
+ if (error && typeof error === 'object' && error.code === 'ENOENT') continue;
527
+ throw error;
528
+ }
529
+ const archived = state.archived === true || String(state.archived ?? '').toLowerCase() === 'true';
530
+ if (!archived) changes.push({ name: entry.name, statePath, state });
531
+ }
532
+ return changes.sort((left, right) => left.name.localeCompare(right.name));
533
+ }
534
+
535
+ async function resolveCometOverlayChange() {
536
+ const changes = await activeCometChanges();
537
+ if (changes.length === 0) {
538
+ throw new Error(
539
+ 'No active Comet change; use /comet-open or the permanent /comet-classic entry to create one.',
540
+ );
541
+ }
542
+ if (changes.length > 1) {
543
+ throw new Error(
544
+ 'Multiple active Comet changes: ' +
545
+ changes.map((change) => change.name).join(', ') +
546
+ '. Ask the user which change to resume.',
547
+ );
548
+ }
549
+ return changes[0];
550
+ }
551
+
552
+ function hasOverlayEvidence(evidence, nodeId) {
553
+ const value = evidence && typeof evidence === 'object' ? evidence[nodeId] : null;
554
+ return !!(value && typeof value === 'object' && !Array.isArray(value));
555
+ }
556
+
557
+ function hasGeneratedPlan(state) {
558
+ if (!Object.prototype.hasOwnProperty.call(state, 'plan')) return false;
559
+ const value = state.plan;
560
+ if (value === null || value === undefined) return false;
561
+ if (typeof value === 'string') {
562
+ const normalized = value.trim().toLowerCase();
563
+ return normalized !== '' && normalized !== 'null';
564
+ }
565
+ return true;
566
+ }
567
+
568
+ function overlayBuildExecutionNode(state) {
569
+ if (
570
+ state.build_mode === 'subagent-driven-development' &&
571
+ state.subagent_dispatch === 'confirmed'
572
+ ) {
573
+ return 'subagent-execute';
574
+ }
575
+ return 'execute';
576
+ }
577
+
578
+ function overlayNodeFromState(state, evidence = {}) {
579
+ const phase = String(state.phase ?? '').trim();
580
+ if (phase === 'open') return 'open';
581
+ if (phase === 'design') return 'design';
582
+ if (phase === 'build') {
583
+ if (state.build_pause === 'plan-ready' || !hasGeneratedPlan(state)) {
584
+ return 'plan';
585
+ }
586
+ const executionNode = overlayBuildExecutionNode(state);
587
+ if (!hasOverlayEvidence(evidence, executionNode)) return executionNode;
588
+ if (String(state.review_mode ?? 'off') !== 'off') return 'review';
589
+ return executionNode;
590
+ }
591
+ if (phase === 'verify') return 'verify';
592
+ if (phase === 'archive') return 'archive';
593
+ return null;
594
+ }
595
+
596
+ function evidencePathFor(protocol, change) {
597
+ const changeName = typeof change === 'string' ? change : change.name;
598
+ return resolveWorkflowRelativePath(
599
+ runRoot,
600
+ ['.comet', 'workflow-evidence', changeName, protocol.name + '.json'].join('/'),
601
+ 'workflow evidence path',
602
+ ).target;
603
+ }
604
+
605
+ async function readOverlayEvidence(protocol, change) {
606
+ const file = evidencePathFor(protocol, change);
607
+ try {
608
+ const inspection = await inspectWorkflowProtectedPath(
609
+ runRoot,
610
+ file,
611
+ 'workflow evidence file',
612
+ 'file',
613
+ );
614
+ if (!inspection.exists) return {};
615
+ const parsed = JSON.parse(
616
+ (
617
+ await readWorkflowProtectedFile(
618
+ runRoot,
619
+ file,
620
+ 'workflow evidence file',
621
+ WORKFLOW_PROJECT_FILE_MAX_BYTES,
622
+ )
623
+ ).toString('utf8'),
624
+ );
625
+ return parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : {};
626
+ } catch (error) {
627
+ if (error && typeof error === 'object' && error.code === 'ENOENT') return {};
628
+ throw error;
629
+ }
630
+ }
631
+
632
+ async function workflowProtectedDirectorySnapshot(projectRoot, directory, label) {
633
+ const inspection = await inspectWorkflowProtectedPath(
634
+ projectRoot,
635
+ directory,
636
+ label,
637
+ 'directory',
638
+ );
639
+ if (!inspection.exists) {
640
+ throw new Error(label + ' does not exist');
641
+ }
642
+ const stat = await fs.lstat(directory, { bigint: true });
643
+ if (!stat.isDirectory() || stat.isSymbolicLink()) {
644
+ throw new Error(label + ' must be a real directory');
645
+ }
646
+ return {
647
+ stat,
648
+ realPath: await fs.realpath(directory),
649
+ };
650
+ }
651
+
652
+ async function assertWorkflowProtectedDirectorySnapshot(
653
+ projectRoot,
654
+ directory,
655
+ label,
656
+ expected,
657
+ ) {
658
+ const actual = await workflowProtectedDirectorySnapshot(
659
+ projectRoot,
660
+ directory,
661
+ label,
662
+ );
663
+ if (
664
+ actual.realPath !== expected.realPath ||
665
+ !workflowSameFileObject(
666
+ workflowFileObjectIdentity(actual.stat),
667
+ workflowFileObjectIdentity(expected.stat),
668
+ )
669
+ ) {
670
+ throw new Error(label + ' changed before commit');
671
+ }
672
+ }
673
+
674
+ async function ensureWorkflowProtectedDirectory(projectRoot, directory, label) {
675
+ const root = path.resolve(projectRoot);
676
+ const target = path.resolve(directory);
677
+ if (!workflowPathInside(root, target)) {
678
+ throw new Error(label + ' must stay inside the project root');
679
+ }
680
+ const relative = path.relative(root, target);
681
+ const segments = relative === '' ? [] : relative.split(path.sep);
682
+ let cursor = root;
683
+ await inspectWorkflowProtectedPath(root, cursor, label, 'directory');
684
+ for (const segment of segments) {
685
+ const parent = cursor;
686
+ cursor = path.join(cursor, segment);
687
+ const inspection = await inspectWorkflowProtectedPath(
688
+ root,
689
+ cursor,
690
+ label,
691
+ 'directory',
692
+ );
693
+ if (!inspection.exists) {
694
+ const parentSnapshot = await workflowProtectedDirectorySnapshot(
695
+ root,
696
+ parent,
697
+ label + ' parent',
698
+ );
699
+ try {
700
+ await fs.mkdir(cursor);
701
+ } catch (error) {
702
+ if (!error || typeof error !== 'object' || error.code !== 'EEXIST') {
703
+ throw error;
704
+ }
705
+ }
706
+ await assertWorkflowProtectedDirectorySnapshot(
707
+ root,
708
+ parent,
709
+ label + ' parent',
710
+ parentSnapshot,
711
+ );
712
+ }
713
+ const created = await inspectWorkflowProtectedPath(
714
+ root,
715
+ cursor,
716
+ label,
717
+ 'directory',
718
+ );
719
+ if (!created.exists) {
720
+ throw new Error(label + ' could not be created safely');
721
+ }
722
+ }
723
+ }
724
+
725
+ async function workflowProtectedTargetSnapshot(projectRoot, file, label) {
726
+ const inspection = await inspectWorkflowProtectedPath(
727
+ projectRoot,
728
+ file,
729
+ label,
730
+ 'file',
731
+ );
732
+ if (!inspection.exists) return { exists: false };
733
+ const stat = await fs.lstat(file, { bigint: true });
734
+ if (!stat.isFile() || stat.isSymbolicLink()) {
735
+ throw new Error(label + ' must be a real file');
736
+ }
737
+ return {
738
+ exists: true,
739
+ stat,
740
+ realPath: await fs.realpath(file),
741
+ };
742
+ }
743
+
744
+ async function assertWorkflowProtectedTargetSnapshot(
745
+ projectRoot,
746
+ file,
747
+ label,
748
+ expected,
749
+ ) {
750
+ const actual = await workflowProtectedTargetSnapshot(projectRoot, file, label);
751
+ if (actual.exists !== expected.exists) {
752
+ throw new Error(label + ' changed before commit');
753
+ }
754
+ if (
755
+ actual.exists &&
756
+ expected.exists &&
757
+ (actual.realPath !== expected.realPath ||
758
+ !workflowSameFileStat(actual.stat, expected.stat))
759
+ ) {
760
+ throw new Error(label + ' changed before commit');
761
+ }
762
+ }
763
+
764
+ async function writeWorkflowProtectedFile(
765
+ projectRoot,
766
+ file,
767
+ label,
768
+ value,
769
+ maxBytes,
770
+ ) {
771
+ const bytes = Buffer.isBuffer(value) ? value : Buffer.from(String(value), 'utf8');
772
+ if (!Number.isSafeInteger(maxBytes) || maxBytes < 1) {
773
+ throw new Error(label + ' byte limit must be a positive integer');
774
+ }
775
+ if (bytes.length > maxBytes) {
776
+ throw new Error(label + ' exceeds ' + String(maxBytes) + ' bytes');
777
+ }
778
+ const root = path.resolve(projectRoot);
779
+ const target = path.resolve(file);
780
+ const directory = path.dirname(target);
781
+ await ensureWorkflowProtectedDirectory(root, directory, label + ' directory');
782
+ const directorySnapshot = await workflowProtectedDirectorySnapshot(
783
+ root,
784
+ directory,
785
+ label + ' directory',
786
+ );
787
+ const targetSnapshot = await workflowProtectedTargetSnapshot(root, target, label);
788
+ await assertWorkflowProtectedDirectorySnapshot(
789
+ root,
790
+ directory,
791
+ label + ' directory',
792
+ directorySnapshot,
793
+ );
794
+ await assertWorkflowProtectedTargetSnapshot(root, target, label, targetSnapshot);
795
+
796
+ const temporary = path.join(
797
+ directory,
798
+ '.' +
799
+ path.basename(target) +
800
+ '.' +
801
+ String(process.pid) +
802
+ '.' +
803
+ String(Date.now()) +
804
+ '.' +
805
+ Math.random().toString(16).slice(2) +
806
+ '.tmp',
807
+ );
808
+ const flags =
809
+ fsConstants.O_WRONLY |
810
+ fsConstants.O_CREAT |
811
+ fsConstants.O_EXCL |
812
+ (process.platform === 'win32' ? 0 : fsConstants.O_NOFOLLOW);
813
+ let handle;
814
+ let committed = false;
815
+ try {
816
+ await assertWorkflowProtectedDirectorySnapshot(
817
+ root,
818
+ directory,
819
+ label + ' directory',
820
+ directorySnapshot,
821
+ );
822
+ handle = await fs.open(temporary, flags, 0o600);
823
+ await handle.writeFile(bytes);
824
+ await handle.sync();
825
+ const temporaryStat = await handle.stat({ bigint: true });
826
+ if (!temporaryStat.isFile()) {
827
+ throw new Error(label + ' temporary path must be a real file');
828
+ }
829
+ await handle.close();
830
+ handle = undefined;
831
+ await inspectWorkflowProtectedPath(
832
+ root,
833
+ temporary,
834
+ label + ' temporary file',
835
+ 'file',
836
+ );
837
+ await assertWorkflowProtectedDirectorySnapshot(
838
+ root,
839
+ directory,
840
+ label + ' directory',
841
+ directorySnapshot,
842
+ );
843
+ await assertWorkflowProtectedTargetSnapshot(root, target, label, targetSnapshot);
844
+ await fs.rename(temporary, target);
845
+ committed = true;
846
+ await inspectWorkflowProtectedPath(root, target, label, 'file');
847
+ await assertWorkflowProtectedDirectorySnapshot(
848
+ root,
849
+ directory,
850
+ label + ' directory',
851
+ directorySnapshot,
852
+ );
853
+ } finally {
854
+ if (handle) {
855
+ await handle.close().catch(() => {});
856
+ }
857
+ if (!committed) {
858
+ try {
859
+ await assertWorkflowProtectedDirectorySnapshot(
860
+ root,
861
+ directory,
862
+ label + ' directory',
863
+ directorySnapshot,
864
+ );
865
+ await fs.rm(temporary, { force: true });
866
+ } catch {
867
+ // Do not follow a replaced parent during cleanup.
868
+ }
869
+ }
870
+ }
871
+ }
872
+
873
+ async function writeOverlayEvidence(protocol, change, value) {
874
+ const file = evidencePathFor(protocol, change);
875
+ await writeWorkflowProtectedFile(
876
+ runRoot,
877
+ file,
878
+ 'workflow evidence file',
879
+ JSON.stringify(value, null, 2) + '\\n',
880
+ WORKFLOW_PROJECT_FILE_MAX_BYTES,
881
+ );
882
+ }
883
+ `;
884
+ }
885
+ function workflowContractHookGuardScript() {
886
+ return `#!/usr/bin/env node
887
+ import { constants as fsConstants, promises as fs } from 'fs';
888
+ import path from 'path';
889
+ import { fileURLToPath } from 'url';
890
+
891
+ const event = process.argv[2] ?? 'before_tool';
892
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
893
+ const packageRoot = path.resolve(__dirname, '..');
894
+ const runRoot = process.env.COMET_RUN_ROOT ? path.resolve(process.env.COMET_RUN_ROOT) : process.cwd();
895
+ const protocolPath = path.join(packageRoot, 'reference', 'workflow-protocol.json');
896
+ ${workflowContractOverlayHelperScript()}
897
+
898
+ async function statePath(protocol) {
899
+ const preferred = String(protocol.state?.statePath ?? '');
900
+ const target = resolveWorkflowRelativePath(
901
+ runRoot,
902
+ preferred,
903
+ 'workflow-run statePath',
904
+ ).target;
905
+ await inspectWorkflowProtectedPath(
906
+ runRoot,
907
+ target,
908
+ 'workflow-run statePath',
909
+ 'file',
910
+ );
911
+ return target;
912
+ }
913
+
914
+ async function readJson(file) {
915
+ return JSON.parse(await fs.readFile(file, 'utf8'));
916
+ }
917
+
918
+ async function readStateJson(file) {
919
+ return JSON.parse(
920
+ (
921
+ await readWorkflowProtectedFile(
922
+ runRoot,
923
+ file,
924
+ 'workflow-run state',
925
+ WORKFLOW_PROJECT_FILE_MAX_BYTES,
926
+ )
927
+ ).toString('utf8'),
928
+ );
929
+ }
930
+
931
+ function route(protocol) {
932
+ return (protocol.nodes ?? []).filter((node) => !node.disabled);
933
+ }
934
+
935
+ function completedSet(state) {
936
+ return new Set(Array.isArray(state.completedNodes) ? state.completedNodes : []);
937
+ }
938
+
939
+ function nextNode(protocol, state) {
940
+ const completed = completedSet(state);
941
+ return route(protocol).find((node) => !completed.has(node.id)) ?? null;
942
+ }
943
+
944
+ async function main() {
945
+ const protocol = await readJson(protocolPath);
946
+ if (protocol.schemaVersion !== 1 || !Array.isArray(protocol.nodes)) {
947
+ throw new Error('workflow-protocol.json must use the current schema with nodes');
948
+ }
949
+ const nodes = route(protocol);
950
+ if (nodes.length === 0) {
951
+ throw new Error('workflow protocol has no enabled nodes');
952
+ }
953
+ if (isCometOverlay(protocol)) {
954
+ const change = await resolveCometOverlayChange();
955
+ const evidence = await readOverlayEvidence(protocol, change);
956
+ const current = overlayNodeFromState(change.state, evidence);
957
+ if (!current || !nodes.some((node) => node.id === current)) {
958
+ throw new Error('active Comet change has no valid workflow Node');
959
+ }
960
+ console.log('workflow-hook-guard-ok');
961
+ console.log('EVENT: ' + event);
962
+ console.log('NODE: ' + current);
963
+ return;
964
+ }
965
+ let state;
966
+ try {
967
+ state = await readStateJson(await statePath(protocol));
968
+ } catch (error) {
969
+ if (error && typeof error === 'object' && error.code === 'ENOENT') {
970
+ throw new Error('workflow state is missing; run workflow-state.mjs init first');
971
+ }
972
+ throw error;
973
+ }
974
+ if (state.workflow !== protocol.name) {
975
+ throw new Error('workflow state does not match this workflow protocol');
976
+ }
977
+ if (state.status !== 'running') {
978
+ throw new Error('workflow is not running; current status is ' + String(state.status));
979
+ }
980
+ const current = state.currentNode ?? nextNode(protocol, state)?.id ?? null;
981
+ if (!current || !nodes.some((node) => node.id === current)) {
982
+ throw new Error('workflow state has no valid current Node');
983
+ }
984
+ console.log('workflow-hook-guard-ok');
985
+ console.log('EVENT: ' + event);
986
+ console.log('NODE: ' + current);
987
+ }
988
+
989
+ main().catch((error) => {
990
+ console.error(error.message);
991
+ process.exit(1);
992
+ });
993
+ `;
994
+ }
995
+ function workflowContractStateScript() {
996
+ return `#!/usr/bin/env node
997
+ import { constants as fsConstants, promises as fs } from 'fs';
998
+ import path from 'path';
999
+ import { fileURLToPath } from 'url';
1000
+
1001
+ const command = process.argv[2] ?? 'status';
1002
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
1003
+ const packageRoot = path.resolve(__dirname, '..');
1004
+ const runRoot = process.env.COMET_RUN_ROOT ? path.resolve(process.env.COMET_RUN_ROOT) : process.cwd();
1005
+ const protocolPath = path.join(packageRoot, 'reference', 'workflow-protocol.json');
1006
+ ${workflowContractOverlayHelperScript()}
1007
+
1008
+ function slug(value) {
1009
+ return String(value).toLowerCase().replace(/[^a-z0-9._-]+/gu, '-').replace(/^-+|-+$/gu, '');
1010
+ }
1011
+
1012
+ function generatedNodeSkillName(protocol, nodeId) {
1013
+ return (slug(protocol.name) || 'workflow') + '-' + (slug(nodeId) || 'node');
1014
+ }
1015
+
1016
+ async function statePath(protocol) {
1017
+ const preferred = String(protocol.state?.statePath ?? '');
1018
+ const target = resolveWorkflowRelativePath(
1019
+ runRoot,
1020
+ preferred,
1021
+ 'workflow-run statePath',
1022
+ ).target;
1023
+ await inspectWorkflowProtectedPath(
1024
+ runRoot,
1025
+ target,
1026
+ 'workflow-run statePath',
1027
+ 'file',
1028
+ );
1029
+ return target;
1030
+ }
1031
+
1032
+ async function readJson(file) {
1033
+ return JSON.parse(await fs.readFile(file, 'utf8'));
1034
+ }
1035
+
1036
+ async function readStateJson(file) {
1037
+ return JSON.parse(
1038
+ (
1039
+ await readWorkflowProtectedFile(
1040
+ runRoot,
1041
+ file,
1042
+ 'workflow-run state',
1043
+ WORKFLOW_PROJECT_FILE_MAX_BYTES,
1044
+ )
1045
+ ).toString('utf8'),
1046
+ );
1047
+ }
1048
+
1049
+ async function writeJson(file, value) {
1050
+ await writeWorkflowProtectedFile(
1051
+ runRoot,
1052
+ file,
1053
+ 'workflow-run state',
1054
+ JSON.stringify(value, null, 2) + '\\n',
1055
+ WORKFLOW_PROJECT_FILE_MAX_BYTES,
1056
+ );
1057
+ }
1058
+
1059
+ function route(protocol) {
1060
+ return (protocol.nodes ?? []).filter((node) => !node.disabled);
1061
+ }
1062
+
1063
+ function completedSet(state) {
1064
+ return new Set(Array.isArray(state.completedNodes) ? state.completedNodes : []);
1065
+ }
1066
+
1067
+ function nextNode(protocol, state) {
1068
+ const completed = completedSet(state);
1069
+ return route(protocol).find((node) => !completed.has(node.id)) ?? null;
1070
+ }
1071
+
1072
+ function printNext(protocol, node) {
1073
+ if (!node) {
1074
+ console.log('NEXT: done');
1075
+ return;
1076
+ }
1077
+ console.log('NEXT: auto');
1078
+ console.log('NODE: ' + node.id);
1079
+ console.log('SKILL: ' + generatedNodeSkillName(protocol, node.id));
1080
+ }
1081
+
1082
+ function parseEvidence(raw) {
1083
+ if (!raw || raw.trim().length === 0) return {};
1084
+ try {
1085
+ const parsed = JSON.parse(raw);
1086
+ return parsed && typeof parsed === 'object' && !Array.isArray(parsed) ? parsed : { value: parsed };
1087
+ } catch {
1088
+ return { summary: raw };
1089
+ }
1090
+ }
1091
+
1092
+ async function readState(protocol) {
1093
+ try {
1094
+ return await readStateJson(await statePath(protocol));
1095
+ } catch (error) {
1096
+ if (error && typeof error === 'object' && error.code === 'ENOENT') {
1097
+ throw new Error('Missing workflow state. Run workflow-state.mjs init first.');
1098
+ }
1099
+ throw error;
1100
+ }
1101
+ }
1102
+
1103
+ async function main() {
1104
+ const protocol = await readJson(protocolPath);
1105
+ if (protocol.schemaVersion !== 1 || !Array.isArray(protocol.nodes)) {
1106
+ throw new Error('workflow-protocol.json must use the current schema with nodes');
1107
+ }
1108
+ if (isCometOverlay(protocol)) {
1109
+ if (command === 'init') {
1110
+ throw new Error(
1111
+ 'Comet overlay state is created by /comet-open; use the permanent /comet-classic entry to start a change.',
1112
+ );
1113
+ }
1114
+ if (command === 'status') {
1115
+ try {
1116
+ const change = await resolveCometOverlayChange();
1117
+ const evidence = await readOverlayEvidence(protocol, change);
1118
+ const currentNode = overlayNodeFromState(change.state, evidence);
1119
+ console.log(
1120
+ JSON.stringify(
1121
+ {
1122
+ status: 'running',
1123
+ change: change.name,
1124
+ statePath: change.statePath,
1125
+ currentNode,
1126
+ phase: change.state.phase ?? null,
1127
+ },
1128
+ null,
1129
+ 2,
1130
+ ),
1131
+ );
1132
+ } catch (error) {
1133
+ console.log(
1134
+ JSON.stringify(
1135
+ { status: 'blocked', reason: error instanceof Error ? error.message : String(error) },
1136
+ null,
1137
+ 2,
1138
+ ),
1139
+ );
1140
+ }
1141
+ return;
1142
+ }
1143
+ if (command === 'next') {
1144
+ const change = await resolveCometOverlayChange();
1145
+ const evidence = await readOverlayEvidence(protocol, change);
1146
+ const nodeId = overlayNodeFromState(change.state, evidence);
1147
+ printNext(protocol, route(protocol).find((node) => node.id === nodeId) ?? null);
1148
+ return;
1149
+ }
1150
+ if (command === 'record') {
1151
+ const nodeId = process.argv[3];
1152
+ if (!nodeId) throw new Error('record requires a Node id.');
1153
+ const node = route(protocol).find((item) => item.id === nodeId || generatedNodeSkillName(protocol, item.id) === nodeId);
1154
+ if (!node) throw new Error('Unknown workflow Node: ' + nodeId);
1155
+ const change = await resolveCometOverlayChange();
1156
+ const evidence = await readOverlayEvidence(protocol, change);
1157
+ evidence[node.id] = { ...parseEvidence(process.argv.slice(4).join(' ')), recordedAt: new Date().toISOString() };
1158
+ await writeOverlayEvidence(protocol, change, evidence);
1159
+ console.log('EVIDENCE: ' + node.id);
1160
+ printNext(protocol, route(protocol).find((item) => item.id === overlayNodeFromState(change.state, evidence)) ?? null);
1161
+ return;
1162
+ }
1163
+ throw new Error('Unknown command: ' + command);
1164
+ }
1165
+ const file = await statePath(protocol);
1166
+ if (command === 'init') {
1167
+ const node = nextNode(protocol, { completedNodes: [] });
1168
+ await writeJson(file, {
1169
+ schemaVersion: 1,
1170
+ workflow: protocol.name,
1171
+ status: node ? 'running' : 'completed',
1172
+ currentNode: node?.id ?? null,
1173
+ completedNodes: [],
1174
+ evidence: {},
1175
+ history: [],
1176
+ });
1177
+ printNext(protocol, node);
1178
+ return;
1179
+ }
1180
+ if (command === 'status') {
1181
+ try {
1182
+ console.log(JSON.stringify(await readStateJson(file), null, 2));
1183
+ } catch (error) {
1184
+ if (error && typeof error === 'object' && error.code === 'ENOENT') {
1185
+ console.log(JSON.stringify({ status: 'not-started' }, null, 2));
1186
+ return;
1187
+ }
1188
+ throw error;
1189
+ }
1190
+ return;
1191
+ }
1192
+ if (command === 'next') {
1193
+ printNext(protocol, nextNode(protocol, await readState(protocol)));
1194
+ return;
1195
+ }
1196
+ if (command === 'record') {
1197
+ const nodeId = process.argv[3];
1198
+ if (!nodeId) throw new Error('record requires a Node id.');
1199
+ const node = route(protocol).find((item) => item.id === nodeId || generatedNodeSkillName(protocol, item.id) === nodeId);
1200
+ if (!node) throw new Error('Unknown workflow Node: ' + nodeId);
1201
+ const state = await readState(protocol);
1202
+ state.evidence = state.evidence && typeof state.evidence === 'object' ? state.evidence : {};
1203
+ state.history = Array.isArray(state.history) ? state.history : [];
1204
+ state.evidence[node.id] = { ...parseEvidence(process.argv.slice(4).join(' ')), recordedAt: new Date().toISOString() };
1205
+ state.history.push({ event: 'evidence-recorded', node: node.id, at: new Date().toISOString() });
1206
+ await writeJson(file, state);
1207
+ console.log('EVIDENCE: ' + node.id);
1208
+ printNext(protocol, nextNode(protocol, state));
1209
+ return;
1210
+ }
1211
+ throw new Error('Unknown command: ' + command);
1212
+ }
1213
+
1214
+ main().catch((error) => {
1215
+ console.error(error.message);
1216
+ process.exit(1);
1217
+ });
1218
+ `;
1219
+ }
1220
+ function workflowContractGuardScript() {
1221
+ return `#!/usr/bin/env node
1222
+ import { constants as fsConstants, promises as fs } from 'fs';
1223
+ import path from 'path';
1224
+ import { fileURLToPath } from 'url';
1225
+
1226
+ const command = process.argv[2] ?? 'verify';
1227
+ const nodeId = process.argv[3] ?? null;
1228
+ const apply = process.argv.includes('--apply');
1229
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
1230
+ const packageRoot = path.resolve(__dirname, '..');
1231
+ const runRoot = process.env.COMET_RUN_ROOT ? path.resolve(process.env.COMET_RUN_ROOT) : process.cwd();
1232
+ const protocolPath = path.join(packageRoot, 'reference', 'workflow-protocol.json');
1233
+ ${workflowContractOverlayHelperScript()}
1234
+
1235
+ function slug(value) {
1236
+ return String(value).toLowerCase().replace(/[^a-z0-9._-]+/gu, '-').replace(/^-+|-+$/gu, '');
1237
+ }
1238
+
1239
+ function generatedNodeSkillName(protocol, id) {
1240
+ return (slug(protocol.name) || 'workflow') + '-' + (slug(id) || 'node');
1241
+ }
1242
+
1243
+ async function statePath(protocol) {
1244
+ const preferred = String(protocol.state?.statePath ?? '');
1245
+ const target = resolveWorkflowRelativePath(
1246
+ runRoot,
1247
+ preferred,
1248
+ 'workflow-run statePath',
1249
+ ).target;
1250
+ await inspectWorkflowProtectedPath(
1251
+ runRoot,
1252
+ target,
1253
+ 'workflow-run statePath',
1254
+ 'file',
1255
+ );
1256
+ return target;
1257
+ }
1258
+
1259
+ async function readJson(file) {
1260
+ return JSON.parse(await fs.readFile(file, 'utf8'));
1261
+ }
1262
+
1263
+ async function readStateJson(file) {
1264
+ return JSON.parse(
1265
+ (
1266
+ await readWorkflowProtectedFile(
1267
+ runRoot,
1268
+ file,
1269
+ 'workflow-run state',
1270
+ WORKFLOW_PROJECT_FILE_MAX_BYTES,
1271
+ )
1272
+ ).toString('utf8'),
1273
+ );
1274
+ }
1275
+
1276
+ async function writeJson(file, value) {
1277
+ await writeWorkflowProtectedFile(
1278
+ runRoot,
1279
+ file,
1280
+ 'workflow-run state',
1281
+ JSON.stringify(value, null, 2) + '\\n',
1282
+ WORKFLOW_PROJECT_FILE_MAX_BYTES,
1283
+ );
1284
+ }
1285
+
1286
+ function route(protocol) {
1287
+ return protocol.nodes.filter((node) => !node.disabled);
1288
+ }
1289
+
1290
+ function findNode(protocol, id) {
1291
+ return route(protocol).find((node) => node.id === id || generatedNodeSkillName(protocol, node.id) === id) ?? null;
1292
+ }
1293
+
1294
+ function completedSet(state) {
1295
+ return new Set(Array.isArray(state.completedNodes) ? state.completedNodes : []);
1296
+ }
1297
+
1298
+ function nextNode(protocol, state) {
1299
+ const completed = completedSet(state);
1300
+ return route(protocol).find((node) => !completed.has(node.id)) ?? null;
1301
+ }
1302
+
1303
+ function printNext(protocol, node) {
1304
+ if (!node) {
1305
+ console.log('NEXT: done');
1306
+ return;
1307
+ }
1308
+ console.log('NEXT: auto');
1309
+ console.log('NODE: ' + node.id);
1310
+ console.log('SKILL: ' + generatedNodeSkillName(protocol, node.id));
1311
+ }
1312
+
1313
+ function evidenceFor(state, id) {
1314
+ const value = state.evidence && typeof state.evidence === 'object' ? state.evidence[id] : null;
1315
+ return value && typeof value === 'object' && !Array.isArray(value) ? value : null;
1316
+ }
1317
+
1318
+ function missingRequiredSkillChecks(node, evidence) {
1319
+ const values = Array.isArray(evidence?.completedChecks) ? evidence.completedChecks : [];
1320
+ return (node.requiredSkillCalls ?? [])
1321
+ .map((binding) => 'required-skill:' + node.id + '.' + binding.skill)
1322
+ .filter((check) => !values.includes(check));
1323
+ }
1324
+
1325
+ function missingAugmentationChecks(node, evidence) {
1326
+ const values = Array.isArray(evidence?.completedChecks) ? evidence.completedChecks : [];
1327
+ return (node.augmentations ?? [])
1328
+ .filter((binding) => binding.enforcement && binding.enforcement !== 'advisory')
1329
+ .map((binding) => 'augmentation:' + node.id + '.' + binding.skill)
1330
+ .filter((check) => !values.includes(check));
1331
+ }
1332
+
1333
+ function hasEvidenceField(evidence, id) {
1334
+ if (Object.prototype.hasOwnProperty.call(evidence, id)) return true;
1335
+ const schemaEvidence = evidence.schemaEvidence;
1336
+ return !!(
1337
+ schemaEvidence &&
1338
+ typeof schemaEvidence === 'object' &&
1339
+ !Array.isArray(schemaEvidence) &&
1340
+ Object.prototype.hasOwnProperty.call(schemaEvidence, id)
1341
+ );
1342
+ }
1343
+
1344
+ function schemaMap(protocol) {
1345
+ return new Map((protocol.outputSchemas ?? []).map((schema) => [schema.id, schema]));
1346
+ }
1347
+
1348
+ function missingRequiredSchemaEvidence(protocol, node, evidence) {
1349
+ const schemas = schemaMap(protocol);
1350
+ const missing = [];
1351
+ for (const schemaId of node.outputSchemas ?? []) {
1352
+ const schema = schemas.get(schemaId);
1353
+ for (const field of schema?.evidence ?? []) {
1354
+ if (field.required && !hasEvidenceField(evidence, field.id)) {
1355
+ missing.push(schemaId + '.' + field.id);
1356
+ }
1357
+ }
1358
+ }
1359
+ return missing;
1360
+ }
1361
+
1362
+ function escapeRegExp(value) {
1363
+ return String(value).replace(/[|\\\\{}()[\\]^$+?.]/gu, '\\\\$&');
1364
+ }
1365
+
1366
+ function patternToRegExp(pattern) {
1367
+ return new RegExp('^' + String(pattern).split('*').map(escapeRegExp).join('.*') + '$', 'u');
1368
+ }
1369
+
1370
+ async function pathPatternExists(root, relativePattern) {
1371
+ const parts = workflowRelativeSegments(relativePattern, 'artifact path', true);
1372
+ async function walk(current, index) {
1373
+ const inspection = await inspectWorkflowProtectedPath(
1374
+ runRoot,
1375
+ current,
1376
+ 'workflow artifact path',
1377
+ index >= parts.length ? 'any' : 'directory',
1378
+ );
1379
+ if (!inspection.exists) return false;
1380
+ if (index >= parts.length) {
1381
+ return true;
1382
+ }
1383
+ const part = parts[index];
1384
+ if (!part.includes('*')) {
1385
+ return walk(path.join(current, part), index + 1);
1386
+ }
1387
+ let entries;
1388
+ try {
1389
+ entries = await fs.readdir(current, { withFileTypes: true });
1390
+ } catch {
1391
+ return false;
1392
+ }
1393
+ const matcher = patternToRegExp(part);
1394
+ for (const entry of entries) {
1395
+ if (entry.isSymbolicLink()) {
1396
+ throw new Error(
1397
+ 'workflow artifact path crosses a symbolic link or junction at ' +
1398
+ path.join(current, entry.name),
1399
+ );
1400
+ }
1401
+ if (matcher.test(entry.name) && (await walk(path.join(current, entry.name), index + 1))) {
1402
+ return true;
1403
+ }
1404
+ }
1405
+ return false;
1406
+ }
1407
+ return walk(root, 0);
1408
+ }
1409
+
1410
+ async function missingRequiredArtifacts(protocol, node) {
1411
+ const schemas = schemaMap(protocol);
1412
+ const missing = [];
1413
+ for (const schemaId of node.outputSchemas ?? []) {
1414
+ const schema = schemas.get(schemaId);
1415
+ for (const artifact of schema?.artifacts ?? []) {
1416
+ if (!artifact.required) continue;
1417
+ const exists = (
1418
+ await Promise.all(
1419
+ (artifact.paths ?? []).map(async (artifactPath) =>
1420
+ pathPatternExists(await workflowPathBaseRoot(artifact.pathBase), artifactPath),
1421
+ ),
1422
+ )
1423
+ ).some(Boolean);
1424
+ if (!exists) missing.push(schemaId + '.' + artifact.id);
1425
+ }
1426
+ }
1427
+ return missing;
1428
+ }
1429
+
1430
+ async function main() {
1431
+ const protocol = await readJson(protocolPath);
1432
+ if (protocol.schemaVersion !== 1 || !Array.isArray(protocol.nodes)) {
1433
+ throw new Error('workflow-protocol.json must use the current schema with nodes');
1434
+ }
1435
+ if (command === 'verify') {
1436
+ console.log('workflow-guard-ok');
1437
+ return;
1438
+ }
1439
+ if (command !== 'entry' && command !== 'exit') throw new Error('Unknown command: ' + command);
1440
+ if (!nodeId) throw new Error(command + ' requires a Node id.');
1441
+ const node = findNode(protocol, nodeId);
1442
+ if (!node) throw new Error('Unknown workflow Node: ' + nodeId);
1443
+ if (isCometOverlay(protocol)) {
1444
+ const change = await resolveCometOverlayChange();
1445
+ const overlayEvidence = await readOverlayEvidence(protocol, change);
1446
+ const current = overlayNodeFromState(change.state, overlayEvidence);
1447
+ if (command === 'entry') {
1448
+ if (current !== node.id) {
1449
+ console.error('BLOCKED: current Node is ' + String(current) + ', cannot enter ' + node.id + '.');
1450
+ process.exit(1);
1451
+ }
1452
+ console.log('ENTRY OK: ' + node.id);
1453
+ return;
1454
+ }
1455
+ const evidenceState = { evidence: overlayEvidence };
1456
+ const evidence = evidenceFor(evidenceState, node.id);
1457
+ if (!evidence) {
1458
+ console.error('BLOCKED: missing evidence for Node ' + node.id + '.');
1459
+ process.exit(1);
1460
+ }
1461
+ const missingSchemaEvidence = missingRequiredSchemaEvidence(protocol, node, evidence);
1462
+ if (missingSchemaEvidence.length > 0) {
1463
+ console.error('BLOCKED: missing Output Schema evidence: ' + missingSchemaEvidence.join(', '));
1464
+ process.exit(1);
1465
+ }
1466
+ const missingArtifacts = await missingRequiredArtifacts(protocol, node);
1467
+ if (missingArtifacts.length > 0) {
1468
+ console.error('BLOCKED: missing Output Schema artifacts: ' + missingArtifacts.join(', '));
1469
+ process.exit(1);
1470
+ }
1471
+ const missingRequired = missingRequiredSkillChecks(node, evidence);
1472
+ if (missingRequired.length > 0) {
1473
+ console.error('BLOCKED: missing required Skill evidence: ' + missingRequired.join(', '));
1474
+ process.exit(1);
1475
+ }
1476
+ const missingAugmentations = missingAugmentationChecks(node, evidence);
1477
+ if (missingAugmentations.length > 0) {
1478
+ console.error('BLOCKED: missing augmentation evidence: ' + missingAugmentations.join(', '));
1479
+ process.exit(1);
1480
+ }
1481
+ console.log('ALL CHECKS PASSED');
1482
+ if (apply) {
1483
+ console.log('COMET STATE: unchanged; phase progression remains owned by the original Comet runtime.');
1484
+ return;
1485
+ }
1486
+ console.log('APPLY: rerun with --apply to update workflow state');
1487
+ return;
1488
+ }
1489
+ const file = await statePath(protocol);
1490
+ const state = await readStateJson(file);
1491
+ state.completedNodes = Array.isArray(state.completedNodes) ? state.completedNodes : [];
1492
+ state.evidence = state.evidence && typeof state.evidence === 'object' ? state.evidence : {};
1493
+ if (command === 'entry') {
1494
+ const current = state.currentNode ?? nextNode(protocol, state)?.id ?? null;
1495
+ if (current !== node.id && !state.completedNodes.includes(node.id)) {
1496
+ console.error('BLOCKED: current Node is ' + String(current) + ', cannot enter ' + node.id + '.');
1497
+ process.exit(1);
1498
+ }
1499
+ console.log('ENTRY OK: ' + node.id);
1500
+ return;
1501
+ }
1502
+ const evidence = evidenceFor(state, node.id);
1503
+ if (!evidence) {
1504
+ console.error('BLOCKED: missing evidence for Node ' + node.id + '.');
1505
+ process.exit(1);
1506
+ }
1507
+ const missingSchemaEvidence = missingRequiredSchemaEvidence(protocol, node, evidence);
1508
+ if (missingSchemaEvidence.length > 0) {
1509
+ console.error('BLOCKED: missing Output Schema evidence: ' + missingSchemaEvidence.join(', '));
1510
+ process.exit(1);
1511
+ }
1512
+ const missingArtifacts = await missingRequiredArtifacts(protocol, node);
1513
+ if (missingArtifacts.length > 0) {
1514
+ console.error('BLOCKED: missing Output Schema artifacts: ' + missingArtifacts.join(', '));
1515
+ process.exit(1);
1516
+ }
1517
+ const missingRequired = missingRequiredSkillChecks(node, evidence);
1518
+ if (missingRequired.length > 0) {
1519
+ console.error('BLOCKED: missing required Skill evidence: ' + missingRequired.join(', '));
1520
+ process.exit(1);
1521
+ }
1522
+ const missingAugmentations = missingAugmentationChecks(node, evidence);
1523
+ if (missingAugmentations.length > 0) {
1524
+ console.error('BLOCKED: missing augmentation evidence: ' + missingAugmentations.join(', '));
1525
+ process.exit(1);
1526
+ }
1527
+ if (apply) {
1528
+ const completed = completedSet(state);
1529
+ completed.add(node.id);
1530
+ state.completedNodes = route(protocol).filter((item) => completed.has(item.id)).map((item) => item.id);
1531
+ const next = nextNode(protocol, state);
1532
+ state.currentNode = next?.id ?? null;
1533
+ state.status = next ? 'running' : 'completed';
1534
+ state.history = Array.isArray(state.history) ? state.history : [];
1535
+ state.history.push({ event: 'exit-applied', node: node.id, at: new Date().toISOString() });
1536
+ await writeJson(file, state);
1537
+ console.log('ALL CHECKS PASSED');
1538
+ printNext(protocol, next);
1539
+ return;
1540
+ }
1541
+ console.log('ALL CHECKS PASSED');
1542
+ console.log('APPLY: rerun with --apply to update workflow state');
1543
+ }
1544
+
1545
+ main().catch((error) => {
1546
+ console.error(error.message);
1547
+ process.exit(1);
1548
+ });
1549
+ `;
1550
+ }
1551
+ function workflowContractHandoffScript() {
1552
+ return `#!/usr/bin/env node
1553
+ import { promises as fs } from 'fs';
1554
+ import path from 'path';
1555
+ import { fileURLToPath } from 'url';
1556
+
1557
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
1558
+ const packageRoot = path.resolve(__dirname, '..');
1559
+
1560
+ async function main() {
1561
+ const protocol = JSON.parse(await fs.readFile(path.join(packageRoot, 'reference', 'workflow-protocol.json'), 'utf8'));
1562
+ console.log(JSON.stringify({
1563
+ workflow: protocol.name,
1564
+ nodes: protocol.nodes.map((node) => ({
1565
+ id: node.id,
1566
+ label: node.label,
1567
+ requiredSkillCalls: node.requiredSkillCalls ?? [],
1568
+ augmentations: node.augmentations ?? [],
1569
+ outputSchemas: node.outputSchemas ?? [],
1570
+ })),
1571
+ }, null, 2));
1572
+ }
1573
+
1574
+ main().catch((error) => {
1575
+ console.error(error.message);
1576
+ process.exit(1);
1577
+ });
1578
+ `;
1579
+ }
1580
+ function uniqueStrings(values) {
1581
+ return Array.from(new Set(values));
1582
+ }
1583
+ function sortedUniqueRecords(records) {
1584
+ const byKey = new Map();
1585
+ for (const record of records) {
1586
+ const key = JSON.stringify(Object.fromEntries(Object.entries(record).sort(([left], [right]) => left.localeCompare(right))));
1587
+ byKey.set(key, record);
1588
+ }
1589
+ return [...byKey.entries()]
1590
+ .sort(([left], [right]) => left.localeCompare(right))
1591
+ .map(([, record]) => record);
1592
+ }
1593
+ function workflowContractSkillDefinition(plan, protocol) {
1594
+ const route = workflowContractRoute(protocol);
1595
+ const steps = route.map((node, index) => ({
1596
+ id: `node-${index + 1}-${slug(node.id)}`,
1597
+ action: { type: 'invoke_skill', ref: generatedNodeSkillName(protocol.name, node.id) },
1598
+ ...(route[index + 1] ? { next: `node-${index + 2}-${slug(route[index + 1].id)}` } : {}),
1599
+ }));
1600
+ return {
1601
+ apiVersion: 'comet/v1alpha1',
1602
+ kind: 'Skill',
1603
+ metadata: {
1604
+ name: plan.name,
1605
+ version: plan.version,
1606
+ description: factoryEntryDescription(plan),
1607
+ },
1608
+ goal: {
1609
+ statement: protocol.goal,
1610
+ inputs: [],
1611
+ outputs: [{ name: 'result', description: 'Generated workflow result' }],
1612
+ success: ['The generated workflow completes according to its workflow protocol'],
1613
+ },
1614
+ orchestration: {
1615
+ mode: plan.engineMode === 'adaptive' ? 'adaptive' : 'deterministic',
1616
+ entry: steps[0]?.id ?? 'complete',
1617
+ steps: steps.length > 0 ? steps : [{ id: 'complete', action: { type: 'checkpoint' } }],
1618
+ },
1619
+ skills: route.map((node) => ({ id: generatedNodeSkillName(protocol.name, node.id) })),
1620
+ agents: [],
1621
+ tools: [],
1622
+ };
1623
+ }
1624
+ function workflowContractEvalManifest(plan, protocol) {
1625
+ const activeNodes = workflowContractRoute(protocol);
1626
+ const route = activeNodes.map((node) => generatedNodeSkillName(protocol.name, node.id));
1627
+ const isOverlay = protocol.kind === 'comet-five-phase-overlay';
1628
+ const recommendedTasks = isOverlay
1629
+ ? [
1630
+ 'authoring-skill-smoke',
1631
+ 'workflow-route-conformance',
1632
+ 'workflow-overlay-contract',
1633
+ 'comet-full-workflow',
1634
+ 'comet-fix-median',
1635
+ 'comet-refactor-counter',
1636
+ 'comet-api-cache-ttl',
1637
+ ]
1638
+ : ['authoring-skill-smoke', 'workflow-route-conformance'];
1639
+ const activeOutputSchemas = uniqueStrings(activeNodes.flatMap((node) => node.outputSchemas));
1640
+ const activeOutputSchemaSet = new Set(activeOutputSchemas);
1641
+ const evalRequiredOutputSchemas = protocol.evals[0]?.requiredOutputSchemas ?? [];
1642
+ const activeEvalRequiredOutputSchemas = evalRequiredOutputSchemas.filter((schemaId) => activeOutputSchemaSet.has(schemaId));
1643
+ const requiredOutputSchemas = uniqueStrings(evalRequiredOutputSchemas.length > 0 ? activeEvalRequiredOutputSchemas : activeOutputSchemas);
1644
+ const schemasById = new Map(protocol.outputSchemas.map((schema) => [schema.id, schema]));
1645
+ const expectedEvidence = sortedUniqueRecords(activeNodes.flatMap((node) => [
1646
+ ...node.requiredSkillCalls.map((binding) => ({
1647
+ node: node.id,
1648
+ check: `required-skill:${node.id}.${binding.skill}`,
1649
+ enforcement: binding.enforcement,
1650
+ })),
1651
+ ...node.augmentations.map((binding) => ({
1652
+ node: node.id,
1653
+ check: `augmentation:${node.id}.${binding.skill}`,
1654
+ enforcement: binding.enforcement,
1655
+ })),
1656
+ ...node.outputSchemas.flatMap((schemaId) => (schemasById.get(schemaId)?.evidence ?? [])
1657
+ .filter((field) => field.required)
1658
+ .map((field) => ({
1659
+ node: node.id,
1660
+ check: `output-schema:${node.id}.${schemaId}.${field.id}`,
1661
+ schema: schemaId,
1662
+ evidence: field.id,
1663
+ }))),
1664
+ ]));
1665
+ const expectedArtifacts = activeNodes.flatMap((node) => node.outputSchemas.flatMap((schemaId) => {
1666
+ const schema = protocol.outputSchemas.find((item) => item.id === schemaId);
1667
+ return (schema?.artifacts ?? [])
1668
+ .filter((item) => item.required)
1669
+ .map((item) => ({
1670
+ node: node.id,
1671
+ schema: schemaId,
1672
+ artifact: item.id,
1673
+ paths: item.paths,
1674
+ }));
1675
+ }));
1676
+ return {
1677
+ apiVersion: 'comet.eval/v1alpha1',
1678
+ kind: 'SkillEvalManifest',
1679
+ metadata: {
1680
+ name: plan.name,
1681
+ description: factoryEntryDescription(plan),
1682
+ draftHash: '<current-bundle-hash>',
1683
+ },
1684
+ skill: { name: plan.name, source: '..', profile: 'authoring-skill' },
1685
+ evaluation: {
1686
+ recommendedTasks,
1687
+ baselineTreatments: isOverlay ? ['CONTROL', 'COMET_FULL_040_BETA'] : ['CONTROL'],
1688
+ qualityGates: {
1689
+ minWeightedScore: 0.8,
1690
+ minPassAt1: 0.6,
1691
+ maxInstabilityGap: 0.4,
1692
+ },
1693
+ requiredOutputSchemas,
1694
+ expectedEvidence,
1695
+ requiredSkills: [plan.name, ...route],
1696
+ generatedNodeSkills: route,
1697
+ expectedArtifacts,
1698
+ routeConformance: {
1699
+ task: 'workflow-route-conformance',
1700
+ expectedNodeOrder: (protocol.evals[0]?.expectedNodeOrder ?? activeNodes.map((node) => node.id)).filter((nodeId) => activeNodes.some((node) => node.id === nodeId)),
1701
+ },
1702
+ },
1703
+ interaction: { mode: 'none', maxTurns: 8 },
1704
+ };
1705
+ }
1706
+ function workflowContractCompositionReport(plan, protocol) {
1707
+ const callChain = plan.callChain.length === 0
1708
+ ? '- None'
1709
+ : plan.callChain.map((item) => `- ${item.skill}`).join('\n');
1710
+ const compositionSteps = !plan.composition || plan.composition.steps.length === 0
1711
+ ? '- None'
1712
+ : plan.composition.steps
1713
+ .map((step) => `- ${step.id}: ${step.skill} (${step.source})`)
1714
+ .join('\n');
1715
+ const resolved = !plan.resolvedSkills || plan.resolvedSkills.length === 0
1716
+ ? '- None'
1717
+ : plan.resolvedSkills.map((skill) => `- ${skill.query}: ${skill.status}`).join('\n');
1718
+ const preferenceMode = plan.preference?.mode ?? 'not configured';
1719
+ const preferenceHash = plan.preference?.sourceHash ?? 'none';
1720
+ return `# Composition Report
1721
+
1722
+ ## Workflow Contract
1723
+
1724
+ - Kind: ${protocol.kind}
1725
+ - Nodes: ${protocol.nodes.length}
1726
+ - Required Skill Calls: ${protocol.nodes.reduce((count, node) => count + node.requiredSkillCalls.length, 0)}
1727
+ - Output Schemas: ${protocol.outputSchemas.map((schema) => schema.id).join(', ')}
1728
+ - Wrapper classification: ${wrapperClassification(plan)}
1729
+
1730
+ ## Source Skills
1731
+
1732
+ ${callChain}
1733
+
1734
+ ## Composition Steps
1735
+
1736
+ ${compositionSteps}
1737
+
1738
+ ## Resolved Skills
1739
+
1740
+ ${resolved}
1741
+
1742
+ ## Preferences
1743
+
1744
+ - Preference mode: ${preferenceMode}
1745
+ - Preference hash: ${preferenceHash}
1746
+ `;
1747
+ }
1748
+ function renderSkillReviewMarkdown(plan) {
1749
+ const draft = plan.contentDrafts?.['reference/skill-review.md'];
1750
+ if (draft)
1751
+ return draft;
1752
+ const review = plan.authoringReview;
1753
+ if (review) {
1754
+ const findings = review.findings.length === 0
1755
+ ? '- None.'
1756
+ : review.findings
1757
+ .map((finding) => `- [${finding.severity}]${finding.path ? ` ${finding.path}` : ''}: ${finding.problem}${finding.fix ? ` -> ${finding.fix}` : ''}`)
1758
+ .join('\n');
1759
+ return `# Skill Review\n\nEvidence source: ${review.evidenceSource}.\nPassed: ${review.passed ? 'yes' : 'no'}.\nVoters: ${review.voters ?? 'n/a'}.\nLenses: ${(review.lenses ?? []).join(', ') || 'n/a'}.\nRounds: ${review.rounds ?? 'n/a'}.\nReviewed at: ${review.reviewedAt}.\n\n## Findings\n\n${findings}\n`;
1760
+ }
1761
+ return '# Skill Review\n\nEvidence source: deterministic-check-only.\n\nNo LLM authoring review has been recorded for this Bundle yet. This file is an honest placeholder, not a review approval. Run the `/comet-any` skill-review lane and record its verdict via `comet creator authoring-record <name> --lane skill-review --file <review.json>` to replace this with a real multi-vote review summary.\n';
1762
+ }
1763
+ function authoringLanesReview(plan) {
1764
+ const review = plan.authoringReview;
1765
+ if (review) {
1766
+ return {
1767
+ passed: review.passed,
1768
+ evidenceSource: review.evidenceSource,
1769
+ voters: review.voters ?? null,
1770
+ lenses: review.lenses ?? [],
1771
+ rounds: review.rounds ?? null,
1772
+ blockingFindings: review.findings
1773
+ .filter((finding) => finding.severity === 'critical' || finding.severity === 'important')
1774
+ .map((finding) => finding.problem),
1775
+ warnings: review.findings
1776
+ .filter((finding) => finding.severity === 'minor')
1777
+ .map((finding) => finding.problem),
1778
+ };
1779
+ }
1780
+ return {
1781
+ passed: null,
1782
+ evidenceSource: 'deterministic-check-only',
1783
+ voters: null,
1784
+ lenses: [],
1785
+ rounds: null,
1786
+ blockingFindings: [],
1787
+ warnings: ['No LLM authoring review recorded for this Bundle'],
1788
+ };
1789
+ }
1790
+ function workflowContractArtifacts(plan) {
1791
+ const protocol = plan.workflowProtocol;
1792
+ if (!protocol)
1793
+ throw new Error('workflowProtocol is required for workflow contract package generation');
1794
+ const protocolHash = workflowProtocolHash(protocol);
1795
+ const nodeSkills = workflowContractInternalSkillNames(protocol);
1796
+ const requiredFiles = [
1797
+ 'SKILL.md',
1798
+ ...nodeSkills.map((name) => `../${name}/SKILL.md`),
1799
+ 'reference/resolved-skills.json',
1800
+ 'reference/workflow-protocol.json',
1801
+ 'reference/decision-points.md',
1802
+ 'reference/recovery.md',
1803
+ 'reference/authoring-lanes.json',
1804
+ 'reference/skill-review.md',
1805
+ 'reference/composition-report.md',
1806
+ 'reference/subagents/script-author.md',
1807
+ 'scripts/comet-plan.mjs',
1808
+ 'scripts/comet-check.mjs',
1809
+ 'scripts/comet-hook-guard.mjs',
1810
+ 'scripts/workflow-state.mjs',
1811
+ 'scripts/workflow-guard.mjs',
1812
+ 'scripts/workflow-handoff.mjs',
1813
+ ...(plan.engineMode === 'none'
1814
+ ? []
1815
+ : ['comet/skill.yaml', 'comet/guardrails.yaml', 'comet/checks.yaml', 'comet/eval.yaml']),
1816
+ ];
1817
+ const artifacts = [
1818
+ artifact('SKILL.md', 'skill', workflowContractEntryMarkdown(plan, protocol, entryDecisionCoreBody(plan))),
1819
+ ...workflowContractRoute(protocol).map((node) => artifact(`../${generatedNodeSkillName(protocol.name, node.id)}/SKILL.md`, 'skill', workflowContractNodeMarkdown(plan, protocol, node, nodeGuidanceBody(plan, protocol, node)))),
1820
+ artifact('scripts/comet-plan.mjs', 'script', workflowContractPlanScript(), true),
1821
+ artifact('scripts/comet-check.mjs', 'script', workflowContractCheckScript(requiredFiles), true),
1822
+ artifact('scripts/comet-hook-guard.mjs', 'script', workflowContractHookGuardScript(), true),
1823
+ artifact('scripts/workflow-state.mjs', 'script', workflowContractStateScript(), true),
1824
+ artifact('scripts/workflow-guard.mjs', 'script', workflowContractGuardScript(), true),
1825
+ artifact('scripts/workflow-handoff.mjs', 'script', workflowContractHandoffScript(), true),
1826
+ jsonArtifact('reference/resolved-skills.json', {
1827
+ schemaVersion: 1,
1828
+ resolvedSkills: plan.resolvedSkills ?? [],
1829
+ sourceSummaries: (plan.resolvedSkills ?? []).flatMap((resolved) => resolved.sources.map((source) => ({
1830
+ name: source.name,
1831
+ query: resolved.query,
1832
+ description: source.description,
1833
+ platform: source.platform,
1834
+ scope: source.scope,
1835
+ origin: source.origin,
1836
+ references: source.references ?? [],
1837
+ }))),
1838
+ workflow: {
1839
+ kind: protocol.kind,
1840
+ nodes: protocol.nodes.map((node) => ({
1841
+ id: node.id,
1842
+ label: node.label,
1843
+ implementation: node.implementation,
1844
+ requiredSkillCalls: node.requiredSkillCalls,
1845
+ outputSchemas: node.outputSchemas,
1846
+ })),
1847
+ },
1848
+ preference: plan.preference ?? null,
1849
+ }),
1850
+ jsonArtifact('reference/workflow-protocol.json', protocol),
1851
+ artifact('reference/decision-points.md', 'reference', plan.contentDrafts?.['reference/decision-points.md'] ??
1852
+ `# Workflow Decision Classification\n\nNo decision points have been authored. Do not infer that every Node or Output Schema requires confirmation. Classify each candidate as a genuine user decision, automatic handling, a stop condition, or a manual handoff; pause only when at least two valid choices change scope, behavior, accepted risk, or an irreversible outcome.\n`),
1853
+ artifact('reference/recovery.md', 'reference', plan.contentDrafts?.['reference/recovery.md'] ??
1854
+ `# Workflow Recovery\n\n- State model: \`${protocol.state.kind}\`\n- State path: \`${protocol.state.statePath}\`\n- Resume by reading the first incomplete Workflow Node.\n`),
1855
+ artifact('reference/composition-report.md', 'reference', workflowContractCompositionReport(plan, protocol)),
1856
+ artifact('reference/skill-review.md', 'reference', renderSkillReviewMarkdown(plan)),
1857
+ artifact('reference/subagents/script-author.md', 'reference', portableScriptAuthorBrief()),
1858
+ jsonArtifact('reference/authoring-lanes.json', {
1859
+ schemaVersion: 1,
1860
+ protocolHash,
1861
+ lanes: [
1862
+ { lane: 'script' },
1863
+ { lane: 'reference' },
1864
+ { lane: 'pause-points' },
1865
+ { lane: 'workflow-entry' },
1866
+ { lane: 'skill-core' },
1867
+ { lane: 'skill-review' },
1868
+ ],
1869
+ review: authoringLanesReview(plan),
1870
+ }),
1871
+ ...(plan.engineMode === 'none'
1872
+ ? []
1873
+ : [
1874
+ artifact('comet/skill.yaml', 'engine', stringify(workflowContractSkillDefinition(plan, protocol))),
1875
+ artifact('comet/guardrails.yaml', 'engine', stringify({
1876
+ allowedSkills: [plan.name, ...nodeSkills],
1877
+ allowedAgents: [],
1878
+ allowedTools: [],
1879
+ maxIterations: Math.max(nodeSkills.length + 2, 5),
1880
+ maxRetriesPerAction: 2,
1881
+ confirmationRequiredFor: [],
1882
+ })),
1883
+ artifact('comet/checks.yaml', 'engine', stringify(runtimeEvals())),
1884
+ artifact('comet/eval.yaml', 'engine', stringify(workflowContractEvalManifest(plan, protocol))),
1885
+ ]),
1886
+ ];
1887
+ const proposals = [
1888
+ {
1889
+ lane: 'workflow-entry',
1890
+ protocolHash,
1891
+ artifacts: artifacts.filter((item) => item.path === 'SKILL.md'),
1892
+ claims: workflowEntryClaims(),
1893
+ },
1894
+ {
1895
+ lane: 'skill-core',
1896
+ protocolHash,
1897
+ artifacts: artifacts.filter((item) => item.kind === 'skill' && item.path !== 'SKILL.md'),
1898
+ claims: nodeSkills.map((name) => claim('node-skill', `node-skill:${name}`, [`../${name}/SKILL.md`], `Workflow Node Skill ${name}.`, name)),
1899
+ },
1900
+ ];
1901
+ return {
1902
+ workflow: protocol,
1903
+ protocolHash,
1904
+ proposals,
1905
+ artifacts,
1906
+ review: { passed: true, blockingFindings: [], warnings: [] },
1907
+ };
1908
+ }
1909
+ function claim(kind, id, paths, summary, nodeSkill) {
1910
+ return {
1911
+ kind,
1912
+ id,
1913
+ paths,
1914
+ summary,
1915
+ ...(nodeSkill ? { nodeSkill } : {}),
1916
+ };
1917
+ }
1918
+ function workflowEntryClaims() {
1919
+ return [
1920
+ claim('workflow-entry', 'workflow-entry', ['SKILL.md'], 'Entry Skill routes the generated workflow.'),
1921
+ ];
1922
+ }
1923
+ function artifactTarget(packageRoot, artifactPath) {
1924
+ const skillsRoot = path.dirname(packageRoot);
1925
+ const target = path.resolve(packageRoot, artifactPath);
1926
+ const relative = path.relative(skillsRoot, target);
1927
+ if (relative.startsWith('..') || path.isAbsolute(relative)) {
1928
+ throw new Error(`Generated artifact escapes skills root: ${artifactPath}`);
1929
+ }
1930
+ return target;
1931
+ }
1932
+ export async function draftFactorySkillArtifacts(plan) {
1933
+ if (!plan.workflowProtocol) {
1934
+ throw new Error('workflowProtocol is required for workflow contract package generation');
1935
+ }
1936
+ return workflowContractArtifacts(plan);
1937
+ }
1938
+ async function writeFactoryArtifacts(packageRoot, artifacts) {
1939
+ for (const item of artifacts) {
1940
+ const target = artifactTarget(packageRoot, item.path);
1941
+ await fs.mkdir(path.dirname(target), { recursive: true });
1942
+ await fs.writeFile(target, item.content, 'utf8');
1943
+ }
1944
+ }
1945
+ export async function generateFactorySkillPackage(plan) {
1946
+ const packageRoot = path.resolve(plan.root, 'skills', plan.name);
1947
+ const cometRoot = path.join(packageRoot, 'comet');
1948
+ const referenceRoot = path.join(packageRoot, 'reference');
1949
+ if (!plan.workflowProtocol) {
1950
+ throw new Error('workflowProtocol is required for workflow contract package generation');
1951
+ }
1952
+ const internalSkillIds = workflowContractInternalSkillNames(plan.workflowProtocol);
1953
+ const draft = await draftFactorySkillArtifacts(plan);
1954
+ const compositionReportPath = path.join(referenceRoot, 'composition-report.md');
1955
+ if (!draft.review.passed) {
1956
+ const findings = draft.review.blockingFindings
1957
+ .map((finding) => `${finding.code}${finding.path ? ` (${finding.path})` : ''}: ${finding.message}`)
1958
+ .join('\n');
1959
+ throw new Error(`Generated Skill package failed authoring review:\n${findings}`);
1960
+ }
1961
+ await fs.mkdir(packageRoot, { recursive: true });
1962
+ await writeFactoryArtifacts(packageRoot, draft.artifacts);
1963
+ return {
1964
+ packageRoot,
1965
+ skillPath: path.join(packageRoot, 'SKILL.md'),
1966
+ internalSkills: internalSkillIds,
1967
+ unauthoredSubstanceNodes: computeUnauthoredSubstanceNodes(plan),
1968
+ wrapperClassification: wrapperClassification(plan),
1969
+ enginePath: plan.engineMode === 'none' ? null : cometRoot,
1970
+ evalManifestPath: plan.engineMode === 'none' ? null : path.join(cometRoot, 'eval.yaml'),
1971
+ controlPlane: {
1972
+ checksPath: plan.engineMode === 'none' ? null : path.join(cometRoot, 'checks.yaml'),
1973
+ evalManifestPath: plan.engineMode === 'none' ? null : path.join(cometRoot, 'eval.yaml'),
1974
+ compositionReportPath,
1975
+ scripts: draft.artifacts
1976
+ .filter((item) => item.kind === 'script')
1977
+ .map((item) => artifactTarget(packageRoot, item.path)),
1978
+ },
1979
+ platformAgents: [],
1980
+ };
1981
+ }
1982
+ //# sourceMappingURL=package.js.map