@rpamis/comet 0.4.0-beta.6 → 0.4.0-beta.7

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 (687) hide show
  1. package/README.md +209 -74
  2. package/assets/manifest.json +14 -5
  3. package/assets/skills/comet/SKILL.md +17 -282
  4. package/assets/skills/comet/reference/comet-yaml-fields.md +1 -1
  5. package/assets/skills/comet/reference/context-recovery.md +3 -3
  6. package/assets/skills/comet/reference/intent-frame.md +2 -2
  7. package/assets/skills/comet/reference/scripts.md +2 -2
  8. package/assets/skills/comet/rules/comet-workflow-guard.en.md +32 -0
  9. package/assets/skills/comet/rules/comet-workflow-guard.md +32 -0
  10. package/assets/skills/comet/scripts/comet-entry-runtime.mjs +7834 -0
  11. package/assets/skills/comet/scripts/comet-hook-router.mjs +10307 -0
  12. package/assets/skills/comet/scripts/comet-runtime.mjs +612 -499
  13. package/assets/skills/comet-any/SKILL.md +4 -4
  14. package/assets/skills/comet-any/reference/authoring-subagents.md +1 -1
  15. package/assets/skills/comet-any/reference/bundle-authoring.md +1 -1
  16. package/assets/skills/comet-any/reference/subagents/reference-author.md +1 -1
  17. package/assets/skills/comet-any/reference/subagents/script-author.md +1 -1
  18. package/assets/skills/comet-any/reference/subagents/skill-core-author.md +1 -1
  19. package/assets/skills/comet-any/reference/subagents/skill-reviewer.md +2 -2
  20. package/assets/skills/comet-any/reference/subagents/workflow-entry-author.md +3 -3
  21. package/assets/skills/comet-archive/SKILL.md +1 -2
  22. package/assets/skills/comet-build/SKILL.md +1 -1
  23. package/assets/skills/comet-classic/SKILL.md +293 -0
  24. package/assets/skills/comet-design/SKILL.md +1 -1
  25. package/assets/skills/comet-hotfix/SKILL.md +4 -4
  26. package/assets/skills/comet-native/SKILL.md +257 -0
  27. package/assets/skills/comet-native/reference/artifacts.md +204 -0
  28. package/assets/skills/comet-native/reference/commands.md +118 -0
  29. package/assets/skills/comet-native/reference/recovery.md +143 -0
  30. package/assets/skills/comet-native/scripts/comet-native-hook-guard.mjs +4 -0
  31. package/assets/skills/comet-native/scripts/comet-native-runtime.mjs +28898 -0
  32. package/assets/skills/comet-open/SKILL.md +4 -4
  33. package/assets/skills/comet-tweak/SKILL.md +7 -7
  34. package/assets/skills-zh/comet/SKILL.md +17 -270
  35. package/assets/skills-zh/comet/reference/comet-yaml-fields.md +1 -1
  36. package/assets/skills-zh/comet/reference/context-recovery.md +3 -3
  37. package/assets/skills-zh/comet/reference/intent-frame.md +2 -2
  38. package/assets/skills-zh/comet/reference/scripts.md +2 -2
  39. package/assets/skills-zh/comet-any/SKILL.md +4 -4
  40. package/assets/skills-zh/comet-any/reference/authoring-subagents.md +1 -1
  41. package/assets/skills-zh/comet-any/reference/bundle-authoring.md +1 -1
  42. package/assets/skills-zh/comet-any/reference/subagents/reference-author.md +1 -1
  43. package/assets/skills-zh/comet-any/reference/subagents/script-author.md +1 -1
  44. package/assets/skills-zh/comet-any/reference/subagents/skill-core-author.md +1 -1
  45. package/assets/skills-zh/comet-any/reference/subagents/skill-reviewer.md +2 -2
  46. package/assets/skills-zh/comet-any/reference/subagents/workflow-entry-author.md +3 -3
  47. package/assets/skills-zh/comet-archive/SKILL.md +1 -2
  48. package/assets/skills-zh/comet-build/SKILL.md +1 -1
  49. package/assets/skills-zh/comet-classic/SKILL.md +281 -0
  50. package/assets/skills-zh/comet-design/SKILL.md +1 -1
  51. package/assets/skills-zh/comet-hotfix/SKILL.md +4 -4
  52. package/assets/skills-zh/comet-native/SKILL.md +257 -0
  53. package/assets/skills-zh/comet-native/reference/artifacts.md +206 -0
  54. package/assets/skills-zh/comet-native/reference/commands.md +118 -0
  55. package/assets/skills-zh/comet-native/reference/recovery.md +143 -0
  56. package/assets/skills-zh/comet-open/SKILL.md +4 -4
  57. package/assets/skills-zh/comet-tweak/SKILL.md +7 -7
  58. package/dist/app/cli/index.js +59 -13
  59. package/dist/app/cli/index.js.map +1 -1
  60. package/dist/app/commands/command-result.d.ts +6 -0
  61. package/dist/app/commands/command-result.d.ts.map +1 -0
  62. package/dist/app/commands/command-result.js +4 -0
  63. package/dist/app/commands/command-result.js.map +1 -0
  64. package/dist/app/commands/doctor.d.ts +1 -0
  65. package/dist/app/commands/doctor.d.ts.map +1 -1
  66. package/dist/app/commands/doctor.js +201 -26
  67. package/dist/app/commands/doctor.js.map +1 -1
  68. package/dist/app/commands/eval.d.ts +3 -1
  69. package/dist/app/commands/eval.d.ts.map +1 -1
  70. package/dist/app/commands/eval.js +17 -7
  71. package/dist/app/commands/eval.js.map +1 -1
  72. package/dist/app/commands/i18n.d.ts +1 -1
  73. package/dist/app/commands/i18n.d.ts.map +1 -1
  74. package/dist/app/commands/i18n.js +6 -2
  75. package/dist/app/commands/i18n.js.map +1 -1
  76. package/dist/app/commands/init.d.ts +10 -2
  77. package/dist/app/commands/init.d.ts.map +1 -1
  78. package/dist/app/commands/init.js +331 -50
  79. package/dist/app/commands/init.js.map +1 -1
  80. package/dist/app/commands/native.d.ts +2 -0
  81. package/dist/app/commands/native.d.ts.map +1 -0
  82. package/dist/app/commands/native.js +10 -0
  83. package/dist/app/commands/native.js.map +1 -0
  84. package/dist/app/commands/project-scope-selection.d.ts.map +1 -1
  85. package/dist/app/commands/project-scope-selection.js +2 -0
  86. package/dist/app/commands/project-scope-selection.js.map +1 -1
  87. package/dist/app/commands/resume-probe.d.ts.map +1 -1
  88. package/dist/app/commands/resume-probe.js +8 -2
  89. package/dist/app/commands/resume-probe.js.map +1 -1
  90. package/dist/app/commands/status.d.ts +0 -32
  91. package/dist/app/commands/status.d.ts.map +1 -1
  92. package/dist/app/commands/status.js +44 -177
  93. package/dist/app/commands/status.js.map +1 -1
  94. package/dist/app/commands/update.d.ts +20 -4
  95. package/dist/app/commands/update.d.ts.map +1 -1
  96. package/dist/app/commands/update.js +698 -90
  97. package/dist/app/commands/update.js.map +1 -1
  98. package/dist/app/commands/workflow.d.ts +6 -0
  99. package/dist/app/commands/workflow.d.ts.map +1 -0
  100. package/dist/app/commands/workflow.js +11 -0
  101. package/dist/app/commands/workflow.js.map +1 -0
  102. package/dist/config/repository-layout.json +21 -1
  103. package/dist/domains/comet-classic/classic-archive.d.ts.map +1 -1
  104. package/dist/domains/comet-classic/classic-archive.js +3 -0
  105. package/dist/domains/comet-classic/classic-archive.js.map +1 -1
  106. package/dist/domains/comet-classic/classic-current-change.d.ts +3 -5
  107. package/dist/domains/comet-classic/classic-current-change.d.ts.map +1 -1
  108. package/dist/domains/comet-classic/classic-current-change.js +31 -57
  109. package/dist/domains/comet-classic/classic-current-change.js.map +1 -1
  110. package/dist/domains/comet-classic/classic-hook-guard.d.ts +9 -0
  111. package/dist/domains/comet-classic/classic-hook-guard.d.ts.map +1 -1
  112. package/dist/domains/comet-classic/classic-hook-guard.js +84 -11
  113. package/dist/domains/comet-classic/classic-hook-guard.js.map +1 -1
  114. package/dist/domains/comet-classic/classic-project-config.d.ts.map +1 -1
  115. package/dist/domains/comet-classic/classic-project-config.js +12 -8
  116. package/dist/domains/comet-classic/classic-project-config.js.map +1 -1
  117. package/dist/domains/comet-classic/classic-runtime-run.d.ts.map +1 -1
  118. package/dist/domains/comet-classic/classic-runtime-run.js +9 -1
  119. package/dist/domains/comet-classic/classic-runtime-run.js.map +1 -1
  120. package/dist/domains/comet-entry/current-selection-repair.d.ts +17 -0
  121. package/dist/domains/comet-entry/current-selection-repair.d.ts.map +1 -0
  122. package/dist/domains/comet-entry/current-selection-repair.js +19 -0
  123. package/dist/domains/comet-entry/current-selection-repair.js.map +1 -0
  124. package/dist/domains/comet-entry/current-selection.d.ts +28 -0
  125. package/dist/domains/comet-entry/current-selection.d.ts.map +1 -0
  126. package/dist/domains/comet-entry/current-selection.js +116 -0
  127. package/dist/domains/comet-entry/current-selection.js.map +1 -0
  128. package/dist/domains/comet-entry/entry-runtime-entry.d.ts +2 -0
  129. package/dist/domains/comet-entry/entry-runtime-entry.d.ts.map +1 -0
  130. package/dist/domains/comet-entry/entry-runtime-entry.js +3 -0
  131. package/dist/domains/comet-entry/entry-runtime-entry.js.map +1 -0
  132. package/dist/domains/comet-entry/entry-runtime.d.ts +7 -0
  133. package/dist/domains/comet-entry/entry-runtime.d.ts.map +1 -0
  134. package/dist/domains/comet-entry/entry-runtime.js +55 -0
  135. package/dist/domains/comet-entry/entry-runtime.js.map +1 -0
  136. package/dist/domains/comet-entry/hook-adapter.d.ts +6 -0
  137. package/dist/domains/comet-entry/hook-adapter.d.ts.map +1 -0
  138. package/dist/domains/comet-entry/hook-adapter.js +202 -0
  139. package/dist/domains/comet-entry/hook-adapter.js.map +1 -0
  140. package/dist/domains/comet-entry/hook-router-entry.d.ts +8 -0
  141. package/dist/domains/comet-entry/hook-router-entry.d.ts.map +1 -0
  142. package/dist/domains/comet-entry/hook-router-entry.js +92 -0
  143. package/dist/domains/comet-entry/hook-router-entry.js.map +1 -0
  144. package/dist/domains/comet-entry/hook-router.d.ts +32 -0
  145. package/dist/domains/comet-entry/hook-router.d.ts.map +1 -0
  146. package/dist/domains/comet-entry/hook-router.js +133 -0
  147. package/dist/domains/comet-entry/hook-router.js.map +1 -0
  148. package/dist/domains/comet-entry/hook-types.d.ts +20 -0
  149. package/dist/domains/comet-entry/hook-types.d.ts.map +1 -0
  150. package/dist/domains/comet-entry/hook-types.js +2 -0
  151. package/dist/domains/comet-entry/hook-types.js.map +1 -0
  152. package/dist/domains/comet-entry/init-workflow.d.ts +16 -0
  153. package/dist/domains/comet-entry/init-workflow.d.ts.map +1 -0
  154. package/dist/domains/comet-entry/init-workflow.js +103 -0
  155. package/dist/domains/comet-entry/init-workflow.js.map +1 -0
  156. package/dist/domains/comet-entry/project-status.d.ts +3 -0
  157. package/dist/domains/comet-entry/project-status.d.ts.map +1 -0
  158. package/dist/domains/comet-entry/project-status.js +222 -0
  159. package/dist/domains/comet-entry/project-status.js.map +1 -0
  160. package/dist/domains/comet-entry/resolve-entry.d.ts +3 -0
  161. package/dist/domains/comet-entry/resolve-entry.d.ts.map +1 -0
  162. package/dist/domains/comet-entry/resolve-entry.js +22 -0
  163. package/dist/domains/comet-entry/resolve-entry.js.map +1 -0
  164. package/dist/domains/comet-entry/resume-probe.d.ts +34 -0
  165. package/dist/domains/comet-entry/resume-probe.d.ts.map +1 -0
  166. package/dist/domains/comet-entry/resume-probe.js +458 -0
  167. package/dist/domains/comet-entry/resume-probe.js.map +1 -0
  168. package/dist/domains/comet-entry/types.d.ts +59 -0
  169. package/dist/domains/comet-entry/types.d.ts.map +1 -0
  170. package/dist/domains/comet-entry/types.js +2 -0
  171. package/dist/domains/comet-entry/types.js.map +1 -0
  172. package/dist/domains/comet-entry/workflow-resolution.d.ts +8 -0
  173. package/dist/domains/comet-entry/workflow-resolution.d.ts.map +1 -0
  174. package/dist/domains/comet-entry/workflow-resolution.js +16 -0
  175. package/dist/domains/comet-entry/workflow-resolution.js.map +1 -0
  176. package/dist/domains/comet-native/index.d.ts +35 -0
  177. package/dist/domains/comet-native/index.d.ts.map +1 -0
  178. package/dist/domains/comet-native/index.js +35 -0
  179. package/dist/domains/comet-native/index.js.map +1 -0
  180. package/dist/domains/comet-native/native-acceptance.d.ts +42 -0
  181. package/dist/domains/comet-native/native-acceptance.d.ts.map +1 -0
  182. package/dist/domains/comet-native/native-acceptance.js +503 -0
  183. package/dist/domains/comet-native/native-acceptance.js.map +1 -0
  184. package/dist/domains/comet-native/native-archive-content.d.ts +26 -0
  185. package/dist/domains/comet-native/native-archive-content.d.ts.map +1 -0
  186. package/dist/domains/comet-native/native-archive-content.js +159 -0
  187. package/dist/domains/comet-native/native-archive-content.js.map +1 -0
  188. package/dist/domains/comet-native/native-archive-inspection.d.ts +9 -0
  189. package/dist/domains/comet-native/native-archive-inspection.d.ts.map +1 -0
  190. package/dist/domains/comet-native/native-archive-inspection.js +94 -0
  191. package/dist/domains/comet-native/native-archive-inspection.js.map +1 -0
  192. package/dist/domains/comet-native/native-archive-preflight.d.ts +52 -0
  193. package/dist/domains/comet-native/native-archive-preflight.d.ts.map +1 -0
  194. package/dist/domains/comet-native/native-archive-preflight.js +214 -0
  195. package/dist/domains/comet-native/native-archive-preflight.js.map +1 -0
  196. package/dist/domains/comet-native/native-archive-transaction.d.ts +19 -0
  197. package/dist/domains/comet-native/native-archive-transaction.d.ts.map +1 -0
  198. package/dist/domains/comet-native/native-archive-transaction.js +1181 -0
  199. package/dist/domains/comet-native/native-archive-transaction.js.map +1 -0
  200. package/dist/domains/comet-native/native-archive.d.ts +36 -0
  201. package/dist/domains/comet-native/native-archive.d.ts.map +1 -0
  202. package/dist/domains/comet-native/native-archive.js +403 -0
  203. package/dist/domains/comet-native/native-archive.js.map +1 -0
  204. package/dist/domains/comet-native/native-artifacts.d.ts +10 -0
  205. package/dist/domains/comet-native/native-artifacts.d.ts.map +1 -0
  206. package/dist/domains/comet-native/native-artifacts.js +204 -0
  207. package/dist/domains/comet-native/native-artifacts.js.map +1 -0
  208. package/dist/domains/comet-native/native-atomic-file.d.ts +10 -0
  209. package/dist/domains/comet-native/native-atomic-file.d.ts.map +1 -0
  210. package/dist/domains/comet-native/native-atomic-file.js +175 -0
  211. package/dist/domains/comet-native/native-atomic-file.js.map +1 -0
  212. package/dist/domains/comet-native/native-bounded-file.d.ts +19 -0
  213. package/dist/domains/comet-native/native-bounded-file.d.ts.map +1 -0
  214. package/dist/domains/comet-native/native-bounded-file.js +180 -0
  215. package/dist/domains/comet-native/native-bounded-file.js.map +1 -0
  216. package/dist/domains/comet-native/native-build-evidence.d.ts +42 -0
  217. package/dist/domains/comet-native/native-build-evidence.d.ts.map +1 -0
  218. package/dist/domains/comet-native/native-build-evidence.js +257 -0
  219. package/dist/domains/comet-native/native-build-evidence.js.map +1 -0
  220. package/dist/domains/comet-native/native-canonical-hash.d.ts +10 -0
  221. package/dist/domains/comet-native/native-canonical-hash.d.ts.map +1 -0
  222. package/dist/domains/comet-native/native-canonical-hash.js +100 -0
  223. package/dist/domains/comet-native/native-canonical-hash.js.map +1 -0
  224. package/dist/domains/comet-native/native-change-recovery.d.ts +11 -0
  225. package/dist/domains/comet-native/native-change-recovery.d.ts.map +1 -0
  226. package/dist/domains/comet-native/native-change-recovery.js +15 -0
  227. package/dist/domains/comet-native/native-change-recovery.js.map +1 -0
  228. package/dist/domains/comet-native/native-change.d.ts +61 -0
  229. package/dist/domains/comet-native/native-change.d.ts.map +1 -0
  230. package/dist/domains/comet-native/native-change.js +696 -0
  231. package/dist/domains/comet-native/native-change.js.map +1 -0
  232. package/dist/domains/comet-native/native-check-receipt-model.d.ts +63 -0
  233. package/dist/domains/comet-native/native-check-receipt-model.d.ts.map +1 -0
  234. package/dist/domains/comet-native/native-check-receipt-model.js +347 -0
  235. package/dist/domains/comet-native/native-check-receipt-model.js.map +1 -0
  236. package/dist/domains/comet-native/native-check-receipt-storage.d.ts +10 -0
  237. package/dist/domains/comet-native/native-check-receipt-storage.d.ts.map +1 -0
  238. package/dist/domains/comet-native/native-check-receipt-storage.js +196 -0
  239. package/dist/domains/comet-native/native-check-receipt-storage.js.map +1 -0
  240. package/dist/domains/comet-native/native-check-receipt.d.ts +19 -0
  241. package/dist/domains/comet-native/native-check-receipt.d.ts.map +1 -0
  242. package/dist/domains/comet-native/native-check-receipt.js +446 -0
  243. package/dist/domains/comet-native/native-check-receipt.js.map +1 -0
  244. package/dist/domains/comet-native/native-check.d.ts +18 -0
  245. package/dist/domains/comet-native/native-check.d.ts.map +1 -0
  246. package/dist/domains/comet-native/native-check.js +29 -0
  247. package/dist/domains/comet-native/native-check.js.map +1 -0
  248. package/dist/domains/comet-native/native-checkpoint-journal.d.ts +13 -0
  249. package/dist/domains/comet-native/native-checkpoint-journal.d.ts.map +1 -0
  250. package/dist/domains/comet-native/native-checkpoint-journal.js +53 -0
  251. package/dist/domains/comet-native/native-checkpoint-journal.js.map +1 -0
  252. package/dist/domains/comet-native/native-checkpoint-storage.d.ts +43 -0
  253. package/dist/domains/comet-native/native-checkpoint-storage.d.ts.map +1 -0
  254. package/dist/domains/comet-native/native-checkpoint-storage.js +487 -0
  255. package/dist/domains/comet-native/native-checkpoint-storage.js.map +1 -0
  256. package/dist/domains/comet-native/native-cli-entry.d.ts +2 -0
  257. package/dist/domains/comet-native/native-cli-entry.d.ts.map +1 -0
  258. package/dist/domains/comet-native/native-cli-entry.js +18 -0
  259. package/dist/domains/comet-native/native-cli-entry.js.map +1 -0
  260. package/dist/domains/comet-native/native-cli.d.ts +7 -0
  261. package/dist/domains/comet-native/native-cli.d.ts.map +1 -0
  262. package/dist/domains/comet-native/native-cli.js +642 -0
  263. package/dist/domains/comet-native/native-cli.js.map +1 -0
  264. package/dist/domains/comet-native/native-config.d.ts +15 -0
  265. package/dist/domains/comet-native/native-config.d.ts.map +1 -0
  266. package/dist/domains/comet-native/native-config.js +281 -0
  267. package/dist/domains/comet-native/native-config.js.map +1 -0
  268. package/dist/domains/comet-native/native-conflict-inspection.d.ts +17 -0
  269. package/dist/domains/comet-native/native-conflict-inspection.d.ts.map +1 -0
  270. package/dist/domains/comet-native/native-conflict-inspection.js +90 -0
  271. package/dist/domains/comet-native/native-conflict-inspection.js.map +1 -0
  272. package/dist/domains/comet-native/native-conflict-radar.d.ts +75 -0
  273. package/dist/domains/comet-native/native-conflict-radar.d.ts.map +1 -0
  274. package/dist/domains/comet-native/native-conflict-radar.js +326 -0
  275. package/dist/domains/comet-native/native-conflict-radar.js.map +1 -0
  276. package/dist/domains/comet-native/native-continuation.d.ts +9 -0
  277. package/dist/domains/comet-native/native-continuation.d.ts.map +1 -0
  278. package/dist/domains/comet-native/native-continuation.js +146 -0
  279. package/dist/domains/comet-native/native-continuation.js.map +1 -0
  280. package/dist/domains/comet-native/native-contract-files.d.ts +24 -0
  281. package/dist/domains/comet-native/native-contract-files.d.ts.map +1 -0
  282. package/dist/domains/comet-native/native-contract-files.js +66 -0
  283. package/dist/domains/comet-native/native-contract-files.js.map +1 -0
  284. package/dist/domains/comet-native/native-contract.d.ts +41 -0
  285. package/dist/domains/comet-native/native-contract.d.ts.map +1 -0
  286. package/dist/domains/comet-native/native-contract.js +141 -0
  287. package/dist/domains/comet-native/native-contract.js.map +1 -0
  288. package/dist/domains/comet-native/native-diagnostics.d.ts +18 -0
  289. package/dist/domains/comet-native/native-diagnostics.d.ts.map +1 -0
  290. package/dist/domains/comet-native/native-diagnostics.js +522 -0
  291. package/dist/domains/comet-native/native-diagnostics.js.map +1 -0
  292. package/dist/domains/comet-native/native-doctor.d.ts +12 -0
  293. package/dist/domains/comet-native/native-doctor.d.ts.map +1 -0
  294. package/dist/domains/comet-native/native-doctor.js +768 -0
  295. package/dist/domains/comet-native/native-doctor.js.map +1 -0
  296. package/dist/domains/comet-native/native-evidence-retention.d.ts +37 -0
  297. package/dist/domains/comet-native/native-evidence-retention.d.ts.map +1 -0
  298. package/dist/domains/comet-native/native-evidence-retention.js +885 -0
  299. package/dist/domains/comet-native/native-evidence-retention.js.map +1 -0
  300. package/dist/domains/comet-native/native-evidence-storage.d.ts +41 -0
  301. package/dist/domains/comet-native/native-evidence-storage.d.ts.map +1 -0
  302. package/dist/domains/comet-native/native-evidence-storage.js +351 -0
  303. package/dist/domains/comet-native/native-evidence-storage.js.map +1 -0
  304. package/dist/domains/comet-native/native-findings.d.ts +8 -0
  305. package/dist/domains/comet-native/native-findings.d.ts.map +1 -0
  306. package/dist/domains/comet-native/native-findings.js +238 -0
  307. package/dist/domains/comet-native/native-findings.js.map +1 -0
  308. package/dist/domains/comet-native/native-guards.d.ts +7 -0
  309. package/dist/domains/comet-native/native-guards.d.ts.map +1 -0
  310. package/dist/domains/comet-native/native-guards.js +126 -0
  311. package/dist/domains/comet-native/native-guards.js.map +1 -0
  312. package/dist/domains/comet-native/native-hash.d.ts +3 -0
  313. package/dist/domains/comet-native/native-hash.d.ts.map +1 -0
  314. package/dist/domains/comet-native/native-hash.js +12 -0
  315. package/dist/domains/comet-native/native-hash.js.map +1 -0
  316. package/dist/domains/comet-native/native-hook-guard.d.ts +17 -0
  317. package/dist/domains/comet-native/native-hook-guard.d.ts.map +1 -0
  318. package/dist/domains/comet-native/native-hook-guard.js +154 -0
  319. package/dist/domains/comet-native/native-hook-guard.js.map +1 -0
  320. package/dist/domains/comet-native/native-lock.d.ts +47 -0
  321. package/dist/domains/comet-native/native-lock.d.ts.map +1 -0
  322. package/dist/domains/comet-native/native-lock.js +395 -0
  323. package/dist/domains/comet-native/native-lock.js.map +1 -0
  324. package/dist/domains/comet-native/native-mutation-lock.d.ts +5 -0
  325. package/dist/domains/comet-native/native-mutation-lock.d.ts.map +1 -0
  326. package/dist/domains/comet-native/native-mutation-lock.js +66 -0
  327. package/dist/domains/comet-native/native-mutation-lock.js.map +1 -0
  328. package/dist/domains/comet-native/native-paths.d.ts +10 -0
  329. package/dist/domains/comet-native/native-paths.d.ts.map +1 -0
  330. package/dist/domains/comet-native/native-paths.js +171 -0
  331. package/dist/domains/comet-native/native-paths.js.map +1 -0
  332. package/dist/domains/comet-native/native-progress-checkpoint.d.ts +13 -0
  333. package/dist/domains/comet-native/native-progress-checkpoint.d.ts.map +1 -0
  334. package/dist/domains/comet-native/native-progress-checkpoint.js +104 -0
  335. package/dist/domains/comet-native/native-progress-checkpoint.js.map +1 -0
  336. package/dist/domains/comet-native/native-protected-file.d.ts +113 -0
  337. package/dist/domains/comet-native/native-protected-file.d.ts.map +1 -0
  338. package/dist/domains/comet-native/native-protected-file.js +509 -0
  339. package/dist/domains/comet-native/native-protected-file.js.map +1 -0
  340. package/dist/domains/comet-native/native-redaction.d.ts +2 -0
  341. package/dist/domains/comet-native/native-redaction.d.ts.map +1 -0
  342. package/dist/domains/comet-native/native-redaction.js +18 -0
  343. package/dist/domains/comet-native/native-redaction.js.map +1 -0
  344. package/dist/domains/comet-native/native-repair-integration.d.ts +42 -0
  345. package/dist/domains/comet-native/native-repair-integration.d.ts.map +1 -0
  346. package/dist/domains/comet-native/native-repair-integration.js +184 -0
  347. package/dist/domains/comet-native/native-repair-integration.js.map +1 -0
  348. package/dist/domains/comet-native/native-repair-runtime.d.ts +73 -0
  349. package/dist/domains/comet-native/native-repair-runtime.d.ts.map +1 -0
  350. package/dist/domains/comet-native/native-repair-runtime.js +509 -0
  351. package/dist/domains/comet-native/native-repair-runtime.js.map +1 -0
  352. package/dist/domains/comet-native/native-repair-stagnation.d.ts +85 -0
  353. package/dist/domains/comet-native/native-repair-stagnation.d.ts.map +1 -0
  354. package/dist/domains/comet-native/native-repair-stagnation.js +256 -0
  355. package/dist/domains/comet-native/native-repair-stagnation.js.map +1 -0
  356. package/dist/domains/comet-native/native-resume-view.d.ts +14 -0
  357. package/dist/domains/comet-native/native-resume-view.d.ts.map +1 -0
  358. package/dist/domains/comet-native/native-resume-view.js +105 -0
  359. package/dist/domains/comet-native/native-resume-view.js.map +1 -0
  360. package/dist/domains/comet-native/native-revision.d.ts +20 -0
  361. package/dist/domains/comet-native/native-revision.d.ts.map +1 -0
  362. package/dist/domains/comet-native/native-revision.js +32 -0
  363. package/dist/domains/comet-native/native-revision.js.map +1 -0
  364. package/dist/domains/comet-native/native-root-move.d.ts +20 -0
  365. package/dist/domains/comet-native/native-root-move.d.ts.map +1 -0
  366. package/dist/domains/comet-native/native-root-move.js +812 -0
  367. package/dist/domains/comet-native/native-root-move.js.map +1 -0
  368. package/dist/domains/comet-native/native-run-consistency.d.ts +3 -0
  369. package/dist/domains/comet-native/native-run-consistency.d.ts.map +1 -0
  370. package/dist/domains/comet-native/native-run-consistency.js +136 -0
  371. package/dist/domains/comet-native/native-run-consistency.js.map +1 -0
  372. package/dist/domains/comet-native/native-run-store.d.ts +41 -0
  373. package/dist/domains/comet-native/native-run-store.d.ts.map +1 -0
  374. package/dist/domains/comet-native/native-run-store.js +451 -0
  375. package/dist/domains/comet-native/native-run-store.js.map +1 -0
  376. package/dist/domains/comet-native/native-runtime-package.d.ts +16 -0
  377. package/dist/domains/comet-native/native-runtime-package.d.ts.map +1 -0
  378. package/dist/domains/comet-native/native-runtime-package.js +72 -0
  379. package/dist/domains/comet-native/native-runtime-package.js.map +1 -0
  380. package/dist/domains/comet-native/native-schema-migration.d.ts +11 -0
  381. package/dist/domains/comet-native/native-schema-migration.d.ts.map +1 -0
  382. package/dist/domains/comet-native/native-schema-migration.js +899 -0
  383. package/dist/domains/comet-native/native-schema-migration.js.map +1 -0
  384. package/dist/domains/comet-native/native-selection.d.ts +12 -0
  385. package/dist/domains/comet-native/native-selection.d.ts.map +1 -0
  386. package/dist/domains/comet-native/native-selection.js +52 -0
  387. package/dist/domains/comet-native/native-selection.js.map +1 -0
  388. package/dist/domains/comet-native/native-sensitive-paths.d.ts +7 -0
  389. package/dist/domains/comet-native/native-sensitive-paths.d.ts.map +1 -0
  390. package/dist/domains/comet-native/native-sensitive-paths.js +69 -0
  391. package/dist/domains/comet-native/native-sensitive-paths.js.map +1 -0
  392. package/dist/domains/comet-native/native-snapshot.d.ts +74 -0
  393. package/dist/domains/comet-native/native-snapshot.d.ts.map +1 -0
  394. package/dist/domains/comet-native/native-snapshot.js +2308 -0
  395. package/dist/domains/comet-native/native-snapshot.js.map +1 -0
  396. package/dist/domains/comet-native/native-specs.d.ts +12 -0
  397. package/dist/domains/comet-native/native-specs.d.ts.map +1 -0
  398. package/dist/domains/comet-native/native-specs.js +270 -0
  399. package/dist/domains/comet-native/native-specs.js.map +1 -0
  400. package/dist/domains/comet-native/native-trajectory-limits.d.ts +7 -0
  401. package/dist/domains/comet-native/native-trajectory-limits.d.ts.map +1 -0
  402. package/dist/domains/comet-native/native-trajectory-limits.js +13 -0
  403. package/dist/domains/comet-native/native-trajectory-limits.js.map +1 -0
  404. package/dist/domains/comet-native/native-trajectory-recovery.d.ts +37 -0
  405. package/dist/domains/comet-native/native-trajectory-recovery.d.ts.map +1 -0
  406. package/dist/domains/comet-native/native-trajectory-recovery.js +133 -0
  407. package/dist/domains/comet-native/native-trajectory-recovery.js.map +1 -0
  408. package/dist/domains/comet-native/native-trajectory.d.ts +16 -0
  409. package/dist/domains/comet-native/native-trajectory.d.ts.map +1 -0
  410. package/dist/domains/comet-native/native-trajectory.js +27 -0
  411. package/dist/domains/comet-native/native-trajectory.js.map +1 -0
  412. package/dist/domains/comet-native/native-transaction.d.ts +45 -0
  413. package/dist/domains/comet-native/native-transaction.d.ts.map +1 -0
  414. package/dist/domains/comet-native/native-transaction.js +846 -0
  415. package/dist/domains/comet-native/native-transaction.js.map +1 -0
  416. package/dist/domains/comet-native/native-transition-evidence.d.ts +4 -0
  417. package/dist/domains/comet-native/native-transition-evidence.d.ts.map +1 -0
  418. package/dist/domains/comet-native/native-transition-evidence.js +20 -0
  419. package/dist/domains/comet-native/native-transition-evidence.js.map +1 -0
  420. package/dist/domains/comet-native/native-transition-journal.d.ts +30 -0
  421. package/dist/domains/comet-native/native-transition-journal.d.ts.map +1 -0
  422. package/dist/domains/comet-native/native-transition-journal.js +819 -0
  423. package/dist/domains/comet-native/native-transition-journal.js.map +1 -0
  424. package/dist/domains/comet-native/native-transitions.d.ts +13 -0
  425. package/dist/domains/comet-native/native-transitions.d.ts.map +1 -0
  426. package/dist/domains/comet-native/native-transitions.js +632 -0
  427. package/dist/domains/comet-native/native-transitions.js.map +1 -0
  428. package/dist/domains/comet-native/native-types.d.ts +547 -0
  429. package/dist/domains/comet-native/native-types.d.ts.map +1 -0
  430. package/dist/domains/comet-native/native-types.js +8 -0
  431. package/dist/domains/comet-native/native-types.js.map +1 -0
  432. package/dist/domains/comet-native/native-verification-evidence.d.ts +86 -0
  433. package/dist/domains/comet-native/native-verification-evidence.d.ts.map +1 -0
  434. package/dist/domains/comet-native/native-verification-evidence.js +480 -0
  435. package/dist/domains/comet-native/native-verification-evidence.js.map +1 -0
  436. package/dist/domains/comet-native/native-verification-runtime.d.ts +58 -0
  437. package/dist/domains/comet-native/native-verification-runtime.d.ts.map +1 -0
  438. package/dist/domains/comet-native/native-verification-runtime.js +321 -0
  439. package/dist/domains/comet-native/native-verification-runtime.js.map +1 -0
  440. package/dist/domains/comet-native/native-verification-scope.d.ts +117 -0
  441. package/dist/domains/comet-native/native-verification-scope.d.ts.map +1 -0
  442. package/dist/domains/comet-native/native-verification-scope.js +1040 -0
  443. package/dist/domains/comet-native/native-verification-scope.js.map +1 -0
  444. package/dist/domains/comet-native/native-workspace.d.ts +46 -0
  445. package/dist/domains/comet-native/native-workspace.d.ts.map +1 -0
  446. package/dist/domains/comet-native/native-workspace.js +276 -0
  447. package/dist/domains/comet-native/native-workspace.js.map +1 -0
  448. package/dist/domains/dashboard/collector.d.ts.map +1 -1
  449. package/dist/domains/dashboard/collector.js +9 -1
  450. package/dist/domains/dashboard/collector.js.map +1 -1
  451. package/dist/domains/dashboard/native-adapter.d.ts +157 -0
  452. package/dist/domains/dashboard/native-adapter.d.ts.map +1 -0
  453. package/dist/domains/dashboard/native-adapter.js +302 -0
  454. package/dist/domains/dashboard/native-adapter.js.map +1 -0
  455. package/dist/domains/dashboard/native-collector.d.ts +6 -0
  456. package/dist/domains/dashboard/native-collector.d.ts.map +1 -0
  457. package/dist/domains/dashboard/native-collector.js +285 -0
  458. package/dist/domains/dashboard/native-collector.js.map +1 -0
  459. package/dist/domains/dashboard/types.d.ts +5 -0
  460. package/dist/domains/dashboard/types.d.ts.map +1 -1
  461. package/dist/domains/dashboard/web/assets/{arc-TGVUG2WN.js → arc-CxdiLJ50.js} +1 -1
  462. package/dist/domains/dashboard/web/assets/{architectureDiagram-3BPJPVTR-ASHmiHoP.js → architectureDiagram-3BPJPVTR-D5YCQu4e.js} +1 -1
  463. package/dist/domains/dashboard/web/assets/{blockDiagram-GPEHLZMM-CwASxBKe.js → blockDiagram-GPEHLZMM-8NfdCOQ8.js} +1 -1
  464. package/dist/domains/dashboard/web/assets/{c4Diagram-AAUBKEIU-BU8z_WNk.js → c4Diagram-AAUBKEIU-B3cFnNT7.js} +1 -1
  465. package/dist/domains/dashboard/web/assets/channel-B6AFly29.js +1 -0
  466. package/dist/domains/dashboard/web/assets/{chunk-2J33WTMH-CBGlUx4_.js → chunk-2J33WTMH-CBNfW-Dr.js} +1 -1
  467. package/dist/domains/dashboard/web/assets/{chunk-4BX2VUAB-CS-iGcFz.js → chunk-4BX2VUAB-vWyemRBr.js} +1 -1
  468. package/dist/domains/dashboard/web/assets/{chunk-55IACEB6-BUtCVJat.js → chunk-55IACEB6-H6haOo2C.js} +1 -1
  469. package/dist/domains/dashboard/web/assets/{chunk-727SXJPM-C94tj_pf.js → chunk-727SXJPM-D02UjGND.js} +1 -1
  470. package/dist/domains/dashboard/web/assets/{chunk-AQP2D5EJ-BFOKcpdG.js → chunk-AQP2D5EJ-wKsbOw_T.js} +1 -1
  471. package/dist/domains/dashboard/web/assets/{chunk-FMBD7UC4-Dmx8B-st.js → chunk-FMBD7UC4-eYFEZimP.js} +1 -1
  472. package/dist/domains/dashboard/web/assets/{chunk-ND2GUHAM-DYV00CNn.js → chunk-ND2GUHAM-fMaIDDI2.js} +1 -1
  473. package/dist/domains/dashboard/web/assets/{chunk-QZHKN3VN-DMJJyQnw.js → chunk-QZHKN3VN-C9rhF6Hm.js} +1 -1
  474. package/dist/domains/dashboard/web/assets/classDiagram-4FO5ZUOK-BcnrxOTt.js +1 -0
  475. package/dist/domains/dashboard/web/assets/classDiagram-v2-Q7XG4LA2-BcnrxOTt.js +1 -0
  476. package/dist/domains/dashboard/web/assets/{cose-bilkent-S5V4N54A-P4nE2rea.js → cose-bilkent-S5V4N54A-CbaShPub.js} +1 -1
  477. package/dist/domains/dashboard/web/assets/{cynefin-VYW2F7L2-C-R1HXDv.js → cynefin-VYW2F7L2-DN4emAQv.js} +1 -1
  478. package/dist/domains/dashboard/web/assets/{dagre-BM42HDAG-BH8d-C9z.js → dagre-BM42HDAG-BpSzbk_V.js} +1 -1
  479. package/dist/domains/dashboard/web/assets/demo-BuVau32v.js +25 -0
  480. package/dist/domains/dashboard/web/assets/{diagram-2AECGRRQ-DpXTgQIH.js → diagram-2AECGRRQ-CfXwGGpQ.js} +1 -1
  481. package/dist/domains/dashboard/web/assets/{diagram-5GNKFQAL-DSiFJzSw.js → diagram-5GNKFQAL-DMp0Zmot.js} +1 -1
  482. package/dist/domains/dashboard/web/assets/{diagram-KO2AKTUF-DULMkben.js → diagram-KO2AKTUF-C7ZvofsM.js} +1 -1
  483. package/dist/domains/dashboard/web/assets/{diagram-LMA3HP47-Pi8m_NO9.js → diagram-LMA3HP47-BjmxFnap.js} +1 -1
  484. package/dist/domains/dashboard/web/assets/{diagram-OG6HWLK6-BSe6bCWm.js → diagram-OG6HWLK6-DFBG1Iqy.js} +1 -1
  485. package/dist/domains/dashboard/web/assets/{erDiagram-TEJ5UH35-zb-FEcbq.js → erDiagram-TEJ5UH35-MpNT7dzt.js} +1 -1
  486. package/dist/domains/dashboard/web/assets/{flowDiagram-I6XJVG4X-Dr-Gk0z2.js → flowDiagram-I6XJVG4X-_1wAR6c1.js} +1 -1
  487. package/dist/domains/dashboard/web/assets/{ganttDiagram-6RSMTGT7-qs6Zb2A6.js → ganttDiagram-6RSMTGT7-DJKjDeWl.js} +1 -1
  488. package/dist/domains/dashboard/web/assets/{gitGraphDiagram-PVQCEYII-BQ314orT.js → gitGraphDiagram-PVQCEYII-BL7yUEn-.js} +1 -1
  489. package/dist/domains/dashboard/web/assets/index-CjE9mHGb.js +24 -0
  490. package/dist/domains/dashboard/web/assets/index-D-AGxvI4.css +1 -0
  491. package/dist/domains/dashboard/web/assets/{infoDiagram-5YYISTIA-O0bQp98A.js → infoDiagram-5YYISTIA-Bt5fqrOd.js} +1 -1
  492. package/dist/domains/dashboard/web/assets/{ishikawaDiagram-YF4QCWOH-BPC7wbKh.js → ishikawaDiagram-YF4QCWOH-COCMcjBM.js} +1 -1
  493. package/dist/domains/dashboard/web/assets/{journeyDiagram-JHISSGLW-ohViOd4b.js → journeyDiagram-JHISSGLW-DGcpcWny.js} +1 -1
  494. package/dist/domains/dashboard/web/assets/{kanban-definition-UN3LZRKU-CHleNdbG.js → kanban-definition-UN3LZRKU-QSBNsWMP.js} +1 -1
  495. package/dist/domains/dashboard/web/assets/{linear-CyqiW--Q.js → linear-9uyeeBZf.js} +1 -1
  496. package/dist/domains/dashboard/web/assets/{mermaid.core-qS9XvtaK.js → mermaid.core-CkNdB471.js} +4 -4
  497. package/dist/domains/dashboard/web/assets/{mindmap-definition-RKZ34NQL-oaGkqO9l.js → mindmap-definition-RKZ34NQL-CiNxI0gP.js} +1 -1
  498. package/dist/domains/dashboard/web/assets/{pieDiagram-4H26LBE5-CPcB-AFh.js → pieDiagram-4H26LBE5-BLJ6QnRO.js} +1 -1
  499. package/dist/domains/dashboard/web/assets/{quadrantDiagram-W4KKPZXB-LFy52Qtj.js → quadrantDiagram-W4KKPZXB-CflW-eFH.js} +1 -1
  500. package/dist/domains/dashboard/web/assets/{requirementDiagram-4Y6WPE33-BdjeaYP_.js → requirementDiagram-4Y6WPE33-B9HLmRWH.js} +1 -1
  501. package/dist/domains/dashboard/web/assets/{sankeyDiagram-5OEKKPKP-DDJ4styL.js → sankeyDiagram-5OEKKPKP-6xnco5k5.js} +1 -1
  502. package/dist/domains/dashboard/web/assets/{sequenceDiagram-3UESZ5HK-BL5bFNoz.js → sequenceDiagram-3UESZ5HK-Dp1rujNZ.js} +1 -1
  503. package/dist/domains/dashboard/web/assets/{stateDiagram-AJRCARHV-BNUfikui.js → stateDiagram-AJRCARHV-C1Xc90ek.js} +1 -1
  504. package/dist/domains/dashboard/web/assets/stateDiagram-v2-BHNVJYJU-p-qmzXyE.js +1 -0
  505. package/dist/domains/dashboard/web/assets/{timeline-definition-PNZ67QCA--ps2uu6L.js → timeline-definition-PNZ67QCA-g9s-m5Z4.js} +1 -1
  506. package/dist/domains/dashboard/web/assets/{vennDiagram-CIIHVFJN-C2q8q26c.js → vennDiagram-CIIHVFJN-rkEyhyCc.js} +1 -1
  507. package/dist/domains/dashboard/web/assets/{wardleyDiagram-YWT4CUSO-BUH9gXqd.js → wardleyDiagram-YWT4CUSO-CJLrWGXc.js} +1 -1
  508. package/dist/domains/dashboard/web/assets/{xychartDiagram-2RQKCTM6-B-DielEy.js → xychartDiagram-2RQKCTM6-BxJvPNqo.js} +1 -1
  509. package/dist/domains/dashboard/web/index.html +2 -2
  510. package/dist/domains/engine/storage-layout.d.ts +14 -0
  511. package/dist/domains/engine/storage-layout.d.ts.map +1 -0
  512. package/dist/domains/engine/storage-layout.js +32 -0
  513. package/dist/domains/engine/storage-layout.js.map +1 -0
  514. package/dist/domains/engine/storage-run.d.ts +9 -0
  515. package/dist/domains/engine/storage-run.d.ts.map +1 -0
  516. package/dist/domains/engine/storage-run.js +116 -0
  517. package/dist/domains/engine/storage-run.js.map +1 -0
  518. package/dist/domains/factory/package.d.ts.map +1 -1
  519. package/dist/domains/factory/package.js +5 -3
  520. package/dist/domains/factory/package.js.map +1 -1
  521. package/dist/domains/integrations/openspec.d.ts.map +1 -1
  522. package/dist/domains/integrations/openspec.js +8 -6
  523. package/dist/domains/integrations/openspec.js.map +1 -1
  524. package/dist/domains/skill/platform-inspect.d.ts +6 -2
  525. package/dist/domains/skill/platform-inspect.d.ts.map +1 -1
  526. package/dist/domains/skill/platform-inspect.js +52 -8
  527. package/dist/domains/skill/platform-inspect.js.map +1 -1
  528. package/dist/domains/skill/platform-install.d.ts +18 -7
  529. package/dist/domains/skill/platform-install.d.ts.map +1 -1
  530. package/dist/domains/skill/platform-install.js +338 -71
  531. package/dist/domains/skill/platform-install.js.map +1 -1
  532. package/dist/domains/skill/project-instructions.d.ts.map +1 -1
  533. package/dist/domains/skill/project-instructions.js +12 -6
  534. package/dist/domains/skill/project-instructions.js.map +1 -1
  535. package/dist/domains/skill/uninstall.d.ts.map +1 -1
  536. package/dist/domains/skill/uninstall.js +15 -3
  537. package/dist/domains/skill/uninstall.js.map +1 -1
  538. package/dist/domains/workflow-contract/builtins.d.ts +6 -0
  539. package/dist/domains/workflow-contract/builtins.d.ts.map +1 -1
  540. package/dist/domains/workflow-contract/builtins.js +137 -0
  541. package/dist/domains/workflow-contract/builtins.js.map +1 -1
  542. package/dist/domains/workflow-contract/index.d.ts +3 -1
  543. package/dist/domains/workflow-contract/index.d.ts.map +1 -1
  544. package/dist/domains/workflow-contract/index.js +2 -1
  545. package/dist/domains/workflow-contract/index.js.map +1 -1
  546. package/dist/domains/workflow-contract/normalize.d.ts.map +1 -1
  547. package/dist/domains/workflow-contract/normalize.js +28 -10
  548. package/dist/domains/workflow-contract/normalize.js.map +1 -1
  549. package/dist/domains/workflow-contract/project-config.d.ts +7 -0
  550. package/dist/domains/workflow-contract/project-config.d.ts.map +1 -0
  551. package/dist/domains/workflow-contract/project-config.js +110 -0
  552. package/dist/domains/workflow-contract/project-config.js.map +1 -0
  553. package/dist/domains/workflow-contract/types.d.ts +4 -2
  554. package/dist/domains/workflow-contract/types.d.ts.map +1 -1
  555. package/dist/domains/workflow-contract/validation.d.ts.map +1 -1
  556. package/dist/domains/workflow-contract/validation.js +14 -5
  557. package/dist/domains/workflow-contract/validation.js.map +1 -1
  558. package/dist/platform/install/detect.d.ts +3 -1
  559. package/dist/platform/install/detect.d.ts.map +1 -1
  560. package/dist/platform/install/detect.js +4 -1
  561. package/dist/platform/install/detect.js.map +1 -1
  562. package/dist/platform/install/project-registry.js +2 -2
  563. package/dist/platform/install/project-registry.js.map +1 -1
  564. package/dist/platform/paths/repository-layout.d.ts +16 -0
  565. package/dist/platform/paths/repository-layout.d.ts.map +1 -1
  566. package/dist/platform/paths/repository-layout.js.map +1 -1
  567. package/eval/local/README.md +50 -0
  568. package/eval/local/scripts/compare_baselines.py +127 -1
  569. package/eval/local/scripts/regression_check.py +3 -4
  570. package/eval/local/tasks/comet-native-clarification/environment/Dockerfile +27 -0
  571. package/eval/local/tasks/comet-native-clarification/environment/test_wordcount.py +25 -0
  572. package/eval/local/tasks/comet-native-clarification/environment/wordcount.py +36 -0
  573. package/eval/local/tasks/comet-native-clarification/instruction.md +7 -0
  574. package/eval/local/tasks/comet-native-clarification/task.toml +40 -0
  575. package/eval/local/tasks/comet-native-clarification/validation/test_native_clarification.py +193 -0
  576. package/eval/local/tasks/comet-native-clarification-modes/environment/Dockerfile +27 -0
  577. package/eval/local/tasks/comet-native-clarification-modes/environment/test_wordcount.py +25 -0
  578. package/eval/local/tasks/comet-native-clarification-modes/environment/wordcount.py +36 -0
  579. package/eval/local/tasks/comet-native-clarification-modes/instruction.md +13 -0
  580. package/eval/local/tasks/comet-native-clarification-modes/task.toml +39 -0
  581. package/eval/local/tasks/comet-native-clarification-modes/validation/test_native_clarification_modes.py +235 -0
  582. package/eval/local/tasks/comet-native-interrupted-transition/environment/.comet/config.yaml +6 -0
  583. package/eval/local/tasks/comet-native-interrupted-transition/environment/Dockerfile +28 -0
  584. package/eval/local/tasks/comet-native-interrupted-transition/environment/docs/comet/changes/add-character-counting/brief.md +17 -0
  585. package/eval/local/tasks/comet-native-interrupted-transition/environment/docs/comet/changes/add-character-counting/comet-state.yaml +12 -0
  586. package/eval/local/tasks/comet-native-interrupted-transition/environment/docs/comet/changes/add-character-counting/runtime/transition.json +69 -0
  587. package/eval/local/tasks/comet-native-interrupted-transition/environment/docs/comet/changes/add-character-counting/specs/character-counting/spec.md +3 -0
  588. package/eval/local/tasks/comet-native-interrupted-transition/environment/test_wordcount.py +20 -0
  589. package/eval/local/tasks/comet-native-interrupted-transition/environment/wordcount.py +27 -0
  590. package/eval/local/tasks/comet-native-interrupted-transition/instruction.md +7 -0
  591. package/eval/local/tasks/comet-native-interrupted-transition/task.toml +35 -0
  592. package/eval/local/tasks/comet-native-interrupted-transition/validation/test_native_interrupted_transition.py +63 -0
  593. package/eval/local/tasks/comet-native-repository-fact/environment/Dockerfile +26 -0
  594. package/eval/local/tasks/comet-native-repository-fact/environment/PRODUCT_RULES.md +3 -0
  595. package/eval/local/tasks/comet-native-repository-fact/environment/test_wordcount.py +20 -0
  596. package/eval/local/tasks/comet-native-repository-fact/environment/wordcount.py +27 -0
  597. package/eval/local/tasks/comet-native-repository-fact/instruction.md +7 -0
  598. package/eval/local/tasks/comet-native-repository-fact/task.toml +35 -0
  599. package/eval/local/tasks/comet-native-repository-fact/validation/test_native_repository_fact.py +53 -0
  600. package/eval/local/tasks/comet-native-wave-b-decision-resume/environment/Dockerfile +27 -0
  601. package/eval/local/tasks/comet-native-wave-b-decision-resume/environment/test_wordcount.py +27 -0
  602. package/eval/local/tasks/comet-native-wave-b-decision-resume/environment/wordcount.py +36 -0
  603. package/eval/local/tasks/comet-native-wave-b-decision-resume/instruction.md +9 -0
  604. package/eval/local/tasks/comet-native-wave-b-decision-resume/task.toml +40 -0
  605. package/eval/local/tasks/comet-native-wave-b-decision-resume/validation/test_native_wave_b_decision_resume.py +208 -0
  606. package/eval/local/tasks/comet-native-wave-c-verification-integrity/environment/Dockerfile +27 -0
  607. package/eval/local/tasks/comet-native-wave-c-verification-integrity/environment/test_wordcount.py +27 -0
  608. package/eval/local/tasks/comet-native-wave-c-verification-integrity/environment/wordcount.py +36 -0
  609. package/eval/local/tasks/comet-native-wave-c-verification-integrity/instruction.md +11 -0
  610. package/eval/local/tasks/comet-native-wave-c-verification-integrity/task.toml +36 -0
  611. package/eval/local/tasks/comet-native-wave-c-verification-integrity/validation/test_native_wave_c_verification_integrity.py +344 -0
  612. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/environment/Dockerfile +27 -0
  613. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/environment/test_wordcount.py +27 -0
  614. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/environment/wordcount.py +36 -0
  615. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/instruction.md +11 -0
  616. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/task.toml +37 -0
  617. package/eval/local/tasks/comet-native-wave-d-stagnation-stop/validation/test_native_wave_d_stagnation_stop.py +284 -0
  618. package/eval/local/tasks/comet-native-wave-e-parallel-safety/environment/.include-trusted-native-runtime +1 -0
  619. package/eval/local/tasks/comet-native-wave-e-parallel-safety/environment/Dockerfile +27 -0
  620. package/eval/local/tasks/comet-native-wave-e-parallel-safety/environment/test_wordcount.py +27 -0
  621. package/eval/local/tasks/comet-native-wave-e-parallel-safety/environment/wordcount.py +36 -0
  622. package/eval/local/tasks/comet-native-wave-e-parallel-safety/instruction.md +9 -0
  623. package/eval/local/tasks/comet-native-wave-e-parallel-safety/task.toml +37 -0
  624. package/eval/local/tasks/comet-native-wave-e-parallel-safety/validation/test_native_wave_e_parallel_safety.py +309 -0
  625. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/.include-current-comet-cli +1 -0
  626. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/Dockerfile +31 -0
  627. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/current-comet-package.json +18 -0
  628. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/current-comet.sh +14 -0
  629. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/test_wordcount.py +27 -0
  630. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/environment/wordcount.py +36 -0
  631. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/instruction.md +7 -0
  632. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/task.toml +36 -0
  633. package/eval/local/tasks/comet-native-wave-f-dashboard-readonly/validation/test_native_wave_f_dashboard_readonly.py +469 -0
  634. package/eval/local/tasks/comet-native-workflow/environment/Dockerfile +27 -0
  635. package/eval/local/tasks/comet-native-workflow/environment/test_wordcount.py +25 -0
  636. package/eval/local/tasks/comet-native-workflow/environment/wordcount.py +36 -0
  637. package/eval/local/tasks/comet-native-workflow/instruction.md +14 -0
  638. package/eval/local/tasks/comet-native-workflow/task.toml +36 -0
  639. package/eval/local/tasks/comet-native-workflow/validation/test_native_workflow.py +149 -0
  640. package/eval/local/tasks/index.yaml +61 -0
  641. package/eval/local/tests/conftest.py +407 -22
  642. package/eval/local/tests/scaffold/test_aligned_comparison.py +1012 -0
  643. package/eval/local/tests/scaffold/test_conftest_helpers.py +187 -7
  644. package/eval/local/tests/scaffold/test_logging.py +135 -1
  645. package/eval/local/tests/scaffold/test_manifests.py +2 -0
  646. package/eval/local/tests/scaffold/test_native_aligned_eval.py +346 -0
  647. package/eval/local/tests/scaffold/test_native_wave_evaluations.py +1889 -0
  648. package/eval/local/tests/scaffold/test_profiles.py +33 -0
  649. package/eval/local/tests/scaffold/test_sample_quality.py +57 -0
  650. package/eval/local/tests/scaffold/test_tasks.py +377 -1
  651. package/eval/local/tests/scaffold/test_treatments.py +59 -13
  652. package/eval/local/tests/scaffold/test_utils.py +277 -4
  653. package/eval/local/tests/tasks/__init__.py +1 -0
  654. package/eval/local/tests/tasks/test_tasks.py +104 -78
  655. package/eval/local/tests/tasks/test_validation_scripts.py +37 -0
  656. package/eval/local/treatments/comet/comet_native_phase1.yaml +66 -0
  657. package/eval/scaffold/python/aligned_comparison.py +1631 -0
  658. package/eval/scaffold/python/generic_llm_judge.py +3 -1
  659. package/eval/scaffold/python/llm_judge.py +0 -3
  660. package/eval/scaffold/python/logging.py +115 -16
  661. package/eval/scaffold/python/manifests.py +2 -0
  662. package/eval/scaffold/python/native_eval.py +138 -0
  663. package/eval/scaffold/python/pass_at_k.py +0 -1
  664. package/eval/scaffold/python/report_outputs.py +226 -44
  665. package/eval/scaffold/python/sample_quality.py +45 -2
  666. package/eval/scaffold/python/tasks.py +11 -0
  667. package/eval/scaffold/python/utils.py +108 -20
  668. package/eval/scaffold/python/validation/__init__.py +15 -5
  669. package/eval/scaffold/python/validation/comet_workflow.py +10 -5
  670. package/eval/scaffold/python/validation/generic_rubric.py +1 -2
  671. package/eval/scaffold/python/validation/native_wave.py +2154 -0
  672. package/eval/scaffold/python/validation/native_workflow.py +252 -0
  673. package/eval/scaffold/python/validation/rubric.py +0 -2
  674. package/eval/scaffold/shell/completion-point.sh +18 -0
  675. package/eval/scaffold/shell/decision-point.sh +35 -0
  676. package/eval/scaffold/shell/docker.sh +150 -9
  677. package/eval/scaffold/shell/run-claude-loop.sh +57 -27
  678. package/package.json +19 -5
  679. package/dist/domains/dashboard/web/assets/channel-kp6Ng2JJ.js +0 -1
  680. package/dist/domains/dashboard/web/assets/classDiagram-4FO5ZUOK-yBDjgMY_.js +0 -1
  681. package/dist/domains/dashboard/web/assets/classDiagram-v2-Q7XG4LA2-yBDjgMY_.js +0 -1
  682. package/dist/domains/dashboard/web/assets/demo-DQyfozbi.js +0 -1
  683. package/dist/domains/dashboard/web/assets/index-BLAfkNTu.css +0 -1
  684. package/dist/domains/dashboard/web/assets/index-DtLUOcAW.js +0 -24
  685. package/dist/domains/dashboard/web/assets/stateDiagram-v2-BHNVJYJU-DGrsmWts.js +0 -1
  686. package/eval/.env.example +0 -52
  687. package/eval/langsmith/.env.example +0 -16
@@ -0,0 +1,819 @@
1
+ import { randomUUID } from 'crypto';
2
+ import { promises as fs } from 'fs';
3
+ import path from 'path';
4
+ import { isDeepStrictEqual } from 'util';
5
+ import { NATIVE_RUN_STORAGE } from '../engine/storage-layout.js';
6
+ import { atomicWriteJson } from './native-atomic-file.js';
7
+ import { hasPendingNativeSchemaMigration, compareAndSwapNativeChangeLocked, nativeChangeDir, parseLegacyNativeChangeValue, parseNativeChangeValue, parseV2NativeChangeValue, readNativeChange, } from './native-change.js';
8
+ import { sha256Text } from './native-hash.js';
9
+ import { acquireNativeLock, releaseNativeLock } from './native-lock.js';
10
+ import { withNativeMutationLock } from './native-mutation-lock.js';
11
+ import { resolveContainedNativePath } from './native-paths.js';
12
+ import { readNativeProtectedFile } from './native-protected-file.js';
13
+ import { redactNativeCredentialText } from './native-redaction.js';
14
+ import { parseNativeRepairTrajectoryProjection, } from './native-repair-runtime.js';
15
+ import { assertNativeTrajectoryText } from './native-trajectory-limits.js';
16
+ import { isCompatibleNativeRuntimeIdentity, NATIVE_RUNTIME_HASH, NATIVE_RUNTIME_PACKAGE, } from './native-runtime-package.js';
17
+ import { parseNativeStoredRunStateValue, readNativeRunState, readNativeTrajectory, writeNativeRunState, } from './native-run-store.js';
18
+ import { appendNativeTrajectoryEvent, writeNativeCheckpoint } from './native-trajectory.js';
19
+ import { nativeAdvanceEvidenceHash } from './native-transition-evidence.js';
20
+ import { assertNativeTrajectoryHealthy } from './native-trajectory-recovery.js';
21
+ import { NATIVE_LEGACY_TRANSITION_SCHEMA, NATIVE_RUNTIME_PROTOCOL_VERSION, NATIVE_TRANSITION_SCHEMA, NATIVE_V2_TRANSITION_SCHEMA, } from './native-types.js';
22
+ const COMMON_JOURNAL_KEYS = [
23
+ 'schema',
24
+ 'id',
25
+ 'change',
26
+ 'evidenceHash',
27
+ 'createdAt',
28
+ 'previousState',
29
+ 'nextState',
30
+ 'previousRun',
31
+ 'nextRun',
32
+ 'eventData',
33
+ ];
34
+ const LEGACY_JOURNAL_KEYS = new Set(COMMON_JOURNAL_KEYS);
35
+ const V2_JOURNAL_KEYS = new Set([
36
+ ...COMMON_JOURNAL_KEYS,
37
+ 'minimum_runtime_version',
38
+ 'revision',
39
+ ]);
40
+ const CURRENT_JOURNAL_KEYS = new Set([...V2_JOURNAL_KEYS, 'operation']);
41
+ export const NATIVE_TRANSITION_JOURNAL_MAX_BYTES = 512 * 1024;
42
+ const REQUIRED_TRANSITION_EVENT_DATA_KEYS = new Set([
43
+ 'previousPhase',
44
+ 'nextPhase',
45
+ 'evidenceHash',
46
+ 'summary',
47
+ 'artifacts',
48
+ 'noCodeReason',
49
+ 'verificationResult',
50
+ ]);
51
+ const TRANSITION_EVENT_DATA_KEYS = new Set([
52
+ ...REQUIRED_TRANSITION_EVENT_DATA_KEYS,
53
+ 'implementationScopeHash',
54
+ 'repairScopeHash',
55
+ 'repairStagnation',
56
+ ]);
57
+ export class NativeTransitionMigrationRequiredError extends Error {
58
+ change;
59
+ code = 'native-transition-migration-required';
60
+ constructor(change) {
61
+ super(`Native transition for ${change} requires doctor migration before recovery`);
62
+ this.change = change;
63
+ this.name = 'NativeTransitionMigrationRequiredError';
64
+ }
65
+ }
66
+ export function nativeTransitionJournalFile(paths, name) {
67
+ return path.join(nativeChangeDir(paths, name), 'runtime', 'transition.json');
68
+ }
69
+ function nativeTransitionLockName(name) {
70
+ return `transition-${name}`;
71
+ }
72
+ async function acquireNativeTransitionLock(paths, name, operation) {
73
+ const lockName = nativeTransitionLockName(name);
74
+ return acquireNativeLock(paths, lockName, operation);
75
+ }
76
+ export async function withNativeTransitionLock(paths, name, operation, work) {
77
+ const lock = await acquireNativeTransitionLock(paths, name, operation);
78
+ try {
79
+ return await work();
80
+ }
81
+ finally {
82
+ await releaseNativeLock(lock);
83
+ }
84
+ }
85
+ function journalRecord(value) {
86
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
87
+ throw new Error('Native transition journal must be an object');
88
+ }
89
+ return value;
90
+ }
91
+ function rejectUnknownJournalFields(journal, known) {
92
+ const unknown = Object.keys(journal).find((key) => !known.has(key));
93
+ if (unknown)
94
+ throw new Error(`Native transition journal contains unknown field: ${unknown}`);
95
+ }
96
+ function positiveInteger(value, label) {
97
+ if (!Number.isSafeInteger(value) || value < 1) {
98
+ throw new Error(`${label} must be a positive integer`);
99
+ }
100
+ return value;
101
+ }
102
+ function sameValue(left, right) {
103
+ return isDeepStrictEqual(left, right);
104
+ }
105
+ function parseTransitionEventData(value, evidenceHash) {
106
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
107
+ throw new Error('Native transition journal event data is invalid');
108
+ }
109
+ const record = value;
110
+ const keys = Object.keys(record);
111
+ const unknown = keys.find((key) => !TRANSITION_EVENT_DATA_KEYS.has(key));
112
+ const missing = [...REQUIRED_TRANSITION_EVENT_DATA_KEYS].find((key) => !Object.hasOwn(record, key));
113
+ const expectedSize = REQUIRED_TRANSITION_EVENT_DATA_KEYS.size +
114
+ (Object.hasOwn(record, 'implementationScopeHash') ? 1 : 0) +
115
+ (Object.hasOwn(record, 'repairScopeHash') ? 1 : 0) +
116
+ (Object.hasOwn(record, 'repairStagnation') ? 1 : 0);
117
+ if (unknown || missing || keys.length !== expectedSize) {
118
+ throw new Error(`Native transition journal event data keys are invalid${unknown ? `: ${unknown}` : missing ? `: missing ${missing}` : ''}`);
119
+ }
120
+ if (!['shape', 'build', 'verify', 'archive'].includes(record.previousPhase) ||
121
+ !['shape', 'build', 'verify', 'archive'].includes(record.nextPhase)) {
122
+ throw new Error('Native transition journal event phases are invalid');
123
+ }
124
+ if (record.evidenceHash !== evidenceHash) {
125
+ throw new Error('Native transition journal event evidence hash mismatch');
126
+ }
127
+ assertNativeTrajectoryText(record.summary, 'Native transition journal event summary');
128
+ if (redactNativeCredentialText(record.summary) !== record.summary) {
129
+ throw new Error('Native transition journal event summary contains unredacted credentials');
130
+ }
131
+ if (!Array.isArray(record.artifacts) ||
132
+ record.artifacts.length > 128 ||
133
+ record.artifacts.some((artifact) => typeof artifact !== 'string' ||
134
+ artifact.length === 0 ||
135
+ Buffer.byteLength(artifact, 'utf8') > 512)) {
136
+ throw new Error('Native transition journal event artifacts are invalid');
137
+ }
138
+ if (record.noCodeReason !== null) {
139
+ assertNativeTrajectoryText(record.noCodeReason, 'Native transition journal event no-code reason');
140
+ if (redactNativeCredentialText(record.noCodeReason) !== record.noCodeReason) {
141
+ throw new Error('Native transition journal event no-code reason contains unredacted credentials');
142
+ }
143
+ }
144
+ if (record.verificationResult !== null &&
145
+ record.verificationResult !== 'pass' &&
146
+ record.verificationResult !== 'fail') {
147
+ throw new Error('Native transition journal event verification result is invalid');
148
+ }
149
+ const implementationScopeHash = Object.hasOwn(record, 'implementationScopeHash')
150
+ ? record.implementationScopeHash
151
+ : null;
152
+ if (implementationScopeHash !== null &&
153
+ (typeof implementationScopeHash !== 'string' ||
154
+ !/^[a-f0-9]{64}$/.test(implementationScopeHash) ||
155
+ (record.previousPhase !== 'build' && record.previousPhase !== 'verify'))) {
156
+ throw new Error('Native transition journal implementation scope hash is invalid');
157
+ }
158
+ const repairStagnation = Object.hasOwn(record, 'repairStagnation')
159
+ ? parseNativeRepairTrajectoryProjection(record.repairStagnation)
160
+ : null;
161
+ if (repairStagnation) {
162
+ const failureProjection = repairStagnation.overrideSummaryHash === null;
163
+ if ((failureProjection &&
164
+ (record.previousPhase !== 'verify' ||
165
+ record.nextPhase !== 'build' ||
166
+ record.verificationResult !== 'fail')) ||
167
+ (!failureProjection &&
168
+ (record.previousPhase !== 'build' ||
169
+ record.nextPhase !== 'verify' ||
170
+ record.verificationResult !== null))) {
171
+ throw new Error('Native transition journal repair projection does not match its phase');
172
+ }
173
+ }
174
+ const repairScopeHash = Object.hasOwn(record, 'repairScopeHash') ? record.repairScopeHash : null;
175
+ if (repairScopeHash !== null &&
176
+ (typeof repairScopeHash !== 'string' ||
177
+ !/^[a-f0-9]{64}$/.test(repairScopeHash) ||
178
+ (record.previousPhase !== 'build' && record.previousPhase !== 'verify') ||
179
+ implementationScopeHash === null)) {
180
+ throw new Error('Native transition journal repair scope hash is invalid');
181
+ }
182
+ return {
183
+ previousPhase: record.previousPhase,
184
+ nextPhase: record.nextPhase,
185
+ evidenceHash,
186
+ summary: record.summary,
187
+ artifacts: [...record.artifacts],
188
+ noCodeReason: record.noCodeReason,
189
+ verificationResult: record.verificationResult,
190
+ ...(implementationScopeHash ? { implementationScopeHash } : {}),
191
+ ...(repairScopeHash ? { repairScopeHash } : {}),
192
+ ...(repairStagnation ? { repairStagnation } : {}),
193
+ };
194
+ }
195
+ function parseLegacyTransitionEventData(value, evidenceHash) {
196
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
197
+ const record = value;
198
+ const keys = Object.keys(record);
199
+ const legacyRebaseKeys = new Set([
200
+ 'previousPhase',
201
+ 'nextPhase',
202
+ 'evidenceHash',
203
+ 'summary',
204
+ 'reason',
205
+ ]);
206
+ if (keys.length === legacyRebaseKeys.size &&
207
+ keys.every((key) => legacyRebaseKeys.has(key)) &&
208
+ record.reason === 'spec-rebase') {
209
+ return parseTransitionEventData({
210
+ previousPhase: record.previousPhase,
211
+ nextPhase: record.nextPhase,
212
+ evidenceHash: record.evidenceHash,
213
+ summary: record.summary,
214
+ artifacts: [],
215
+ noCodeReason: null,
216
+ verificationResult: null,
217
+ }, evidenceHash);
218
+ }
219
+ }
220
+ return parseTransitionEventData(value, evidenceHash);
221
+ }
222
+ function validateJournalEnvelope(journal, expectedName, legacyEventData = false) {
223
+ if (journal.change !== expectedName)
224
+ throw new Error('Native transition journal change mismatch');
225
+ if (typeof journal.id !== 'string' || journal.id.length === 0) {
226
+ throw new Error('Native transition journal id is invalid');
227
+ }
228
+ if (typeof journal.evidenceHash !== 'string' || !/^[a-f0-9]{64}$/u.test(journal.evidenceHash)) {
229
+ throw new Error('Native transition journal evidence hash is invalid');
230
+ }
231
+ if (typeof journal.createdAt !== 'string' || Number.isNaN(Date.parse(journal.createdAt))) {
232
+ throw new Error('Native transition journal timestamp is invalid');
233
+ }
234
+ const eventData = legacyEventData
235
+ ? parseLegacyTransitionEventData(journal.eventData, journal.evidenceHash)
236
+ : parseTransitionEventData(journal.eventData, journal.evidenceHash);
237
+ const nextRun = parseNativeStoredRunStateValue(journal.nextRun);
238
+ const previousRun = journal.previousRun === null ? null : parseNativeStoredRunStateValue(journal.previousRun);
239
+ return {
240
+ id: journal.id,
241
+ evidenceHash: journal.evidenceHash,
242
+ createdAt: journal.createdAt,
243
+ previousRun,
244
+ nextRun,
245
+ eventData,
246
+ };
247
+ }
248
+ function assertNativeRunMetadata(run, label, allowCompatibleLegacyIdentity = false) {
249
+ if (run.skill !== NATIVE_RUNTIME_PACKAGE.definition.metadata.name ||
250
+ (allowCompatibleLegacyIdentity
251
+ ? !isCompatibleNativeRuntimeIdentity(run)
252
+ : run.skillVersion !== NATIVE_RUNTIME_PACKAGE.definition.metadata.version ||
253
+ run.skillHash !== NATIVE_RUNTIME_HASH) ||
254
+ run.orchestration !== NATIVE_RUNTIME_PACKAGE.definition.orchestration.mode ||
255
+ run.pendingRef !== NATIVE_RUN_STORAGE.pendingRef ||
256
+ run.trajectoryRef !== NATIVE_RUN_STORAGE.trajectoryRef ||
257
+ run.contextRef !== NATIVE_RUN_STORAGE.contextRef ||
258
+ run.artifactsRef !== NATIVE_RUN_STORAGE.artifactsRef ||
259
+ run.checkpointRef !== NATIVE_RUN_STORAGE.checkpointRef) {
260
+ throw new Error(`Native transition journal ${label} metadata or storage refs are invalid`);
261
+ }
262
+ }
263
+ function runInvariantProjection(run) {
264
+ return {
265
+ runId: run.runId,
266
+ skill: run.skill,
267
+ skillVersion: run.skillVersion,
268
+ skillHash: run.skillHash,
269
+ orchestration: run.orchestration,
270
+ pendingRef: run.pendingRef,
271
+ trajectoryRef: run.trajectoryRef,
272
+ contextRef: run.contextRef,
273
+ artifactsRef: run.artifactsRef,
274
+ checkpointRef: run.checkpointRef,
275
+ retries: run.retries,
276
+ };
277
+ }
278
+ function assertCommittableRun(run, label) {
279
+ if (run.status !== 'running') {
280
+ throw new Error(`Native transition journal ${label} status must be running`);
281
+ }
282
+ if (run.pending !== null) {
283
+ throw new Error(`Native transition journal ${label} pending action must be null`);
284
+ }
285
+ }
286
+ function validateTransitionRunSemantics(previousState, nextState, envelope, allowCompatibleLegacyIdentity = false) {
287
+ const { previousRun, nextRun } = envelope;
288
+ assertNativeRunMetadata(nextRun, 'next Run', allowCompatibleLegacyIdentity || previousRun !== null);
289
+ assertCommittableRun(nextRun, 'next Run');
290
+ if (nextRun.runId !== nextState.run_id || nextRun.currentStep !== nextState.phase) {
291
+ throw new Error('Native transition journal next Run does not match the next change state');
292
+ }
293
+ if (previousRun === null) {
294
+ if (previousState.run_id !== null ||
295
+ previousState.phase !== 'shape' ||
296
+ nextRun.iteration !== 1 ||
297
+ Object.keys(nextRun.retries).length !== 0) {
298
+ throw new Error('Native transition journal first Run transition is invalid');
299
+ }
300
+ return;
301
+ }
302
+ assertNativeRunMetadata(previousRun, 'previous Run', true);
303
+ assertCommittableRun(previousRun, 'previous Run');
304
+ if (previousState.run_id !== previousRun.runId ||
305
+ previousRun.currentStep !== previousState.phase ||
306
+ nextState.run_id !== previousRun.runId) {
307
+ throw new Error('Native transition journal previous Run does not match the change state');
308
+ }
309
+ if (nextRun.iteration !== previousRun.iteration + 1) {
310
+ throw new Error('Native transition journal next Run iteration must advance exactly once');
311
+ }
312
+ if (!isDeepStrictEqual(runInvariantProjection(previousRun), runInvariantProjection(nextRun))) {
313
+ throw new Error('Native transition journal Run identity or storage invariants changed');
314
+ }
315
+ }
316
+ function specRebaseEvidenceHash(name, summary, specChanges) {
317
+ return sha256Text(JSON.stringify({
318
+ operation: 'spec-rebase',
319
+ change: name,
320
+ summary,
321
+ specChanges,
322
+ }));
323
+ }
324
+ function inferredLegacyTransitionOperation(previousState, nextState, event) {
325
+ return previousState.phase !== 'shape' &&
326
+ nextState.phase === 'build' &&
327
+ event.verificationResult === null
328
+ ? 'spec-rebase'
329
+ : 'advance';
330
+ }
331
+ function currentStateRefs(state) {
332
+ return 'implementation_scope' in state
333
+ ? {
334
+ implementation_scope: state.implementation_scope,
335
+ verification_evidence: state.verification_evidence,
336
+ partial_allowance: state.partial_allowance,
337
+ }
338
+ : null;
339
+ }
340
+ function validateTransitionStateSemantics(previousState, nextState, envelope, operation, legacyOperation = false) {
341
+ const event = envelope.eventData;
342
+ const previousRefs = currentStateRefs(previousState);
343
+ const nextRefs = currentStateRefs(nextState);
344
+ if (event.previousPhase !== previousState.phase || event.nextPhase !== nextState.phase) {
345
+ throw new Error('Native transition journal event phases do not match its states');
346
+ }
347
+ if (previousState.archived || nextState.archived) {
348
+ throw new Error('Native transition journal cannot mutate an archived change');
349
+ }
350
+ if (operation === 'evidence-retreat') {
351
+ const sameIdentity = previousState.name === nextState.name &&
352
+ previousState.language === nextState.language &&
353
+ previousState.brief === nextState.brief &&
354
+ previousState.approval === nextState.approval &&
355
+ ('approved_contract_hash' in previousState
356
+ ? 'approved_contract_hash' in nextState &&
357
+ previousState.approved_contract_hash === nextState.approved_contract_hash
358
+ : !('approved_contract_hash' in nextState)) &&
359
+ previousState.created_at === nextState.created_at &&
360
+ previousState.run_id === nextState.run_id &&
361
+ isDeepStrictEqual(previousState.spec_changes, nextState.spec_changes);
362
+ const expectedHash = nativeAdvanceEvidenceHash({ summary: event.summary });
363
+ const validSourcePhase = (previousState.phase === 'archive' && previousState.verification_result === 'pass') ||
364
+ (previousState.phase === 'verify' && previousState.verification_result === 'pending');
365
+ if (!validSourcePhase ||
366
+ nextState.phase !== 'build' ||
367
+ nextState.verification_result !== 'pending' ||
368
+ nextState.verification_report !== null ||
369
+ event.verificationResult !== null ||
370
+ event.artifacts.length !== 0 ||
371
+ event.noCodeReason !== null ||
372
+ envelope.evidenceHash !== expectedHash ||
373
+ !sameIdentity ||
374
+ previousRefs === null ||
375
+ nextRefs === null ||
376
+ nextRefs.implementation_scope !== null ||
377
+ nextRefs.verification_evidence !== null ||
378
+ nextRefs.partial_allowance !== null) {
379
+ throw new Error('Native transition journal evidence retreat semantics are invalid');
380
+ }
381
+ return;
382
+ }
383
+ if (operation === 'spec-rebase') {
384
+ const currentHash = specRebaseEvidenceHash(previousState.name, event.summary, nextState.spec_changes);
385
+ const legacyHash = sha256Text(`spec-rebase:${previousState.name}:${event.summary}`);
386
+ if (previousState.phase === 'shape' ||
387
+ nextState.phase !== 'build' ||
388
+ event.verificationResult !== null ||
389
+ event.artifacts.length !== 0 ||
390
+ event.noCodeReason !== null ||
391
+ nextState.verification_result !== 'pending' ||
392
+ nextState.verification_report !== null ||
393
+ (!legacyOperation && envelope.evidenceHash !== currentHash) ||
394
+ (legacyOperation &&
395
+ envelope.evidenceHash !== currentHash &&
396
+ envelope.evidenceHash !== legacyHash) ||
397
+ ('implementation_scope' in nextState &&
398
+ (nextState.implementation_scope !== null ||
399
+ nextState.verification_evidence !== null ||
400
+ nextState.partial_allowance !== null))) {
401
+ throw new Error('Native transition journal spec rebase semantics are invalid');
402
+ }
403
+ return;
404
+ }
405
+ if (previousState.phase === 'shape') {
406
+ if (nextState.phase !== 'build' ||
407
+ event.verificationResult !== null ||
408
+ event.artifacts.length !== 0 ||
409
+ event.noCodeReason !== null ||
410
+ previousState.verification_result !== 'pending' ||
411
+ nextState.verification_result !== 'pending' ||
412
+ previousState.verification_report !== null ||
413
+ nextState.verification_report !== null ||
414
+ (previousRefs !== null &&
415
+ nextRefs !== null &&
416
+ (previousRefs.implementation_scope !== null ||
417
+ previousRefs.verification_evidence !== null ||
418
+ previousRefs.partial_allowance !== null ||
419
+ nextRefs.implementation_scope !== null ||
420
+ nextRefs.verification_evidence !== null ||
421
+ nextRefs.partial_allowance !== null))) {
422
+ throw new Error('Native transition journal Shape to Build semantics are invalid');
423
+ }
424
+ return;
425
+ }
426
+ if (previousState.phase === 'build') {
427
+ if (nextState.phase !== 'verify' ||
428
+ event.verificationResult !== null ||
429
+ (event.artifacts.length === 0 && event.noCodeReason === null) ||
430
+ nextState.verification_result !== 'pending' ||
431
+ nextState.verification_report !== null ||
432
+ (previousRefs !== null &&
433
+ nextRefs !== null &&
434
+ (nextRefs.implementation_scope === null ||
435
+ nextRefs.verification_evidence !== null ||
436
+ (nextRefs.implementation_scope !== previousRefs.implementation_scope &&
437
+ nextRefs.partial_allowance !== null &&
438
+ nextRefs.partial_allowance === previousRefs.partial_allowance)))) {
439
+ throw new Error('Native transition journal Build to Verify semantics are invalid');
440
+ }
441
+ return;
442
+ }
443
+ if (previousState.phase === 'verify') {
444
+ const expectedNext = event.verificationResult === 'pass' ? 'archive' : 'build';
445
+ if ((event.verificationResult !== 'pass' && event.verificationResult !== 'fail') ||
446
+ nextState.phase !== expectedNext ||
447
+ event.artifacts.length !== 0 ||
448
+ event.noCodeReason !== null ||
449
+ nextState.verification_result !== event.verificationResult ||
450
+ nextState.verification_report === null ||
451
+ (previousRefs !== null &&
452
+ nextRefs !== null &&
453
+ (previousRefs.implementation_scope === null ||
454
+ nextRefs.implementation_scope !== previousRefs.implementation_scope ||
455
+ nextRefs.partial_allowance !== previousRefs.partial_allowance ||
456
+ previousRefs.verification_evidence !== null ||
457
+ nextRefs.verification_evidence === null))) {
458
+ throw new Error('Native transition journal Verify outcome semantics are invalid');
459
+ }
460
+ return;
461
+ }
462
+ throw new Error('Native transition journal cannot advance from Archive');
463
+ }
464
+ export function parseNativeTransitionJournalValue(value, expectedName) {
465
+ const journal = journalRecord(value);
466
+ rejectUnknownJournalFields(journal, CURRENT_JOURNAL_KEYS);
467
+ if (journal.schema !== NATIVE_TRANSITION_SCHEMA) {
468
+ throw new Error(`Expected Native transition schema ${NATIVE_TRANSITION_SCHEMA}`);
469
+ }
470
+ const minimumRuntimeVersion = positiveInteger(journal.minimum_runtime_version, 'Native transition minimum_runtime_version');
471
+ if (minimumRuntimeVersion > NATIVE_RUNTIME_PROTOCOL_VERSION) {
472
+ throw new Error(`Native transition requires runtime protocol ${minimumRuntimeVersion}; current protocol is ${NATIVE_RUNTIME_PROTOCOL_VERSION}`);
473
+ }
474
+ if (minimumRuntimeVersion !== NATIVE_RUNTIME_PROTOCOL_VERSION) {
475
+ throw new Error(`Native transition ${NATIVE_TRANSITION_SCHEMA} minimum_runtime_version must be ${NATIVE_RUNTIME_PROTOCOL_VERSION}`);
476
+ }
477
+ const revision = positiveInteger(journal.revision, 'Native transition revision');
478
+ if (revision !== 1)
479
+ throw new Error('Native transition journal revision must be 1');
480
+ if (journal.operation !== 'advance' &&
481
+ journal.operation !== 'spec-rebase' &&
482
+ journal.operation !== 'evidence-retreat') {
483
+ throw new Error('Native transition journal operation is invalid');
484
+ }
485
+ const envelope = validateJournalEnvelope(journal, expectedName);
486
+ const previousState = parseNativeChangeValue(journal.previousState);
487
+ const nextState = parseNativeChangeValue(journal.nextState);
488
+ if (previousState.name !== expectedName || nextState.name !== expectedName) {
489
+ throw new Error('Native transition journal state mismatch');
490
+ }
491
+ validateTransitionStateSemantics(previousState, nextState, envelope, journal.operation);
492
+ validateTransitionRunSemantics(previousState, nextState, envelope);
493
+ if (nextState.revision !== previousState.revision + 1) {
494
+ throw new Error('Native transition journal state revision must advance exactly once');
495
+ }
496
+ return {
497
+ schema: NATIVE_TRANSITION_SCHEMA,
498
+ minimum_runtime_version: NATIVE_RUNTIME_PROTOCOL_VERSION,
499
+ revision,
500
+ operation: journal.operation,
501
+ id: envelope.id,
502
+ change: expectedName,
503
+ evidenceHash: envelope.evidenceHash,
504
+ createdAt: envelope.createdAt,
505
+ previousState,
506
+ nextState,
507
+ previousRun: envelope.previousRun,
508
+ nextRun: envelope.nextRun,
509
+ eventData: envelope.eventData,
510
+ };
511
+ }
512
+ export function parseLegacyNativeTransitionJournalValue(value, expectedName) {
513
+ const journal = journalRecord(value);
514
+ rejectUnknownJournalFields(journal, LEGACY_JOURNAL_KEYS);
515
+ if (journal.schema !== NATIVE_LEGACY_TRANSITION_SCHEMA) {
516
+ throw new Error(`Expected Native transition schema ${NATIVE_LEGACY_TRANSITION_SCHEMA}`);
517
+ }
518
+ const envelope = validateJournalEnvelope(journal, expectedName, true);
519
+ const previousState = parseLegacyNativeChangeValue(journal.previousState);
520
+ const nextState = parseLegacyNativeChangeValue(journal.nextState);
521
+ if (previousState.name !== expectedName || nextState.name !== expectedName) {
522
+ throw new Error('Native transition journal state mismatch');
523
+ }
524
+ validateTransitionStateSemantics(previousState, nextState, envelope, inferredLegacyTransitionOperation(previousState, nextState, envelope.eventData), true);
525
+ validateTransitionRunSemantics(previousState, nextState, envelope, true);
526
+ return {
527
+ schema: NATIVE_LEGACY_TRANSITION_SCHEMA,
528
+ id: envelope.id,
529
+ change: expectedName,
530
+ evidenceHash: envelope.evidenceHash,
531
+ createdAt: envelope.createdAt,
532
+ previousState,
533
+ nextState,
534
+ previousRun: envelope.previousRun,
535
+ nextRun: envelope.nextRun,
536
+ eventData: envelope.eventData,
537
+ };
538
+ }
539
+ export function parseV2NativeTransitionJournalValue(value, expectedName) {
540
+ const journal = journalRecord(value);
541
+ rejectUnknownJournalFields(journal, V2_JOURNAL_KEYS);
542
+ if (journal.schema !== NATIVE_V2_TRANSITION_SCHEMA) {
543
+ throw new Error(`Expected Native transition schema ${NATIVE_V2_TRANSITION_SCHEMA}`);
544
+ }
545
+ const minimumRuntimeVersion = positiveInteger(journal.minimum_runtime_version, 'Native v2 transition minimum_runtime_version');
546
+ if (minimumRuntimeVersion !== 2) {
547
+ throw new Error(`Native transition ${NATIVE_V2_TRANSITION_SCHEMA} minimum_runtime_version must be 2`);
548
+ }
549
+ const revision = positiveInteger(journal.revision, 'Native v2 transition revision');
550
+ if (revision !== 1)
551
+ throw new Error('Native v2 transition journal revision must be 1');
552
+ const envelope = validateJournalEnvelope(journal, expectedName, true);
553
+ const previousState = parseV2NativeChangeValue(journal.previousState);
554
+ const nextState = parseV2NativeChangeValue(journal.nextState);
555
+ if (previousState.name !== expectedName || nextState.name !== expectedName) {
556
+ throw new Error('Native v2 transition journal state mismatch');
557
+ }
558
+ validateTransitionStateSemantics(previousState, nextState, envelope, inferredLegacyTransitionOperation(previousState, nextState, envelope.eventData), true);
559
+ validateTransitionRunSemantics(previousState, nextState, envelope, true);
560
+ if (nextState.revision !== previousState.revision + 1) {
561
+ throw new Error('Native v2 transition journal state revision must advance exactly once');
562
+ }
563
+ return {
564
+ schema: NATIVE_V2_TRANSITION_SCHEMA,
565
+ minimum_runtime_version: 2,
566
+ revision,
567
+ id: envelope.id,
568
+ change: expectedName,
569
+ evidenceHash: envelope.evidenceHash,
570
+ createdAt: envelope.createdAt,
571
+ previousState,
572
+ nextState,
573
+ previousRun: envelope.previousRun,
574
+ nextRun: envelope.nextRun,
575
+ eventData: envelope.eventData,
576
+ };
577
+ }
578
+ export function inspectNativeTransitionJournalValue(value, expectedName) {
579
+ const journal = journalRecord(value);
580
+ if (journal.schema === NATIVE_TRANSITION_SCHEMA) {
581
+ return { status: 'current', journal: parseNativeTransitionJournalValue(journal, expectedName) };
582
+ }
583
+ if (journal.schema === NATIVE_LEGACY_TRANSITION_SCHEMA) {
584
+ return {
585
+ status: 'migration-required',
586
+ journal: parseLegacyNativeTransitionJournalValue(journal, expectedName),
587
+ };
588
+ }
589
+ if (journal.schema === NATIVE_V2_TRANSITION_SCHEMA) {
590
+ return {
591
+ status: 'migration-required',
592
+ journal: parseV2NativeTransitionJournalValue(journal, expectedName),
593
+ };
594
+ }
595
+ throw new Error(`Unsupported Native transition journal schema: ${String(journal.schema)}`);
596
+ }
597
+ export async function inspectPendingNativeTransitionSchema(paths, name) {
598
+ const file = nativeTransitionJournalFile(paths, name);
599
+ await resolveContainedNativePath(paths.nativeRoot, file);
600
+ try {
601
+ const snapshot = await readNativeProtectedFile({
602
+ root: paths.nativeRoot,
603
+ file,
604
+ maxBytes: NATIVE_TRANSITION_JOURNAL_MAX_BYTES,
605
+ label: `Native transition journal ${name}`,
606
+ });
607
+ return inspectNativeTransitionJournalValue(JSON.parse(snapshot.bytes.toString('utf8')), name);
608
+ }
609
+ catch (error) {
610
+ if (error.code === 'ENOENT')
611
+ return null;
612
+ throw error;
613
+ }
614
+ }
615
+ export async function inspectPendingNativeTransition(paths, name) {
616
+ const inspection = await inspectPendingNativeTransitionSchema(paths, name);
617
+ if (!inspection)
618
+ return null;
619
+ if (inspection.status === 'migration-required') {
620
+ throw new NativeTransitionMigrationRequiredError(name);
621
+ }
622
+ return inspection.journal;
623
+ }
624
+ export async function prepareNativeTransition(options) {
625
+ if (await hasPendingNativeSchemaMigration(options.paths, options.nextState.name)) {
626
+ throw new Error(`Native schema migration is incomplete for ${options.nextState.name}; run doctor --repair`);
627
+ }
628
+ await assertNativeTrajectoryHealthy(options.paths, options.nextState.name);
629
+ const journal = {
630
+ schema: NATIVE_TRANSITION_SCHEMA,
631
+ minimum_runtime_version: NATIVE_RUNTIME_PROTOCOL_VERSION,
632
+ revision: 1,
633
+ operation: options.operation ?? 'advance',
634
+ id: options.transitionId?.() ?? randomUUID(),
635
+ change: options.nextState.name,
636
+ evidenceHash: options.evidenceHash,
637
+ createdAt: (options.now ?? new Date()).toISOString(),
638
+ previousState: options.previousState,
639
+ nextState: options.nextState,
640
+ previousRun: options.previousRun,
641
+ nextRun: options.nextRun,
642
+ eventData: options.eventData,
643
+ };
644
+ const validated = parseNativeTransitionJournalValue(journal, journal.change);
645
+ const file = nativeTransitionJournalFile(options.paths, validated.change);
646
+ await resolveContainedNativePath(options.paths.nativeRoot, file);
647
+ if (await inspectPendingNativeTransition(options.paths, validated.change)) {
648
+ throw new Error(`Native transition recovery is already pending for ${validated.change}`);
649
+ }
650
+ await atomicWriteJson(file, validated);
651
+ return validated;
652
+ }
653
+ function assertRunRecoverySource(actual, journal) {
654
+ if (sameValue(actual, journal.nextRun))
655
+ return 'next';
656
+ if (journal.previousRun === null) {
657
+ if (actual === null)
658
+ return 'previous';
659
+ }
660
+ else if (sameValue(actual, journal.previousRun)) {
661
+ return 'previous';
662
+ }
663
+ throw new Error(`Native transition Run content changed for ${journal.change}; recovery journal was preserved`);
664
+ }
665
+ function assertChangeRecoverySource(actual, journal) {
666
+ if (sameValue(actual, journal.nextState))
667
+ return 'next';
668
+ if (sameValue(actual, journal.previousState))
669
+ return 'previous';
670
+ throw new Error(`Native transition change content changed for ${journal.change}; recovery journal was preserved`);
671
+ }
672
+ function expectedTrajectoryEvent(options) {
673
+ const { journal } = options;
674
+ return trajectoryEventForComparison({
675
+ sequence: options.sequence,
676
+ timestamp: journal.createdAt,
677
+ type: options.type,
678
+ runId: journal.nextRun.runId,
679
+ data: options.type === 'run_started'
680
+ ? {
681
+ runtime: 'comet-native',
682
+ phase: journal.previousState.phase,
683
+ transitionId: journal.id,
684
+ }
685
+ : { ...journal.eventData, transitionId: journal.id },
686
+ });
687
+ }
688
+ function trajectoryEventForComparison(event) {
689
+ return {
690
+ sequence: event.sequence,
691
+ timestamp: event.timestamp,
692
+ type: event.type,
693
+ runId: event.runId,
694
+ data: event.data,
695
+ };
696
+ }
697
+ function inspectExistingTransitionEvents(trajectory, journal) {
698
+ const collisions = trajectory
699
+ .map((event, index) => ({ event, index }))
700
+ .filter(({ event }) => event.data.transitionId === journal.id);
701
+ const started = collisions.filter(({ event }) => event.type === 'run_started');
702
+ const transitioned = collisions.filter(({ event }) => event.type === 'state_transitioned');
703
+ if (collisions.length !== started.length + transitioned.length ||
704
+ started.length > (journal.previousRun === null ? 1 : 0) ||
705
+ transitioned.length > 1 ||
706
+ (journal.previousRun === null &&
707
+ transitioned.length === 1 &&
708
+ (started.length !== 1 || started[0].index >= transitioned[0].index))) {
709
+ throw new Error(`Native trajectory transition id collision for ${journal.change}; recovery journal was preserved`);
710
+ }
711
+ for (const item of [...started, ...transitioned]) {
712
+ const expected = expectedTrajectoryEvent({
713
+ sequence: item.index + 1,
714
+ journal,
715
+ type: item.event.type,
716
+ });
717
+ if (!sameValue(trajectoryEventForComparison(item.event), expected)) {
718
+ throw new Error(`Native trajectory event changed for transition ${journal.id}; recovery journal was preserved`);
719
+ }
720
+ }
721
+ return {
722
+ started: started[0]?.event ?? null,
723
+ transitioned: transitioned[0]?.event ?? null,
724
+ };
725
+ }
726
+ export async function continueNativeTransitionLocked(paths, name, hooks) {
727
+ if (await hasPendingNativeSchemaMigration(paths, name)) {
728
+ throw new Error(`Native schema migration is incomplete for ${name}; run doctor --repair`);
729
+ }
730
+ await assertNativeTrajectoryHealthy(paths, name);
731
+ const journal = await inspectPendingNativeTransition(paths, name);
732
+ if (!journal)
733
+ return null;
734
+ const changeDir = nativeChangeDir(paths, name);
735
+ const initialEvents = inspectExistingTransitionEvents(await readNativeTrajectory(changeDir, journal.nextRun.trajectoryRef), journal);
736
+ const [actualRun, actualChange] = await Promise.all([
737
+ readNativeRunState(changeDir),
738
+ readNativeChange(paths, name),
739
+ ]);
740
+ const runSource = assertRunRecoverySource(actualRun, journal);
741
+ const changeSource = assertChangeRecoverySource(actualChange, journal);
742
+ if ((initialEvents.started || initialEvents.transitioned) &&
743
+ (runSource !== 'next' || changeSource !== 'next')) {
744
+ throw new Error(`Native trajectory is ahead of transition state for ${journal.change}; recovery journal was preserved`);
745
+ }
746
+ if (runSource === 'previous') {
747
+ await writeNativeRunState(changeDir, journal.nextRun);
748
+ await hooks?.afterRunStateWritten?.(journal);
749
+ }
750
+ if (!sameValue(await readNativeRunState(changeDir), journal.nextRun)) {
751
+ throw new Error(`Native transition Run content changed while continuing ${journal.change}; recovery journal was preserved`);
752
+ }
753
+ if (changeSource === 'previous') {
754
+ const persisted = await compareAndSwapNativeChangeLocked(paths, journal.nextState, journal.previousState.revision);
755
+ if (!sameValue(persisted, journal.nextState)) {
756
+ throw new Error(`Native transition change write diverged for ${journal.change}; recovery journal was preserved`);
757
+ }
758
+ await hooks?.afterChangeStateWritten?.(journal);
759
+ }
760
+ if (!sameValue(await readNativeChange(paths, name), journal.nextState)) {
761
+ throw new Error(`Native transition change content changed while continuing ${journal.change}; recovery journal was preserved`);
762
+ }
763
+ const activeJournal = await inspectPendingNativeTransition(paths, name);
764
+ if (!activeJournal || !sameValue(activeJournal, journal)) {
765
+ throw new Error(`Native transition journal changed while continuing ${journal.change}; it was preserved`);
766
+ }
767
+ const existingEvents = inspectExistingTransitionEvents(await readNativeTrajectory(changeDir, journal.nextRun.trajectoryRef), journal);
768
+ if (journal.previousRun === null) {
769
+ if (!existingEvents.started) {
770
+ await appendNativeTrajectoryEvent({
771
+ changeDir,
772
+ run: journal.nextRun,
773
+ type: 'run_started',
774
+ data: {
775
+ runtime: 'comet-native',
776
+ phase: journal.previousState.phase,
777
+ transitionId: journal.id,
778
+ },
779
+ now: new Date(journal.createdAt),
780
+ });
781
+ }
782
+ }
783
+ let event = existingEvents.transitioned;
784
+ if (!event) {
785
+ event = await appendNativeTrajectoryEvent({
786
+ changeDir,
787
+ run: journal.nextRun,
788
+ type: 'state_transitioned',
789
+ data: { ...journal.eventData, transitionId: journal.id },
790
+ now: new Date(journal.createdAt),
791
+ });
792
+ }
793
+ await writeNativeCheckpoint({
794
+ changeDir,
795
+ run: journal.nextRun,
796
+ trajectoryOffset: event.sequence,
797
+ evidenceHash: journal.evidenceHash,
798
+ now: new Date(journal.createdAt),
799
+ });
800
+ const [finalRun, finalChange] = await Promise.all([
801
+ readNativeRunState(changeDir),
802
+ readNativeChange(paths, name),
803
+ ]);
804
+ assertRunRecoverySource(finalRun, { ...journal, previousRun: journal.nextRun });
805
+ assertChangeRecoverySource(finalChange, {
806
+ ...journal,
807
+ previousState: journal.nextState,
808
+ });
809
+ const finalJournal = await inspectPendingNativeTransition(paths, name);
810
+ if (!finalJournal || !sameValue(finalJournal, journal)) {
811
+ throw new Error(`Native transition journal changed while continuing ${journal.change}; it was not removed`);
812
+ }
813
+ await fs.rm(nativeTransitionJournalFile(paths, name), { force: true });
814
+ return journal.nextState;
815
+ }
816
+ export async function continueNativeTransition(paths, name, hooks) {
817
+ return withNativeMutationLock(paths, `continue transition ${name}`, () => withNativeTransitionLock(paths, name, `continue transition ${name}`, () => continueNativeTransitionLocked(paths, name, hooks)));
818
+ }
819
+ //# sourceMappingURL=native-transition-journal.js.map