@adammcarter/use-cases 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (704) hide show
  1. package/.agents/skills/migration/SKILL.md +85 -0
  2. package/.agents/skills/showcase/SKILL.md +60 -0
  3. package/.agents/skills/use-cases/SKILL.md +161 -0
  4. package/.agents/skills/walkthrough/SKILL.md +48 -0
  5. package/.claude-plugin/plugin.json +14 -0
  6. package/.codex-plugin/plugin.json +33 -0
  7. package/.mcp.json +8 -0
  8. package/.opencode/plugin/use-cases.js +32 -0
  9. package/CHANGELOG.md +125 -0
  10. package/LICENSE +21 -0
  11. package/README.md +112 -0
  12. package/bootstrap/use-cases.md +60 -0
  13. package/docs/README.md +51 -0
  14. package/docs/acceptance.md +16 -0
  15. package/docs/activation.md +89 -0
  16. package/docs/adr/0001-p0-bootstrap-decisions.md +107 -0
  17. package/docs/adr/0002-p1-schema-contracts.md +136 -0
  18. package/docs/adr/0003-p2-use-case-matrix-contracts.md +67 -0
  19. package/docs/adr/0004-p3-evidence-ledger-contracts.md +85 -0
  20. package/docs/adr/0005-p4-cli-contract.md +70 -0
  21. package/docs/adr/0006-trusted-user-approval-path.md +125 -0
  22. package/docs/cli.md +108 -0
  23. package/docs/data-model.md +56 -0
  24. package/docs/getting-started.md +296 -0
  25. package/docs/hosts.md +30 -0
  26. package/docs/markers-adoption.md +100 -0
  27. package/docs/mcp.md +114 -0
  28. package/docs/migration.md +90 -0
  29. package/docs/reference/error-codes.md +123 -0
  30. package/docs/reference/stability.md +123 -0
  31. package/docs/release.md +26 -0
  32. package/docs/security/ci-hardening.md +144 -0
  33. package/docs/security/key-management.md +158 -0
  34. package/docs/security.md +66 -0
  35. package/docs/showcase.md +39 -0
  36. package/docs/tutorials/python-pytest.md +188 -0
  37. package/examples/basic-product/demo-capsules/product-search.yml +23 -0
  38. package/examples/basic-product/evidence/by-id/ev/evidence-basic-search.jsonl +1 -0
  39. package/examples/basic-product/showcase-runs/run.basic.product.search/events.jsonl +4 -0
  40. package/examples/basic-product/use-cases/product.yml +85 -0
  41. package/examples/basic-product/use-cases.yml +9 -0
  42. package/examples/damaged-product/evidence/broken.jsonl +1 -0
  43. package/examples/damaged-product/use-cases/duplicate-a.yml +28 -0
  44. package/examples/damaged-product/use-cases/duplicate-b.yml +28 -0
  45. package/examples/damaged-product/use-cases/malformed.yml +14 -0
  46. package/examples/damaged-product/use-cases/valid-sibling.yml +28 -0
  47. package/examples/damaged-product/use-cases.yml +9 -0
  48. package/examples/host-projections/use-cases.yml +9 -0
  49. package/examples/python-pytest/README.md +39 -0
  50. package/examples/python-pytest/pytest.ini +8 -0
  51. package/examples/python-pytest/src/coupon.py +32 -0
  52. package/examples/python-pytest/tests/use_cases/example.checkout.apply_coupon_test.py +31 -0
  53. package/examples/python-pytest/use-cases/checkout.yml +47 -0
  54. package/examples/python-pytest/use-cases.yml +19 -0
  55. package/hooks/hooks-codex.json +16 -0
  56. package/hooks/hooks.json +16 -0
  57. package/hooks/session-start +42 -0
  58. package/hosts/claude.yml +29 -0
  59. package/hosts/codex.yml +29 -0
  60. package/hosts/copilot.yml +29 -0
  61. package/hosts/opencode.yml +29 -0
  62. package/package.json +81 -0
  63. package/packages/cli/README.md +37 -0
  64. package/packages/cli/dist/args/parse.d.ts +6 -0
  65. package/packages/cli/dist/args/parse.d.ts.map +1 -0
  66. package/packages/cli/dist/args/parse.js +55 -0
  67. package/packages/cli/dist/args/parse.js.map +1 -0
  68. package/packages/cli/dist/args/validate.d.ts +3 -0
  69. package/packages/cli/dist/args/validate.d.ts.map +1 -0
  70. package/packages/cli/dist/args/validate.js +80 -0
  71. package/packages/cli/dist/args/validate.js.map +1 -0
  72. package/packages/cli/dist/builtins.d.ts +2 -0
  73. package/packages/cli/dist/builtins.d.ts.map +1 -0
  74. package/packages/cli/dist/builtins.js +235 -0
  75. package/packages/cli/dist/builtins.js.map +1 -0
  76. package/packages/cli/dist/command/dispatch.d.ts +4 -0
  77. package/packages/cli/dist/command/dispatch.d.ts.map +1 -0
  78. package/packages/cli/dist/command/dispatch.js +45 -0
  79. package/packages/cli/dist/command/dispatch.js.map +1 -0
  80. package/packages/cli/dist/command/help-catalog.d.ts +13 -0
  81. package/packages/cli/dist/command/help-catalog.d.ts.map +1 -0
  82. package/packages/cli/dist/command/help-catalog.js +42 -0
  83. package/packages/cli/dist/command/help-catalog.js.map +1 -0
  84. package/packages/cli/dist/command/registry.d.ts +3 -0
  85. package/packages/cli/dist/command/registry.d.ts.map +1 -0
  86. package/packages/cli/dist/command/registry.js +33 -0
  87. package/packages/cli/dist/command/registry.js.map +1 -0
  88. package/packages/cli/dist/command/types.d.ts +32 -0
  89. package/packages/cli/dist/command/types.d.ts.map +1 -0
  90. package/packages/cli/dist/command/types.js +6 -0
  91. package/packages/cli/dist/command/types.js.map +1 -0
  92. package/packages/cli/dist/commands/capsule.d.ts +7 -0
  93. package/packages/cli/dist/commands/capsule.d.ts.map +1 -0
  94. package/packages/cli/dist/commands/capsule.js +178 -0
  95. package/packages/cli/dist/commands/capsule.js.map +1 -0
  96. package/packages/cli/dist/commands/common.d.ts +7 -0
  97. package/packages/cli/dist/commands/common.d.ts.map +1 -0
  98. package/packages/cli/dist/commands/common.js +32 -0
  99. package/packages/cli/dist/commands/common.js.map +1 -0
  100. package/packages/cli/dist/commands/doctor.d.ts +6 -0
  101. package/packages/cli/dist/commands/doctor.d.ts.map +1 -0
  102. package/packages/cli/dist/commands/doctor.js +133 -0
  103. package/packages/cli/dist/commands/doctor.js.map +1 -0
  104. package/packages/cli/dist/commands/evidence.d.ts +6 -0
  105. package/packages/cli/dist/commands/evidence.d.ts.map +1 -0
  106. package/packages/cli/dist/commands/evidence.js +191 -0
  107. package/packages/cli/dist/commands/evidence.js.map +1 -0
  108. package/packages/cli/dist/commands/host.d.ts +6 -0
  109. package/packages/cli/dist/commands/host.d.ts.map +1 -0
  110. package/packages/cli/dist/commands/host.js +180 -0
  111. package/packages/cli/dist/commands/host.js.map +1 -0
  112. package/packages/cli/dist/commands/keygen.d.ts +4 -0
  113. package/packages/cli/dist/commands/keygen.d.ts.map +1 -0
  114. package/packages/cli/dist/commands/keygen.js +132 -0
  115. package/packages/cli/dist/commands/keygen.js.map +1 -0
  116. package/packages/cli/dist/commands/markers.d.ts +8 -0
  117. package/packages/cli/dist/commands/markers.d.ts.map +1 -0
  118. package/packages/cli/dist/commands/markers.js +455 -0
  119. package/packages/cli/dist/commands/markers.js.map +1 -0
  120. package/packages/cli/dist/commands/matrix.d.ts +8 -0
  121. package/packages/cli/dist/commands/matrix.d.ts.map +1 -0
  122. package/packages/cli/dist/commands/matrix.js +237 -0
  123. package/packages/cli/dist/commands/matrix.js.map +1 -0
  124. package/packages/cli/dist/commands/migrate.d.ts +4 -0
  125. package/packages/cli/dist/commands/migrate.d.ts.map +1 -0
  126. package/packages/cli/dist/commands/migrate.js +82 -0
  127. package/packages/cli/dist/commands/migrate.js.map +1 -0
  128. package/packages/cli/dist/commands/plan.d.ts +6 -0
  129. package/packages/cli/dist/commands/plan.d.ts.map +1 -0
  130. package/packages/cli/dist/commands/plan.js +129 -0
  131. package/packages/cli/dist/commands/plan.js.map +1 -0
  132. package/packages/cli/dist/commands/recover.d.ts +4 -0
  133. package/packages/cli/dist/commands/recover.d.ts.map +1 -0
  134. package/packages/cli/dist/commands/recover.js +352 -0
  135. package/packages/cli/dist/commands/recover.js.map +1 -0
  136. package/packages/cli/dist/commands/schema.d.ts +5 -0
  137. package/packages/cli/dist/commands/schema.d.ts.map +1 -0
  138. package/packages/cli/dist/commands/schema.js +51 -0
  139. package/packages/cli/dist/commands/schema.js.map +1 -0
  140. package/packages/cli/dist/commands/showcase.d.ts +14 -0
  141. package/packages/cli/dist/commands/showcase.d.ts.map +1 -0
  142. package/packages/cli/dist/commands/showcase.js +638 -0
  143. package/packages/cli/dist/commands/showcase.js.map +1 -0
  144. package/packages/cli/dist/commands/workflow.d.ts +5 -0
  145. package/packages/cli/dist/commands/workflow.d.ts.map +1 -0
  146. package/packages/cli/dist/commands/workflow.js +107 -0
  147. package/packages/cli/dist/commands/workflow.js.map +1 -0
  148. package/packages/cli/dist/coreLoader.d.ts +6 -0
  149. package/packages/cli/dist/coreLoader.d.ts.map +1 -0
  150. package/packages/cli/dist/coreLoader.js +34 -0
  151. package/packages/cli/dist/coreLoader.js.map +1 -0
  152. package/packages/cli/dist/index.d.ts +5 -0
  153. package/packages/cli/dist/index.d.ts.map +1 -0
  154. package/packages/cli/dist/index.js +83 -0
  155. package/packages/cli/dist/index.js.map +1 -0
  156. package/packages/cli/dist/render.d.ts +2 -0
  157. package/packages/cli/dist/render.d.ts.map +1 -0
  158. package/packages/cli/dist/render.js +88 -0
  159. package/packages/cli/dist/render.js.map +1 -0
  160. package/packages/cli/dist/runtime.d.ts +25 -0
  161. package/packages/cli/dist/runtime.d.ts.map +1 -0
  162. package/packages/cli/dist/runtime.js +89 -0
  163. package/packages/cli/dist/runtime.js.map +1 -0
  164. package/packages/cli/package.json +38 -0
  165. package/packages/core/README.md +37 -0
  166. package/packages/core/dist/capsules/index.d.ts +4 -0
  167. package/packages/core/dist/capsules/index.d.ts.map +1 -0
  168. package/packages/core/dist/capsules/index.js +4 -0
  169. package/packages/core/dist/capsules/index.js.map +1 -0
  170. package/packages/core/dist/capsules/loadCapsule.d.ts +11 -0
  171. package/packages/core/dist/capsules/loadCapsule.d.ts.map +1 -0
  172. package/packages/core/dist/capsules/loadCapsule.js +167 -0
  173. package/packages/core/dist/capsules/loadCapsule.js.map +1 -0
  174. package/packages/core/dist/capsules/runCapsule.d.ts +3 -0
  175. package/packages/core/dist/capsules/runCapsule.d.ts.map +1 -0
  176. package/packages/core/dist/capsules/runCapsule.js +333 -0
  177. package/packages/core/dist/capsules/runCapsule.js.map +1 -0
  178. package/packages/core/dist/capsules/types.d.ts +106 -0
  179. package/packages/core/dist/capsules/types.d.ts.map +1 -0
  180. package/packages/core/dist/capsules/types.js +2 -0
  181. package/packages/core/dist/capsules/types.js.map +1 -0
  182. package/packages/core/dist/durableWrite.d.ts +2 -0
  183. package/packages/core/dist/durableWrite.d.ts.map +1 -0
  184. package/packages/core/dist/durableWrite.js +34 -0
  185. package/packages/core/dist/durableWrite.js.map +1 -0
  186. package/packages/core/dist/errors/registry.d.ts +122 -0
  187. package/packages/core/dist/errors/registry.d.ts.map +1 -0
  188. package/packages/core/dist/errors/registry.js +206 -0
  189. package/packages/core/dist/errors/registry.js.map +1 -0
  190. package/packages/core/dist/errors/render.d.ts +3 -0
  191. package/packages/core/dist/errors/render.d.ts.map +1 -0
  192. package/packages/core/dist/errors/render.js +64 -0
  193. package/packages/core/dist/errors/render.js.map +1 -0
  194. package/packages/core/dist/errors.d.ts +5 -0
  195. package/packages/core/dist/errors.d.ts.map +1 -0
  196. package/packages/core/dist/errors.js +9 -0
  197. package/packages/core/dist/errors.js.map +1 -0
  198. package/packages/core/dist/evidence/appendEvidenceEvent.d.ts +27 -0
  199. package/packages/core/dist/evidence/appendEvidenceEvent.d.ts.map +1 -0
  200. package/packages/core/dist/evidence/appendEvidenceEvent.js +218 -0
  201. package/packages/core/dist/evidence/appendEvidenceEvent.js.map +1 -0
  202. package/packages/core/dist/evidence/assurance.d.ts +18 -0
  203. package/packages/core/dist/evidence/assurance.d.ts.map +1 -0
  204. package/packages/core/dist/evidence/assurance.js +38 -0
  205. package/packages/core/dist/evidence/assurance.js.map +1 -0
  206. package/packages/core/dist/evidence/index.d.ts +8 -0
  207. package/packages/core/dist/evidence/index.d.ts.map +1 -0
  208. package/packages/core/dist/evidence/index.js +8 -0
  209. package/packages/core/dist/evidence/index.js.map +1 -0
  210. package/packages/core/dist/evidence/jsonlLedger.d.ts +13 -0
  211. package/packages/core/dist/evidence/jsonlLedger.d.ts.map +1 -0
  212. package/packages/core/dist/evidence/jsonlLedger.js +171 -0
  213. package/packages/core/dist/evidence/jsonlLedger.js.map +1 -0
  214. package/packages/core/dist/evidence/linkEvidence.d.ts +4 -0
  215. package/packages/core/dist/evidence/linkEvidence.d.ts.map +1 -0
  216. package/packages/core/dist/evidence/linkEvidence.js +53 -0
  217. package/packages/core/dist/evidence/linkEvidence.js.map +1 -0
  218. package/packages/core/dist/evidence/replayEvidence.d.ts +6 -0
  219. package/packages/core/dist/evidence/replayEvidence.d.ts.map +1 -0
  220. package/packages/core/dist/evidence/replayEvidence.js +216 -0
  221. package/packages/core/dist/evidence/replayEvidence.js.map +1 -0
  222. package/packages/core/dist/evidence/results.d.ts +4 -0
  223. package/packages/core/dist/evidence/results.d.ts.map +1 -0
  224. package/packages/core/dist/evidence/results.js +32 -0
  225. package/packages/core/dist/evidence/results.js.map +1 -0
  226. package/packages/core/dist/evidence/types.d.ts +149 -0
  227. package/packages/core/dist/evidence/types.d.ts.map +1 -0
  228. package/packages/core/dist/evidence/types.js +2 -0
  229. package/packages/core/dist/evidence/types.js.map +1 -0
  230. package/packages/core/dist/host-profiles/claude.yml +29 -0
  231. package/packages/core/dist/host-profiles/codex.yml +29 -0
  232. package/packages/core/dist/host-profiles/copilot.yml +29 -0
  233. package/packages/core/dist/host-profiles/opencode.yml +29 -0
  234. package/packages/core/dist/hosts/conformanceStatus.d.ts +16 -0
  235. package/packages/core/dist/hosts/conformanceStatus.d.ts.map +1 -0
  236. package/packages/core/dist/hosts/conformanceStatus.js +160 -0
  237. package/packages/core/dist/hosts/conformanceStatus.js.map +1 -0
  238. package/packages/core/dist/hosts/index.d.ts +5 -0
  239. package/packages/core/dist/hosts/index.d.ts.map +1 -0
  240. package/packages/core/dist/hosts/index.js +5 -0
  241. package/packages/core/dist/hosts/index.js.map +1 -0
  242. package/packages/core/dist/hosts/loadHostProfile.d.ts +6 -0
  243. package/packages/core/dist/hosts/loadHostProfile.d.ts.map +1 -0
  244. package/packages/core/dist/hosts/loadHostProfile.js +41 -0
  245. package/packages/core/dist/hosts/loadHostProfile.js.map +1 -0
  246. package/packages/core/dist/hosts/projectHostFiles.d.ts +16 -0
  247. package/packages/core/dist/hosts/projectHostFiles.d.ts.map +1 -0
  248. package/packages/core/dist/hosts/projectHostFiles.js +272 -0
  249. package/packages/core/dist/hosts/projectHostFiles.js.map +1 -0
  250. package/packages/core/dist/hosts/types.d.ts +122 -0
  251. package/packages/core/dist/hosts/types.d.ts.map +1 -0
  252. package/packages/core/dist/hosts/types.js +2 -0
  253. package/packages/core/dist/hosts/types.js.map +1 -0
  254. package/packages/core/dist/index.d.ts +26 -0
  255. package/packages/core/dist/index.d.ts.map +1 -0
  256. package/packages/core/dist/index.js +31 -0
  257. package/packages/core/dist/index.js.map +1 -0
  258. package/packages/core/dist/init/index.d.ts +2 -0
  259. package/packages/core/dist/init/index.d.ts.map +1 -0
  260. package/packages/core/dist/init/index.js +3 -0
  261. package/packages/core/dist/init/index.js.map +1 -0
  262. package/packages/core/dist/init/scaffold.d.ts +28 -0
  263. package/packages/core/dist/init/scaffold.d.ts.map +1 -0
  264. package/packages/core/dist/init/scaffold.js +293 -0
  265. package/packages/core/dist/init/scaffold.js.map +1 -0
  266. package/packages/core/dist/markers/appendOnly.d.ts +23 -0
  267. package/packages/core/dist/markers/appendOnly.d.ts.map +1 -0
  268. package/packages/core/dist/markers/appendOnly.js +75 -0
  269. package/packages/core/dist/markers/appendOnly.js.map +1 -0
  270. package/packages/core/dist/markers/bindingSetHash.d.ts +28 -0
  271. package/packages/core/dist/markers/bindingSetHash.d.ts.map +1 -0
  272. package/packages/core/dist/markers/bindingSetHash.js +33 -0
  273. package/packages/core/dist/markers/bindingSetHash.js.map +1 -0
  274. package/packages/core/dist/markers/canonicalJson.d.ts +4 -0
  275. package/packages/core/dist/markers/canonicalJson.d.ts.map +1 -0
  276. package/packages/core/dist/markers/canonicalJson.js +51 -0
  277. package/packages/core/dist/markers/canonicalJson.js.map +1 -0
  278. package/packages/core/dist/markers/ciAuthority.d.ts +17 -0
  279. package/packages/core/dist/markers/ciAuthority.d.ts.map +1 -0
  280. package/packages/core/dist/markers/ciAuthority.js +131 -0
  281. package/packages/core/dist/markers/ciAuthority.js.map +1 -0
  282. package/packages/core/dist/markers/cli/bind.d.ts +48 -0
  283. package/packages/core/dist/markers/cli/bind.d.ts.map +1 -0
  284. package/packages/core/dist/markers/cli/bind.js +198 -0
  285. package/packages/core/dist/markers/cli/bind.js.map +1 -0
  286. package/packages/core/dist/markers/cli/index.d.ts +9 -0
  287. package/packages/core/dist/markers/cli/index.d.ts.map +1 -0
  288. package/packages/core/dist/markers/cli/index.js +15 -0
  289. package/packages/core/dist/markers/cli/index.js.map +1 -0
  290. package/packages/core/dist/markers/cli/io.d.ts +18 -0
  291. package/packages/core/dist/markers/cli/io.d.ts.map +1 -0
  292. package/packages/core/dist/markers/cli/io.js +62 -0
  293. package/packages/core/dist/markers/cli/io.js.map +1 -0
  294. package/packages/core/dist/markers/cli/precommit.d.ts +32 -0
  295. package/packages/core/dist/markers/cli/precommit.d.ts.map +1 -0
  296. package/packages/core/dist/markers/cli/precommit.js +174 -0
  297. package/packages/core/dist/markers/cli/precommit.js.map +1 -0
  298. package/packages/core/dist/markers/cli/prove.d.ts +69 -0
  299. package/packages/core/dist/markers/cli/prove.d.ts.map +1 -0
  300. package/packages/core/dist/markers/cli/prove.js +381 -0
  301. package/packages/core/dist/markers/cli/prove.js.map +1 -0
  302. package/packages/core/dist/markers/cli/scan.d.ts +63 -0
  303. package/packages/core/dist/markers/cli/scan.d.ts.map +1 -0
  304. package/packages/core/dist/markers/cli/scan.js +233 -0
  305. package/packages/core/dist/markers/cli/scan.js.map +1 -0
  306. package/packages/core/dist/markers/cli/shared.d.ts +25 -0
  307. package/packages/core/dist/markers/cli/shared.d.ts.map +1 -0
  308. package/packages/core/dist/markers/cli/shared.js +123 -0
  309. package/packages/core/dist/markers/cli/shared.js.map +1 -0
  310. package/packages/core/dist/markers/cli/validateLedger.d.ts +38 -0
  311. package/packages/core/dist/markers/cli/validateLedger.d.ts.map +1 -0
  312. package/packages/core/dist/markers/cli/validateLedger.js +81 -0
  313. package/packages/core/dist/markers/cli/validateLedger.js.map +1 -0
  314. package/packages/core/dist/markers/cli/verify.d.ts +65 -0
  315. package/packages/core/dist/markers/cli/verify.d.ts.map +1 -0
  316. package/packages/core/dist/markers/cli/verify.js +245 -0
  317. package/packages/core/dist/markers/cli/verify.js.map +1 -0
  318. package/packages/core/dist/markers/commentPrefix.d.ts +7 -0
  319. package/packages/core/dist/markers/commentPrefix.d.ts.map +1 -0
  320. package/packages/core/dist/markers/commentPrefix.js +79 -0
  321. package/packages/core/dist/markers/commentPrefix.js.map +1 -0
  322. package/packages/core/dist/markers/constants.d.ts +10 -0
  323. package/packages/core/dist/markers/constants.d.ts.map +1 -0
  324. package/packages/core/dist/markers/constants.js +13 -0
  325. package/packages/core/dist/markers/constants.js.map +1 -0
  326. package/packages/core/dist/markers/evidenceLedger.d.ts +150 -0
  327. package/packages/core/dist/markers/evidenceLedger.d.ts.map +1 -0
  328. package/packages/core/dist/markers/evidenceLedger.js +391 -0
  329. package/packages/core/dist/markers/evidenceLedger.js.map +1 -0
  330. package/packages/core/dist/markers/freshness.d.ts +125 -0
  331. package/packages/core/dist/markers/freshness.d.ts.map +1 -0
  332. package/packages/core/dist/markers/freshness.js +605 -0
  333. package/packages/core/dist/markers/freshness.js.map +1 -0
  334. package/packages/core/dist/markers/index.d.ts +26 -0
  335. package/packages/core/dist/markers/index.d.ts.map +1 -0
  336. package/packages/core/dist/markers/index.js +38 -0
  337. package/packages/core/dist/markers/index.js.map +1 -0
  338. package/packages/core/dist/markers/keygen.d.ts +6 -0
  339. package/packages/core/dist/markers/keygen.d.ts.map +1 -0
  340. package/packages/core/dist/markers/keygen.js +18 -0
  341. package/packages/core/dist/markers/keygen.js.map +1 -0
  342. package/packages/core/dist/markers/keyring.d.ts +23 -0
  343. package/packages/core/dist/markers/keyring.d.ts.map +1 -0
  344. package/packages/core/dist/markers/keyring.js +93 -0
  345. package/packages/core/dist/markers/keyring.js.map +1 -0
  346. package/packages/core/dist/markers/markerLine.d.ts +35 -0
  347. package/packages/core/dist/markers/markerLine.d.ts.map +1 -0
  348. package/packages/core/dist/markers/markerLine.js +125 -0
  349. package/packages/core/dist/markers/markerLine.js.map +1 -0
  350. package/packages/core/dist/markers/physicalLines.d.ts +10 -0
  351. package/packages/core/dist/markers/physicalLines.d.ts.map +1 -0
  352. package/packages/core/dist/markers/physicalLines.js +48 -0
  353. package/packages/core/dist/markers/physicalLines.js.map +1 -0
  354. package/packages/core/dist/markers/policyHash.d.ts +4 -0
  355. package/packages/core/dist/markers/policyHash.d.ts.map +1 -0
  356. package/packages/core/dist/markers/policyHash.js +14 -0
  357. package/packages/core/dist/markers/policyHash.js.map +1 -0
  358. package/packages/core/dist/markers/proofSignature.d.ts +29 -0
  359. package/packages/core/dist/markers/proofSignature.d.ts.map +1 -0
  360. package/packages/core/dist/markers/proofSignature.js +106 -0
  361. package/packages/core/dist/markers/proofSignature.js.map +1 -0
  362. package/packages/core/dist/markers/reconcile.d.ts +26 -0
  363. package/packages/core/dist/markers/reconcile.d.ts.map +1 -0
  364. package/packages/core/dist/markers/reconcile.js +52 -0
  365. package/packages/core/dist/markers/reconcile.js.map +1 -0
  366. package/packages/core/dist/markers/registry.d.ts +53 -0
  367. package/packages/core/dist/markers/registry.d.ts.map +1 -0
  368. package/packages/core/dist/markers/registry.js +161 -0
  369. package/packages/core/dist/markers/registry.js.map +1 -0
  370. package/packages/core/dist/markers/rowHash.d.ts +2 -0
  371. package/packages/core/dist/markers/rowHash.d.ts.map +1 -0
  372. package/packages/core/dist/markers/rowHash.js +10 -0
  373. package/packages/core/dist/markers/rowHash.js.map +1 -0
  374. package/packages/core/dist/markers/scanner.d.ts +67 -0
  375. package/packages/core/dist/markers/scanner.d.ts.map +1 -0
  376. package/packages/core/dist/markers/scanner.js +292 -0
  377. package/packages/core/dist/markers/scanner.js.map +1 -0
  378. package/packages/core/dist/markers/schemas/binding-registry-event.schema.json +41 -0
  379. package/packages/core/dist/markers/schemas/freshness-status.schema.json +134 -0
  380. package/packages/core/dist/markers/schemas/proof-event.schema.json +170 -0
  381. package/packages/core/dist/markers/spanCanon.d.ts +4 -0
  382. package/packages/core/dist/markers/spanCanon.d.ts.map +1 -0
  383. package/packages/core/dist/markers/spanCanon.js +42 -0
  384. package/packages/core/dist/markers/spanCanon.js.map +1 -0
  385. package/packages/core/dist/markers/swiftFuncRecognizer.d.ts +36 -0
  386. package/packages/core/dist/markers/swiftFuncRecognizer.d.ts.map +1 -0
  387. package/packages/core/dist/markers/swiftFuncRecognizer.js +638 -0
  388. package/packages/core/dist/markers/swiftFuncRecognizer.js.map +1 -0
  389. package/packages/core/dist/markers/validators.d.ts +13 -0
  390. package/packages/core/dist/markers/validators.d.ts.map +1 -0
  391. package/packages/core/dist/markers/validators.js +64 -0
  392. package/packages/core/dist/markers/validators.js.map +1 -0
  393. package/packages/core/dist/markers/verificationContextHash.d.ts +23 -0
  394. package/packages/core/dist/markers/verificationContextHash.d.ts.map +1 -0
  395. package/packages/core/dist/markers/verificationContextHash.js +96 -0
  396. package/packages/core/dist/markers/verificationContextHash.js.map +1 -0
  397. package/packages/core/dist/markers/verifierPresets.d.ts +18 -0
  398. package/packages/core/dist/markers/verifierPresets.d.ts.map +1 -0
  399. package/packages/core/dist/markers/verifierPresets.js +71 -0
  400. package/packages/core/dist/markers/verifierPresets.js.map +1 -0
  401. package/packages/core/dist/markers/verifierResolver.d.ts +27 -0
  402. package/packages/core/dist/markers/verifierResolver.d.ts.map +1 -0
  403. package/packages/core/dist/markers/verifierResolver.js +151 -0
  404. package/packages/core/dist/markers/verifierResolver.js.map +1 -0
  405. package/packages/core/dist/migration/index.d.ts +2 -0
  406. package/packages/core/dist/migration/index.d.ts.map +1 -0
  407. package/packages/core/dist/migration/index.js +2 -0
  408. package/packages/core/dist/migration/index.js.map +1 -0
  409. package/packages/core/dist/migration/testMatrix.d.ts +42 -0
  410. package/packages/core/dist/migration/testMatrix.d.ts.map +1 -0
  411. package/packages/core/dist/migration/testMatrix.js +351 -0
  412. package/packages/core/dist/migration/testMatrix.js.map +1 -0
  413. package/packages/core/dist/package/index.d.ts +2 -0
  414. package/packages/core/dist/package/index.d.ts.map +1 -0
  415. package/packages/core/dist/package/index.js +2 -0
  416. package/packages/core/dist/package/index.js.map +1 -0
  417. package/packages/core/dist/package/inspectPackage.d.ts +67 -0
  418. package/packages/core/dist/package/inspectPackage.d.ts.map +1 -0
  419. package/packages/core/dist/package/inspectPackage.js +371 -0
  420. package/packages/core/dist/package/inspectPackage.js.map +1 -0
  421. package/packages/core/dist/presentation/candidates.d.ts +13 -0
  422. package/packages/core/dist/presentation/candidates.d.ts.map +1 -0
  423. package/packages/core/dist/presentation/candidates.js +86 -0
  424. package/packages/core/dist/presentation/candidates.js.map +1 -0
  425. package/packages/core/dist/presentation/index.d.ts +8 -0
  426. package/packages/core/dist/presentation/index.d.ts.map +1 -0
  427. package/packages/core/dist/presentation/index.js +8 -0
  428. package/packages/core/dist/presentation/index.js.map +1 -0
  429. package/packages/core/dist/presentation/items.d.ts +18 -0
  430. package/packages/core/dist/presentation/items.d.ts.map +1 -0
  431. package/packages/core/dist/presentation/items.js +228 -0
  432. package/packages/core/dist/presentation/items.js.map +1 -0
  433. package/packages/core/dist/presentation/ordering.d.ts +8 -0
  434. package/packages/core/dist/presentation/ordering.d.ts.map +1 -0
  435. package/packages/core/dist/presentation/ordering.js +31 -0
  436. package/packages/core/dist/presentation/ordering.js.map +1 -0
  437. package/packages/core/dist/presentation/planHelpers.d.ts +26 -0
  438. package/packages/core/dist/presentation/planHelpers.d.ts.map +1 -0
  439. package/packages/core/dist/presentation/planHelpers.js +62 -0
  440. package/packages/core/dist/presentation/planHelpers.js.map +1 -0
  441. package/packages/core/dist/presentation/presentationFormat.d.ts +39 -0
  442. package/packages/core/dist/presentation/presentationFormat.d.ts.map +1 -0
  443. package/packages/core/dist/presentation/presentationFormat.js +58 -0
  444. package/packages/core/dist/presentation/presentationFormat.js.map +1 -0
  445. package/packages/core/dist/presentation/renderCard.d.ts +37 -0
  446. package/packages/core/dist/presentation/renderCard.d.ts.map +1 -0
  447. package/packages/core/dist/presentation/renderCard.js +129 -0
  448. package/packages/core/dist/presentation/renderCard.js.map +1 -0
  449. package/packages/core/dist/presentation/scoring.d.ts +10 -0
  450. package/packages/core/dist/presentation/scoring.d.ts.map +1 -0
  451. package/packages/core/dist/presentation/scoring.js +82 -0
  452. package/packages/core/dist/presentation/scoring.js.map +1 -0
  453. package/packages/core/dist/presentation/selectPlan.d.ts +4 -0
  454. package/packages/core/dist/presentation/selectPlan.d.ts.map +1 -0
  455. package/packages/core/dist/presentation/selectPlan.js +122 -0
  456. package/packages/core/dist/presentation/selectPlan.js.map +1 -0
  457. package/packages/core/dist/presentation/selectShowcasePlan.d.ts +3 -0
  458. package/packages/core/dist/presentation/selectShowcasePlan.d.ts.map +1 -0
  459. package/packages/core/dist/presentation/selectShowcasePlan.js +6 -0
  460. package/packages/core/dist/presentation/selectShowcasePlan.js.map +1 -0
  461. package/packages/core/dist/presentation/selectWalkthroughPlan.d.ts +3 -0
  462. package/packages/core/dist/presentation/selectWalkthroughPlan.d.ts.map +1 -0
  463. package/packages/core/dist/presentation/selectWalkthroughPlan.js +6 -0
  464. package/packages/core/dist/presentation/selectWalkthroughPlan.js.map +1 -0
  465. package/packages/core/dist/presentation/selection.d.ts +7 -0
  466. package/packages/core/dist/presentation/selection.d.ts.map +1 -0
  467. package/packages/core/dist/presentation/selection.js +20 -0
  468. package/packages/core/dist/presentation/selection.js.map +1 -0
  469. package/packages/core/dist/presentation/snapshot.d.ts +12 -0
  470. package/packages/core/dist/presentation/snapshot.d.ts.map +1 -0
  471. package/packages/core/dist/presentation/snapshot.js +53 -0
  472. package/packages/core/dist/presentation/snapshot.js.map +1 -0
  473. package/packages/core/dist/presentation/types.d.ts +172 -0
  474. package/packages/core/dist/presentation/types.d.ts.map +1 -0
  475. package/packages/core/dist/presentation/types.js +2 -0
  476. package/packages/core/dist/presentation/types.js.map +1 -0
  477. package/packages/core/dist/redact.d.ts +11 -0
  478. package/packages/core/dist/redact.d.ts.map +1 -0
  479. package/packages/core/dist/redact.js +17 -0
  480. package/packages/core/dist/redact.js.map +1 -0
  481. package/packages/core/dist/roots.d.ts +81 -0
  482. package/packages/core/dist/roots.d.ts.map +1 -0
  483. package/packages/core/dist/roots.js +220 -0
  484. package/packages/core/dist/roots.js.map +1 -0
  485. package/packages/core/dist/schema/cliResult.d.ts +34 -0
  486. package/packages/core/dist/schema/cliResult.d.ts.map +1 -0
  487. package/packages/core/dist/schema/cliResult.js +35 -0
  488. package/packages/core/dist/schema/cliResult.js.map +1 -0
  489. package/packages/core/dist/schema/diagnostic.d.ts +26 -0
  490. package/packages/core/dist/schema/diagnostic.d.ts.map +1 -0
  491. package/packages/core/dist/schema/diagnostic.js +28 -0
  492. package/packages/core/dist/schema/diagnostic.js.map +1 -0
  493. package/packages/core/dist/schema/index.d.ts +8 -0
  494. package/packages/core/dist/schema/index.d.ts.map +1 -0
  495. package/packages/core/dist/schema/index.js +9 -0
  496. package/packages/core/dist/schema/index.js.map +1 -0
  497. package/packages/core/dist/schema/registry.d.ts +15 -0
  498. package/packages/core/dist/schema/registry.d.ts.map +1 -0
  499. package/packages/core/dist/schema/registry.js +206 -0
  500. package/packages/core/dist/schema/registry.js.map +1 -0
  501. package/packages/core/dist/schema/syntheticContracts.d.ts +3 -0
  502. package/packages/core/dist/schema/syntheticContracts.d.ts.map +1 -0
  503. package/packages/core/dist/schema/syntheticContracts.js +342 -0
  504. package/packages/core/dist/schema/syntheticContracts.js.map +1 -0
  505. package/packages/core/dist/schema/validate.d.ts +21 -0
  506. package/packages/core/dist/schema/validate.d.ts.map +1 -0
  507. package/packages/core/dist/schema/validate.js +210 -0
  508. package/packages/core/dist/schema/validate.js.map +1 -0
  509. package/packages/core/dist/schemas/v1/authority.schema.json +70 -0
  510. package/packages/core/dist/schemas/v1/cli-result.schema.json +30 -0
  511. package/packages/core/dist/schemas/v1/common.schema.json +274 -0
  512. package/packages/core/dist/schemas/v1/demo-capsule.schema.json +78 -0
  513. package/packages/core/dist/schemas/v1/evidence-append-result.schema.json +14 -0
  514. package/packages/core/dist/schemas/v1/evidence-event.schema.json +181 -0
  515. package/packages/core/dist/schemas/v1/evidence-status-result.schema.json +68 -0
  516. package/packages/core/dist/schemas/v1/host-profile.schema.json +94 -0
  517. package/packages/core/dist/schemas/v1/host-status-result.schema.json +49 -0
  518. package/packages/core/dist/schemas/v1/keyring.schema.json +77 -0
  519. package/packages/core/dist/schemas/v1/ledger.schema.json +99 -0
  520. package/packages/core/dist/schemas/v1/marker.schema.json +84 -0
  521. package/packages/core/dist/schemas/v1/matrix-list-result.schema.json +67 -0
  522. package/packages/core/dist/schemas/v1/matrix-mutation-result.schema.json +49 -0
  523. package/packages/core/dist/schemas/v1/matrix-validation-result.schema.json +77 -0
  524. package/packages/core/dist/schemas/v1/mcp-tool-results.schema.json +34 -0
  525. package/packages/core/dist/schemas/v1/migration-test-matrix-result.schema.json +76 -0
  526. package/packages/core/dist/schemas/v1/presentation-plan-result.schema.json +62 -0
  527. package/packages/core/dist/schemas/v1/presentation-plan.schema.json +259 -0
  528. package/packages/core/dist/schemas/v1/release-gate-result.schema.json +136 -0
  529. package/packages/core/dist/schemas/v1/showcase-approval-result.schema.json +5 -0
  530. package/packages/core/dist/schemas/v1/showcase-event-append-result.schema.json +17 -0
  531. package/packages/core/dist/schemas/v1/showcase-event.schema.json +235 -0
  532. package/packages/core/dist/schemas/v1/showcase-finish-result.schema.json +5 -0
  533. package/packages/core/dist/schemas/v1/showcase-run-status-result.schema.json +70 -0
  534. package/packages/core/dist/schemas/v1/showcase-start-result.schema.json +5 -0
  535. package/packages/core/dist/schemas/v1/use-case-file.schema.json +178 -0
  536. package/packages/core/dist/schemas/v1/workflow-mode.schema.json +16 -0
  537. package/packages/core/dist/schemas/v1/workspace-config.schema.json +58 -0
  538. package/packages/core/dist/showcase/appendShowcaseEvent.d.ts +116 -0
  539. package/packages/core/dist/showcase/appendShowcaseEvent.d.ts.map +1 -0
  540. package/packages/core/dist/showcase/appendShowcaseEvent.js +353 -0
  541. package/packages/core/dist/showcase/appendShowcaseEvent.js.map +1 -0
  542. package/packages/core/dist/showcase/approval.d.ts +2 -0
  543. package/packages/core/dist/showcase/approval.d.ts.map +1 -0
  544. package/packages/core/dist/showcase/approval.js +2 -0
  545. package/packages/core/dist/showcase/approval.js.map +1 -0
  546. package/packages/core/dist/showcase/approvalAuthority.d.ts +19 -0
  547. package/packages/core/dist/showcase/approvalAuthority.d.ts.map +1 -0
  548. package/packages/core/dist/showcase/approvalAuthority.js +46 -0
  549. package/packages/core/dist/showcase/approvalAuthority.js.map +1 -0
  550. package/packages/core/dist/showcase/index.d.ts +11 -0
  551. package/packages/core/dist/showcase/index.d.ts.map +1 -0
  552. package/packages/core/dist/showcase/index.js +11 -0
  553. package/packages/core/dist/showcase/index.js.map +1 -0
  554. package/packages/core/dist/showcase/jsonlLedger.d.ts +11 -0
  555. package/packages/core/dist/showcase/jsonlLedger.d.ts.map +1 -0
  556. package/packages/core/dist/showcase/jsonlLedger.js +50 -0
  557. package/packages/core/dist/showcase/jsonlLedger.js.map +1 -0
  558. package/packages/core/dist/showcase/planBinding.d.ts +5 -0
  559. package/packages/core/dist/showcase/planBinding.d.ts.map +1 -0
  560. package/packages/core/dist/showcase/planBinding.js +33 -0
  561. package/packages/core/dist/showcase/planBinding.js.map +1 -0
  562. package/packages/core/dist/showcase/replayRun.d.ts +5 -0
  563. package/packages/core/dist/showcase/replayRun.d.ts.map +1 -0
  564. package/packages/core/dist/showcase/replayRun.js +199 -0
  565. package/packages/core/dist/showcase/replayRun.js.map +1 -0
  566. package/packages/core/dist/showcase/results.d.ts +3 -0
  567. package/packages/core/dist/showcase/results.d.ts.map +1 -0
  568. package/packages/core/dist/showcase/results.js +4 -0
  569. package/packages/core/dist/showcase/results.js.map +1 -0
  570. package/packages/core/dist/showcase/revisionEpochs.d.ts +2 -0
  571. package/packages/core/dist/showcase/revisionEpochs.d.ts.map +1 -0
  572. package/packages/core/dist/showcase/revisionEpochs.js +2 -0
  573. package/packages/core/dist/showcase/revisionEpochs.js.map +1 -0
  574. package/packages/core/dist/showcase/startRun.d.ts +2 -0
  575. package/packages/core/dist/showcase/startRun.d.ts.map +1 -0
  576. package/packages/core/dist/showcase/startRun.js +2 -0
  577. package/packages/core/dist/showcase/startRun.js.map +1 -0
  578. package/packages/core/dist/showcase/types.d.ts +66 -0
  579. package/packages/core/dist/showcase/types.d.ts.map +1 -0
  580. package/packages/core/dist/showcase/types.js +2 -0
  581. package/packages/core/dist/showcase/types.js.map +1 -0
  582. package/packages/core/dist/skills/canonicalSkills.d.ts +3 -0
  583. package/packages/core/dist/skills/canonicalSkills.d.ts.map +1 -0
  584. package/packages/core/dist/skills/canonicalSkills.js +7 -0
  585. package/packages/core/dist/skills/canonicalSkills.js.map +1 -0
  586. package/packages/core/dist/skills/index.d.ts +4 -0
  587. package/packages/core/dist/skills/index.d.ts.map +1 -0
  588. package/packages/core/dist/skills/index.js +4 -0
  589. package/packages/core/dist/skills/index.js.map +1 -0
  590. package/packages/core/dist/skills/types.d.ts +26 -0
  591. package/packages/core/dist/skills/types.d.ts.map +1 -0
  592. package/packages/core/dist/skills/types.js +2 -0
  593. package/packages/core/dist/skills/types.js.map +1 -0
  594. package/packages/core/dist/skills/validateSkillAssets.d.ts +6 -0
  595. package/packages/core/dist/skills/validateSkillAssets.d.ts.map +1 -0
  596. package/packages/core/dist/skills/validateSkillAssets.js +218 -0
  597. package/packages/core/dist/skills/validateSkillAssets.js.map +1 -0
  598. package/packages/core/dist/useCases/integrity.d.ts +11 -0
  599. package/packages/core/dist/useCases/integrity.d.ts.map +1 -0
  600. package/packages/core/dist/useCases/integrity.js +178 -0
  601. package/packages/core/dist/useCases/integrity.js.map +1 -0
  602. package/packages/core/dist/useCases/loadUseCaseMatrix.d.ts +7 -0
  603. package/packages/core/dist/useCases/loadUseCaseMatrix.d.ts.map +1 -0
  604. package/packages/core/dist/useCases/loadUseCaseMatrix.js +74 -0
  605. package/packages/core/dist/useCases/loadUseCaseMatrix.js.map +1 -0
  606. package/packages/core/dist/useCases/mutateUseCaseMatrix.d.ts +25 -0
  607. package/packages/core/dist/useCases/mutateUseCaseMatrix.d.ts.map +1 -0
  608. package/packages/core/dist/useCases/mutateUseCaseMatrix.js +198 -0
  609. package/packages/core/dist/useCases/mutateUseCaseMatrix.js.map +1 -0
  610. package/packages/core/dist/useCases/query.d.ts +12 -0
  611. package/packages/core/dist/useCases/query.d.ts.map +1 -0
  612. package/packages/core/dist/useCases/query.js +47 -0
  613. package/packages/core/dist/useCases/query.js.map +1 -0
  614. package/packages/core/dist/useCases/types.d.ts +149 -0
  615. package/packages/core/dist/useCases/types.d.ts.map +1 -0
  616. package/packages/core/dist/useCases/types.js +2 -0
  617. package/packages/core/dist/useCases/types.js.map +1 -0
  618. package/packages/core/dist/useCases/validateUseCaseFile.d.ts +9 -0
  619. package/packages/core/dist/useCases/validateUseCaseFile.d.ts.map +1 -0
  620. package/packages/core/dist/useCases/validateUseCaseFile.js +107 -0
  621. package/packages/core/dist/useCases/validateUseCaseFile.js.map +1 -0
  622. package/packages/core/dist/version.d.ts +9 -0
  623. package/packages/core/dist/version.d.ts.map +1 -0
  624. package/packages/core/dist/version.js +17 -0
  625. package/packages/core/dist/version.js.map +1 -0
  626. package/packages/core/package.json +39 -0
  627. package/packages/mcp/README.md +48 -0
  628. package/packages/mcp/dist/index.d.ts +20 -0
  629. package/packages/mcp/dist/index.d.ts.map +1 -0
  630. package/packages/mcp/dist/index.js +180 -0
  631. package/packages/mcp/dist/index.js.map +1 -0
  632. package/packages/mcp/dist/prompts.d.ts +32 -0
  633. package/packages/mcp/dist/prompts.d.ts.map +1 -0
  634. package/packages/mcp/dist/prompts.js +199 -0
  635. package/packages/mcp/dist/prompts.js.map +1 -0
  636. package/packages/mcp/dist/resources.d.ts +22 -0
  637. package/packages/mcp/dist/resources.d.ts.map +1 -0
  638. package/packages/mcp/dist/resources.js +342 -0
  639. package/packages/mcp/dist/resources.js.map +1 -0
  640. package/packages/mcp/dist/toolHandlers.d.ts +28 -0
  641. package/packages/mcp/dist/toolHandlers.d.ts.map +1 -0
  642. package/packages/mcp/dist/toolHandlers.js +592 -0
  643. package/packages/mcp/dist/toolHandlers.js.map +1 -0
  644. package/packages/mcp/dist/toolSchemas.d.ts +23 -0
  645. package/packages/mcp/dist/toolSchemas.d.ts.map +1 -0
  646. package/packages/mcp/dist/toolSchemas.js +223 -0
  647. package/packages/mcp/dist/toolSchemas.js.map +1 -0
  648. package/packages/mcp/dist/tools.d.ts +22 -0
  649. package/packages/mcp/dist/tools.d.ts.map +1 -0
  650. package/packages/mcp/dist/tools.js +65 -0
  651. package/packages/mcp/dist/tools.js.map +1 -0
  652. package/packages/mcp/package.json +38 -0
  653. package/plugin.json +6 -0
  654. package/schemas/v1/authority.schema.json +70 -0
  655. package/schemas/v1/cli-result.schema.json +30 -0
  656. package/schemas/v1/common.schema.json +274 -0
  657. package/schemas/v1/demo-capsule.schema.json +78 -0
  658. package/schemas/v1/evidence-append-result.schema.json +14 -0
  659. package/schemas/v1/evidence-event.schema.json +181 -0
  660. package/schemas/v1/evidence-status-result.schema.json +68 -0
  661. package/schemas/v1/host-profile.schema.json +94 -0
  662. package/schemas/v1/host-status-result.schema.json +49 -0
  663. package/schemas/v1/keyring.schema.json +77 -0
  664. package/schemas/v1/ledger.schema.json +99 -0
  665. package/schemas/v1/marker.schema.json +84 -0
  666. package/schemas/v1/matrix-list-result.schema.json +67 -0
  667. package/schemas/v1/matrix-mutation-result.schema.json +49 -0
  668. package/schemas/v1/matrix-validation-result.schema.json +77 -0
  669. package/schemas/v1/mcp-tool-results.schema.json +34 -0
  670. package/schemas/v1/migration-test-matrix-result.schema.json +76 -0
  671. package/schemas/v1/presentation-plan-result.schema.json +62 -0
  672. package/schemas/v1/presentation-plan.schema.json +259 -0
  673. package/schemas/v1/release-gate-result.schema.json +136 -0
  674. package/schemas/v1/showcase-approval-result.schema.json +5 -0
  675. package/schemas/v1/showcase-event-append-result.schema.json +17 -0
  676. package/schemas/v1/showcase-event.schema.json +235 -0
  677. package/schemas/v1/showcase-finish-result.schema.json +5 -0
  678. package/schemas/v1/showcase-run-status-result.schema.json +70 -0
  679. package/schemas/v1/showcase-start-result.schema.json +5 -0
  680. package/schemas/v1/use-case-file.schema.json +178 -0
  681. package/schemas/v1/workflow-mode.schema.json +16 -0
  682. package/schemas/v1/workspace-config.schema.json +58 -0
  683. package/use-cases/capsule/demos.yml +212 -0
  684. package/use-cases/capsule/runner.yml +49 -0
  685. package/use-cases/diagnostics/contracts.yml +239 -0
  686. package/use-cases/evidence/core.yml +32 -0
  687. package/use-cases/evidence/ledger.yml +330 -0
  688. package/use-cases/hosts/profiles.yml +365 -0
  689. package/use-cases/hosts/projections.yml +96 -0
  690. package/use-cases/lifecycle/loop.yml +229 -0
  691. package/use-cases/matrix/core.yml +92 -0
  692. package/use-cases/matrix/product.yml +289 -0
  693. package/use-cases/mcp/surface.yml +257 -0
  694. package/use-cases/mcp/wrapper.yml +100 -0
  695. package/use-cases/migration/importer.yml +171 -0
  696. package/use-cases/migration/test-matrix.yml +32 -0
  697. package/use-cases/planning/cards.yml +215 -0
  698. package/use-cases/release/package.yml +80 -0
  699. package/use-cases/release/proof.yml +180 -0
  700. package/use-cases/roadmap/deferred.yml +184 -0
  701. package/use-cases/showcase/flow.yml +269 -0
  702. package/use-cases/showcase/live.yml +44 -0
  703. package/use-cases/skills/assets.yml +92 -0
  704. package/use-cases.yml +9 -0
@@ -0,0 +1,638 @@
1
+ import { appendShowcaseApproval, appendShowcaseFailureDecision, appendShowcaseObservation, appendShowcaseVerdict, containedPathOrError, correctShowcaseVerdict, createCliResult, errorEnvelope, finishShowcaseRun, isValidId, loadPresentationPlanFile, loadUseCaseMatrix, pauseShowcaseRun, rejectShowcaseApproval, replayEvidence, replayShowcaseRun, resolveContextOrError, resumeShowcaseRun, selectShowcasePlan, startShowcaseRun } from "../runtime.js";
2
+ import { workspaceFlags } from "./common.js";
3
+ // Non-writing port of the legacy `writeShowcaseResult`: wrap a showcase run
4
+ // result in the canonical envelope (ok=true, complete from the run status) and
5
+ // pair it with the verb's exit code instead of writing to stdout.
6
+ function showcaseResultOutput(command, result, context, exitCode) {
7
+ return {
8
+ envelope: createCliResult(command, result, {
9
+ ok: true,
10
+ complete: result.status.complete,
11
+ workspaceRoot: context.workspace_root,
12
+ dataRoot: context.data_root,
13
+ componentId: context.component_id
14
+ }),
15
+ exitCode
16
+ };
17
+ }
18
+ // Non-writing port of the legacy `writeCaughtShowcaseError`: map a thrown core
19
+ // error to its diagnostic code/message and exit code (ledger damage -> 3, else
20
+ // 1), returning the envelope instead of writing.
21
+ function showcaseCaughtError(command, error) {
22
+ const code = error instanceof Error && "code" in error ? String(error.code) : "internal_error";
23
+ return {
24
+ envelope: errorEnvelope(command, code, error instanceof Error ? error.message : String(error)),
25
+ exitCode: code === "showcase_ledger_damaged" ? 3 : 1
26
+ };
27
+ }
28
+ // SECURITY: reject a user-supplied id that is not a canonical id BEFORE it can
29
+ // become a filesystem path segment (e.g. showcase-runs/<runId>/events.jsonl) or a
30
+ // ledger lookup key. Mirrors the legacy rejectUnsafeId/invalidIdExit: returns the
31
+ // stable UCM_INVALID_ID / exit-2 envelope, or null when the value is safe.
32
+ function rejectUnsafeId(command, paramName, value) {
33
+ return isValidId(value)
34
+ ? null
35
+ : {
36
+ envelope: errorEnvelope(command, "UCM_INVALID_ID", `Invalid ${paramName} '${value}': must be a canonical id (lowercase, no path separators, no '..').`),
37
+ exitCode: 2
38
+ };
39
+ }
40
+ export const showcaseStartCommand = {
41
+ path: ["showcase", "start"],
42
+ command: "showcase.start",
43
+ summary: "Start a showcase run from a plan file or an ad hoc selection.",
44
+ flags: [
45
+ ...workspaceFlags,
46
+ { key: "planFile", name: "--plan-file", kind: "string", valueName: "<path>", summary: "Plan file to start the run from (inside the workspace)." },
47
+ { key: "adhoc", name: "--adhoc", kind: "boolean", summary: "Build an ad hoc plan instead of reading --plan-file." },
48
+ { key: "select", name: "--select", kind: "string", valueName: "<id>", summary: "Use-case id to select for the ad hoc plan." },
49
+ { key: "audience", name: "--audience", kind: "string", valueName: "<audience>", summary: "Ad hoc plan audience (defaults to reviewer)." },
50
+ { key: "timebox", name: "--timebox", kind: "integer", valueName: "<seconds>", summary: "Ad hoc plan timebox in seconds (defaults to 600)." },
51
+ { key: "generatedAt", name: "--generated-at", kind: "string", valueName: "<iso>", summary: "Ad hoc plan generation timestamp." },
52
+ { key: "idempotencyKey", name: "--idempotency-key", kind: "string", valueName: "<key>", summary: "Idempotency key (defaults to a derived cli: key)." },
53
+ { key: "recordedAt", name: "--recorded-at", kind: "string", valueName: "<iso>", summary: "Recorded-at timestamp for the start event." }
54
+ ],
55
+ handler: ({ argv, flags }) => {
56
+ const context = resolveContextOrError(argv, "showcase.start");
57
+ if (context.kind === "error") {
58
+ return { envelope: context.envelope, exitCode: context.exitCode };
59
+ }
60
+ const contextResult = context.context;
61
+ const planFile = flags.planFile;
62
+ if (planFile) {
63
+ const contained = containedPathOrError("showcase.start", contextResult.workspace_root, planFile);
64
+ if (contained.kind === "error") {
65
+ return { envelope: contained.envelope, exitCode: contained.exitCode };
66
+ }
67
+ const planPath = contained.path;
68
+ try {
69
+ const plan = loadPresentationPlanFile(planPath);
70
+ const result = startShowcaseRun({
71
+ context: contextResult,
72
+ plan,
73
+ controlMode: "agent_led",
74
+ actorType: "agent",
75
+ hostSurface: "codex.cli",
76
+ idempotencyKey: flags.idempotencyKey ?? `cli:start-plan:${plan.plan_content_hash}`,
77
+ recordedAt: flags.recordedAt ?? "2026-06-25T12:00:00.000Z"
78
+ });
79
+ return showcaseResultOutput("showcase.start", result, contextResult, 0);
80
+ }
81
+ catch (error) {
82
+ return showcaseCaughtError("showcase.start", error);
83
+ }
84
+ }
85
+ const selected = flags.select;
86
+ if (!flags.adhoc || !selected) {
87
+ return {
88
+ envelope: errorEnvelope("showcase.start", "showcase.plan_required", "Only --adhoc --select is supported in P6."),
89
+ exitCode: 2
90
+ };
91
+ }
92
+ const matrix = loadUseCaseMatrix({ context: contextResult });
93
+ const evidence = replayEvidence({ context: contextResult });
94
+ const planResult = selectShowcasePlan({
95
+ context: contextResult,
96
+ matrix,
97
+ evidence,
98
+ request: {
99
+ audience: flags.audience ?? "reviewer",
100
+ timeboxSeconds: flags.timebox ?? 600,
101
+ maxItems: 1,
102
+ hostSurface: "codex.cli",
103
+ requestedUseCaseIds: [selected],
104
+ generatedAt: flags.generatedAt ?? "2026-06-25T12:00:00.000Z",
105
+ freshnessEvaluatedAt: flags.generatedAt ?? "2026-06-25T12:00:00.000Z"
106
+ }
107
+ });
108
+ if (!planResult.plan || !planResult.plan.selected_items.some((item) => item.use_case_id === selected)) {
109
+ return {
110
+ envelope: errorEnvelope("showcase.start", "showcase.selected_use_case_unavailable", "Selected use case was not available for an ad hoc plan."),
111
+ exitCode: 1
112
+ };
113
+ }
114
+ try {
115
+ const result = startShowcaseRun({
116
+ context: contextResult,
117
+ plan: planResult.plan,
118
+ controlMode: "agent_led",
119
+ actorType: "agent",
120
+ hostSurface: "codex.cli",
121
+ idempotencyKey: flags.idempotencyKey ?? `cli:start:${selected}:${Date.now()}`,
122
+ recordedAt: flags.recordedAt ?? "2026-06-25T12:00:00.000Z"
123
+ });
124
+ return showcaseResultOutput("showcase.start", result, contextResult, 0);
125
+ }
126
+ catch (error) {
127
+ return showcaseCaughtError("showcase.start", error);
128
+ }
129
+ }
130
+ };
131
+ export const showcaseRecordObservationCommand = {
132
+ path: ["showcase", "record-observation"],
133
+ command: "showcase.record-observation",
134
+ summary: "Append an observation to a showcase run plan item.",
135
+ flags: [
136
+ ...workspaceFlags,
137
+ { key: "run", name: "--run", kind: "string", required: true, valueName: "<id>", summary: "Showcase run id." },
138
+ { key: "item", name: "--item", kind: "string", required: true, valueName: "<id>", summary: "Plan item id." },
139
+ { key: "text", name: "--text", kind: "string", required: true, valueName: "<text>", summary: "Observation text." },
140
+ { key: "idempotencyKey", name: "--idempotency-key", kind: "string", valueName: "<key>", summary: "Idempotency key (defaults to a derived cli: key)." },
141
+ { key: "recordedAt", name: "--recorded-at", kind: "string", valueName: "<iso>", summary: "Recorded-at timestamp for the observation event." }
142
+ ],
143
+ handler: ({ argv, flags }) => {
144
+ const context = resolveContextOrError(argv, "showcase.record-observation");
145
+ if (context.kind === "error") {
146
+ return { envelope: context.envelope, exitCode: context.exitCode };
147
+ }
148
+ const contextResult = context.context;
149
+ const runId = flags.run;
150
+ const planItemId = flags.item;
151
+ const text = flags.text;
152
+ if (!runId || !planItemId || !text) {
153
+ return {
154
+ envelope: errorEnvelope("showcase.record-observation", "cli_invalid_arguments", "Missing --run, --item, or --text."),
155
+ exitCode: 2
156
+ };
157
+ }
158
+ const invalidObservationId = rejectUnsafeId("showcase.record-observation", "--run", runId) ??
159
+ rejectUnsafeId("showcase.record-observation", "--item", planItemId);
160
+ if (invalidObservationId !== null) {
161
+ return invalidObservationId;
162
+ }
163
+ try {
164
+ const result = appendShowcaseObservation({
165
+ context: contextResult,
166
+ runId,
167
+ planItemId,
168
+ text,
169
+ actorType: "agent",
170
+ hostSurface: "codex.cli",
171
+ idempotencyKey: flags.idempotencyKey ?? `cli:observation:${runId}:${planItemId}:${text}`,
172
+ recordedAt: flags.recordedAt ?? "2026-06-25T12:01:00.000Z"
173
+ });
174
+ return showcaseResultOutput("showcase.record-observation", result, contextResult, 0);
175
+ }
176
+ catch (error) {
177
+ return showcaseCaughtError("showcase.record-observation", error);
178
+ }
179
+ }
180
+ };
181
+ export const showcaseRecordVerdictCommand = {
182
+ path: ["showcase", "record-verdict"],
183
+ command: "showcase.record-verdict",
184
+ summary: "Append a verdict to a showcase run plan item.",
185
+ flags: [
186
+ ...workspaceFlags,
187
+ { key: "run", name: "--run", kind: "string", required: true, valueName: "<id>", summary: "Showcase run id." },
188
+ { key: "item", name: "--item", kind: "string", required: true, valueName: "<id>", summary: "Plan item id." },
189
+ { key: "verdict", name: "--verdict", kind: "string", required: true, valueName: "<verdict>", summary: "Verdict value." },
190
+ { key: "actor", name: "--actor", kind: "string", valueName: "<type>", summary: "Actor type (defaults to agent)." },
191
+ { key: "idempotencyKey", name: "--idempotency-key", kind: "string", valueName: "<key>", summary: "Idempotency key (defaults to a derived cli: key)." },
192
+ { key: "recordedAt", name: "--recorded-at", kind: "string", valueName: "<iso>", summary: "Recorded-at timestamp for the verdict event." }
193
+ ],
194
+ handler: ({ argv, flags }) => {
195
+ const context = resolveContextOrError(argv, "showcase.record-verdict");
196
+ if (context.kind === "error") {
197
+ return { envelope: context.envelope, exitCode: context.exitCode };
198
+ }
199
+ const contextResult = context.context;
200
+ const runId = flags.run;
201
+ const planItemId = flags.item;
202
+ const verdict = flags.verdict;
203
+ if (!runId || !planItemId || !verdict) {
204
+ return {
205
+ envelope: errorEnvelope("showcase.record-verdict", "cli_invalid_arguments", "Missing --run, --item, or --verdict."),
206
+ exitCode: 2
207
+ };
208
+ }
209
+ const invalidVerdictId = rejectUnsafeId("showcase.record-verdict", "--run", runId) ??
210
+ rejectUnsafeId("showcase.record-verdict", "--item", planItemId);
211
+ if (invalidVerdictId !== null) {
212
+ return invalidVerdictId;
213
+ }
214
+ const status = replayShowcaseRun({ context: contextResult, runId });
215
+ const item = status.items.find((candidate) => candidate.plan_item_id === planItemId);
216
+ if (!item?.latest_observation_event_id) {
217
+ return {
218
+ envelope: errorEnvelope("showcase.record-verdict", "showcase.verdict_requires_observation", "Verdict requires a prior observation."),
219
+ exitCode: 1
220
+ };
221
+ }
222
+ try {
223
+ const result = appendShowcaseVerdict({
224
+ context: contextResult,
225
+ runId,
226
+ planItemId,
227
+ verdict: verdict,
228
+ observationEventIds: [item.latest_observation_event_id],
229
+ actorType: (flags.actor ?? "agent"),
230
+ hostSurface: "codex.cli",
231
+ idempotencyKey: flags.idempotencyKey ?? `cli:verdict:${runId}:${planItemId}:${verdict}`,
232
+ recordedAt: flags.recordedAt ?? "2026-06-25T12:02:00.000Z"
233
+ });
234
+ return showcaseResultOutput("showcase.record-verdict", result, contextResult, 0);
235
+ }
236
+ catch (error) {
237
+ return showcaseCaughtError("showcase.record-verdict", error);
238
+ }
239
+ }
240
+ };
241
+ export const showcaseDecideCommand = {
242
+ path: ["showcase", "decide"],
243
+ command: "showcase.decide",
244
+ summary: "Record a failure decision against a showcase verdict event.",
245
+ flags: [
246
+ ...workspaceFlags,
247
+ { key: "run", name: "--run", kind: "string", required: true, valueName: "<id>", summary: "Showcase run id." },
248
+ { key: "verdictEvent", name: "--verdict-event", kind: "string", required: true, valueName: "<event-id>", summary: "Verdict event id the decision targets." },
249
+ { key: "decision", name: "--decision", kind: "string", required: true, valueName: "<decision>", summary: "Decision value." },
250
+ { key: "reason", name: "--reason", kind: "string", required: true, valueName: "<text>", summary: "Why the decision was made." },
251
+ { key: "actor", name: "--actor", kind: "string", valueName: "<type>", summary: "Actor type (defaults to agent)." },
252
+ { key: "idempotencyKey", name: "--idempotency-key", kind: "string", valueName: "<key>", summary: "Idempotency key (defaults to a derived cli: key)." },
253
+ { key: "recordedAt", name: "--recorded-at", kind: "string", valueName: "<iso>", summary: "Recorded-at timestamp for the decision event." }
254
+ ],
255
+ handler: ({ argv, flags }) => {
256
+ const context = resolveContextOrError(argv, "showcase.decide");
257
+ if (context.kind === "error") {
258
+ return { envelope: context.envelope, exitCode: context.exitCode };
259
+ }
260
+ const contextResult = context.context;
261
+ const runId = flags.run;
262
+ const verdictEventId = flags.verdictEvent;
263
+ const decision = flags.decision;
264
+ const reason = flags.reason;
265
+ if (!runId || !verdictEventId || !decision || !reason) {
266
+ return {
267
+ envelope: errorEnvelope("showcase.decide", "cli_invalid_arguments", "Missing --run, --verdict-event, --decision, or --reason."),
268
+ exitCode: 2
269
+ };
270
+ }
271
+ const invalidDecideId = rejectUnsafeId("showcase.decide", "--run", runId);
272
+ if (invalidDecideId !== null) {
273
+ return invalidDecideId;
274
+ }
275
+ try {
276
+ const result = appendShowcaseFailureDecision({
277
+ context: contextResult,
278
+ runId,
279
+ verdictEventId,
280
+ decision: decision,
281
+ reason,
282
+ actorType: (flags.actor ?? "agent"),
283
+ hostSurface: "codex.cli",
284
+ idempotencyKey: flags.idempotencyKey ?? `cli:decision:${runId}:${verdictEventId}:${decision}`,
285
+ recordedAt: flags.recordedAt ?? "2026-06-25T12:02:30.000Z"
286
+ });
287
+ return showcaseResultOutput("showcase.decide", result, contextResult, 0);
288
+ }
289
+ catch (error) {
290
+ return showcaseCaughtError("showcase.decide", error);
291
+ }
292
+ }
293
+ };
294
+ export const showcasePauseCommand = {
295
+ path: ["showcase", "pause"],
296
+ command: "showcase.pause",
297
+ summary: "Pause a showcase run.",
298
+ flags: [
299
+ ...workspaceFlags,
300
+ { key: "run", name: "--run", kind: "string", required: true, valueName: "<id>", summary: "Showcase run id." },
301
+ { key: "reason", name: "--reason", kind: "string", valueName: "<text>", summary: "Pause reason (defaults to 'Paused by operator.')." },
302
+ { key: "actor", name: "--actor", kind: "string", valueName: "<type>", summary: "Actor type (defaults to agent)." },
303
+ { key: "idempotencyKey", name: "--idempotency-key", kind: "string", valueName: "<key>", summary: "Idempotency key (defaults to a derived cli: key)." },
304
+ { key: "recordedAt", name: "--recorded-at", kind: "string", valueName: "<iso>", summary: "Recorded-at timestamp for the pause event." }
305
+ ],
306
+ handler: ({ argv, flags }) => {
307
+ const context = resolveContextOrError(argv, "showcase.pause");
308
+ if (context.kind === "error") {
309
+ return { envelope: context.envelope, exitCode: context.exitCode };
310
+ }
311
+ const contextResult = context.context;
312
+ const runId = flags.run;
313
+ const reason = flags.reason ?? "Paused by operator.";
314
+ if (!runId) {
315
+ return {
316
+ envelope: errorEnvelope("showcase.pause", "cli_invalid_arguments", "Missing --run."),
317
+ exitCode: 2
318
+ };
319
+ }
320
+ const invalidPauseId = rejectUnsafeId("showcase.pause", "--run", runId);
321
+ if (invalidPauseId !== null) {
322
+ return invalidPauseId;
323
+ }
324
+ try {
325
+ const result = pauseShowcaseRun({
326
+ context: contextResult,
327
+ runId,
328
+ reason,
329
+ actorType: (flags.actor ?? "agent"),
330
+ hostSurface: "codex.cli",
331
+ idempotencyKey: flags.idempotencyKey ?? `cli:pause:${runId}:${reason}`,
332
+ recordedAt: flags.recordedAt ?? "2026-06-25T12:02:45.000Z"
333
+ });
334
+ return showcaseResultOutput("showcase.pause", result, contextResult, 0);
335
+ }
336
+ catch (error) {
337
+ return showcaseCaughtError("showcase.pause", error);
338
+ }
339
+ }
340
+ };
341
+ export const showcaseResumeCommand = {
342
+ path: ["showcase", "resume"],
343
+ command: "showcase.resume",
344
+ summary: "Resume a paused showcase run.",
345
+ flags: [
346
+ ...workspaceFlags,
347
+ { key: "run", name: "--run", kind: "string", required: true, valueName: "<id>", summary: "Showcase run id." },
348
+ { key: "reason", name: "--reason", kind: "string", valueName: "<text>", summary: "Resume reason (defaults to 'Resumed by operator.')." },
349
+ { key: "actor", name: "--actor", kind: "string", valueName: "<type>", summary: "Actor type (defaults to agent)." },
350
+ { key: "idempotencyKey", name: "--idempotency-key", kind: "string", valueName: "<key>", summary: "Idempotency key (defaults to a derived cli: key)." },
351
+ { key: "recordedAt", name: "--recorded-at", kind: "string", valueName: "<iso>", summary: "Recorded-at timestamp for the resume event." }
352
+ ],
353
+ handler: ({ argv, flags }) => {
354
+ const context = resolveContextOrError(argv, "showcase.resume");
355
+ if (context.kind === "error") {
356
+ return { envelope: context.envelope, exitCode: context.exitCode };
357
+ }
358
+ const contextResult = context.context;
359
+ const runId = flags.run;
360
+ const reason = flags.reason ?? "Resumed by operator.";
361
+ if (!runId) {
362
+ return {
363
+ envelope: errorEnvelope("showcase.resume", "cli_invalid_arguments", "Missing --run."),
364
+ exitCode: 2
365
+ };
366
+ }
367
+ const invalidResumeId = rejectUnsafeId("showcase.resume", "--run", runId);
368
+ if (invalidResumeId !== null) {
369
+ return invalidResumeId;
370
+ }
371
+ try {
372
+ const result = resumeShowcaseRun({
373
+ context: contextResult,
374
+ runId,
375
+ reason,
376
+ actorType: (flags.actor ?? "agent"),
377
+ hostSurface: "codex.cli",
378
+ idempotencyKey: flags.idempotencyKey ?? `cli:resume:${runId}:${reason}`,
379
+ recordedAt: flags.recordedAt ?? "2026-06-25T12:02:50.000Z"
380
+ });
381
+ return showcaseResultOutput("showcase.resume", result, contextResult, 0);
382
+ }
383
+ catch (error) {
384
+ return showcaseCaughtError("showcase.resume", error);
385
+ }
386
+ }
387
+ };
388
+ export const showcaseFinishCommand = {
389
+ path: ["showcase", "finish"],
390
+ command: "showcase.finish",
391
+ summary: "Finish a showcase run.",
392
+ flags: [
393
+ ...workspaceFlags,
394
+ { key: "run", name: "--run", kind: "string", required: true, valueName: "<id>", summary: "Showcase run id." },
395
+ { key: "idempotencyKey", name: "--idempotency-key", kind: "string", valueName: "<key>", summary: "Idempotency key (defaults to a derived cli: key)." },
396
+ { key: "recordedAt", name: "--recorded-at", kind: "string", valueName: "<iso>", summary: "Recorded-at timestamp for the finish event." }
397
+ ],
398
+ handler: ({ argv, flags }) => {
399
+ const context = resolveContextOrError(argv, "showcase.finish");
400
+ if (context.kind === "error") {
401
+ return { envelope: context.envelope, exitCode: context.exitCode };
402
+ }
403
+ const contextResult = context.context;
404
+ const runId = flags.run;
405
+ if (!runId) {
406
+ return {
407
+ envelope: errorEnvelope("showcase.finish", "cli_invalid_arguments", "Missing --run."),
408
+ exitCode: 2
409
+ };
410
+ }
411
+ const invalidFinishId = rejectUnsafeId("showcase.finish", "--run", runId);
412
+ if (invalidFinishId !== null) {
413
+ return invalidFinishId;
414
+ }
415
+ try {
416
+ const result = finishShowcaseRun({
417
+ context: contextResult,
418
+ runId,
419
+ actorType: "agent",
420
+ hostSurface: "codex.cli",
421
+ idempotencyKey: flags.idempotencyKey ?? `cli:finish:${runId}`,
422
+ recordedAt: flags.recordedAt ?? "2026-06-25T12:03:00.000Z"
423
+ });
424
+ return showcaseResultOutput("showcase.finish", result, contextResult, result.status.run_outcome === "passed" ? 0 : 1);
425
+ }
426
+ catch (error) {
427
+ return showcaseCaughtError("showcase.finish", error);
428
+ }
429
+ }
430
+ };
431
+ export const showcaseStatusCommand = {
432
+ path: ["showcase", "status"],
433
+ command: "showcase.status",
434
+ summary: "Replay and report a showcase run's status.",
435
+ flags: [
436
+ ...workspaceFlags,
437
+ { key: "run", name: "--run", kind: "string", required: true, valueName: "<id>", summary: "Showcase run id." }
438
+ ],
439
+ handler: ({ argv, flags }) => {
440
+ const context = resolveContextOrError(argv, "showcase.status");
441
+ if (context.kind === "error") {
442
+ return { envelope: context.envelope, exitCode: context.exitCode };
443
+ }
444
+ const contextResult = context.context;
445
+ const runId = flags.run;
446
+ if (!runId) {
447
+ return {
448
+ envelope: errorEnvelope("showcase.status", "cli_invalid_arguments", "Missing --run."),
449
+ exitCode: 2
450
+ };
451
+ }
452
+ const invalidStatusId = rejectUnsafeId("showcase.status", "--run", runId);
453
+ if (invalidStatusId !== null) {
454
+ return invalidStatusId;
455
+ }
456
+ const status = replayShowcaseRun({ context: contextResult, runId });
457
+ return {
458
+ envelope: createCliResult("showcase.status", status, {
459
+ ok: true,
460
+ complete: status.complete,
461
+ workspaceRoot: contextResult.workspace_root,
462
+ dataRoot: contextResult.data_root,
463
+ componentId: contextResult.component_id
464
+ }),
465
+ exitCode: 0
466
+ };
467
+ }
468
+ };
469
+ export const showcaseApproveCommand = {
470
+ path: ["showcase", "approve"],
471
+ command: "showcase.approve",
472
+ summary: "Record an approval for a showcase run.",
473
+ flags: [
474
+ ...workspaceFlags,
475
+ { key: "run", name: "--run", kind: "string", required: true, valueName: "<id>", summary: "Showcase run id." },
476
+ { key: "statement", name: "--statement", kind: "string", required: true, valueName: "<text>", summary: "Approval statement." },
477
+ { key: "actor", name: "--actor", kind: "string", valueName: "<type>", summary: "Actor type (defaults to agent)." },
478
+ { key: "idempotencyKey", name: "--idempotency-key", kind: "string", valueName: "<key>", summary: "Idempotency key (defaults to a derived cli: key)." },
479
+ { key: "recordedAt", name: "--recorded-at", kind: "string", valueName: "<iso>", summary: "Recorded-at timestamp for the approval event." }
480
+ ],
481
+ handler: ({ argv, flags }) => {
482
+ const context = resolveContextOrError(argv, "showcase.approve");
483
+ if (context.kind === "error") {
484
+ return { envelope: context.envelope, exitCode: context.exitCode };
485
+ }
486
+ const contextResult = context.context;
487
+ const runId = flags.run;
488
+ const statement = flags.statement;
489
+ if (!runId || !statement) {
490
+ return {
491
+ envelope: errorEnvelope("showcase.approve", "cli_invalid_arguments", "Missing --run or --statement."),
492
+ exitCode: 2
493
+ };
494
+ }
495
+ const invalidApproveId = rejectUnsafeId("showcase.approve", "--run", runId);
496
+ if (invalidApproveId !== null) {
497
+ return invalidApproveId;
498
+ }
499
+ try {
500
+ const result = appendShowcaseApproval({
501
+ context: contextResult,
502
+ runId,
503
+ decision: "approved",
504
+ actorType: (flags.actor ?? "agent"),
505
+ hostSurface: "codex.cli",
506
+ statement,
507
+ idempotencyKey: flags.idempotencyKey ?? `cli:approve:${runId}:${statement}`,
508
+ recordedAt: flags.recordedAt ?? "2026-06-25T12:04:00.000Z",
509
+ // SECURITY: the approval authority is HARDCODED to untrusted_automation —
510
+ // an agent driving the CLI cannot mint trusted user sign-off. Ported
511
+ // verbatim from the legacy runShowcaseApprove; do not parameterise.
512
+ authority: { kind: "untrusted_automation" }
513
+ });
514
+ return showcaseResultOutput("showcase.approve", result, contextResult, 0);
515
+ }
516
+ catch (error) {
517
+ return showcaseCaughtError("showcase.approve", error);
518
+ }
519
+ }
520
+ };
521
+ export const showcaseRejectCommand = {
522
+ path: ["showcase", "reject"],
523
+ command: "showcase.reject",
524
+ summary: "Record a rejection for a showcase run.",
525
+ flags: [
526
+ ...workspaceFlags,
527
+ { key: "run", name: "--run", kind: "string", required: true, valueName: "<id>", summary: "Showcase run id." },
528
+ { key: "statement", name: "--statement", kind: "string", required: true, valueName: "<text>", summary: "Rejection statement." },
529
+ { key: "actor", name: "--actor", kind: "string", valueName: "<type>", summary: "Actor type (defaults to user)." },
530
+ { key: "idempotencyKey", name: "--idempotency-key", kind: "string", valueName: "<key>", summary: "Idempotency key (defaults to a derived cli: key)." },
531
+ { key: "recordedAt", name: "--recorded-at", kind: "string", valueName: "<iso>", summary: "Recorded-at timestamp for the rejection event." }
532
+ ],
533
+ handler: ({ argv, flags }) => {
534
+ const context = resolveContextOrError(argv, "showcase.reject");
535
+ if (context.kind === "error") {
536
+ return { envelope: context.envelope, exitCode: context.exitCode };
537
+ }
538
+ const contextResult = context.context;
539
+ const runId = flags.run;
540
+ const statement = flags.statement;
541
+ if (!runId || !statement) {
542
+ return {
543
+ envelope: errorEnvelope("showcase.reject", "cli_invalid_arguments", "Missing --run or --statement."),
544
+ exitCode: 2
545
+ };
546
+ }
547
+ const invalidRejectId = rejectUnsafeId("showcase.reject", "--run", runId);
548
+ if (invalidRejectId !== null) {
549
+ return invalidRejectId;
550
+ }
551
+ try {
552
+ const result = rejectShowcaseApproval({
553
+ context: contextResult,
554
+ runId,
555
+ actorType: (flags.actor ?? "user"),
556
+ hostSurface: "codex.cli",
557
+ statement,
558
+ idempotencyKey: flags.idempotencyKey ?? `cli:reject:${runId}:${statement}`,
559
+ recordedAt: flags.recordedAt ?? "2026-06-25T12:04:30.000Z",
560
+ // SECURITY: the rejection authority is HARDCODED to untrusted_automation —
561
+ // an agent driving the CLI cannot mint trusted user sign-off. Ported
562
+ // verbatim from the legacy runShowcaseReject; do not parameterise.
563
+ authority: { kind: "untrusted_automation" }
564
+ });
565
+ return showcaseResultOutput("showcase.reject", result, contextResult, 1);
566
+ }
567
+ catch (error) {
568
+ return showcaseCaughtError("showcase.reject", error);
569
+ }
570
+ }
571
+ };
572
+ export const showcaseCorrectCommand = {
573
+ path: ["showcase", "correct"],
574
+ command: "showcase.correct",
575
+ summary: "Correct a previously recorded showcase verdict.",
576
+ flags: [
577
+ ...workspaceFlags,
578
+ { key: "run", name: "--run", kind: "string", required: true, valueName: "<id>", summary: "Showcase run id." },
579
+ { key: "targetEvent", name: "--target-event", kind: "string", required: true, valueName: "<event-id>", summary: "Verdict event id to correct." },
580
+ { key: "verdict", name: "--verdict", kind: "string", required: true, valueName: "<verdict>", summary: "Corrected verdict value." },
581
+ { key: "reason", name: "--reason", kind: "string", required: true, valueName: "<text>", summary: "Why the verdict is being corrected." },
582
+ { key: "actor", name: "--actor", kind: "string", valueName: "<type>", summary: "Actor type (defaults to agent)." },
583
+ { key: "idempotencyKey", name: "--idempotency-key", kind: "string", valueName: "<key>", summary: "Idempotency key (defaults to a derived cli: key)." },
584
+ { key: "recordedAt", name: "--recorded-at", kind: "string", valueName: "<iso>", summary: "Recorded-at timestamp for the correction event." }
585
+ ],
586
+ handler: ({ argv, flags }) => {
587
+ const context = resolveContextOrError(argv, "showcase.correct");
588
+ if (context.kind === "error") {
589
+ return { envelope: context.envelope, exitCode: context.exitCode };
590
+ }
591
+ const contextResult = context.context;
592
+ const runId = flags.run;
593
+ const targetEventId = flags.targetEvent;
594
+ const correctedVerdict = flags.verdict;
595
+ const reason = flags.reason;
596
+ if (!runId || !targetEventId || !correctedVerdict || !reason) {
597
+ return {
598
+ envelope: errorEnvelope("showcase.correct", "cli_invalid_arguments", "Missing --run, --target-event, --verdict, or --reason."),
599
+ exitCode: 2
600
+ };
601
+ }
602
+ const invalidCorrectId = rejectUnsafeId("showcase.correct", "--run", runId);
603
+ if (invalidCorrectId !== null) {
604
+ return invalidCorrectId;
605
+ }
606
+ try {
607
+ const result = correctShowcaseVerdict({
608
+ context: contextResult,
609
+ runId,
610
+ targetEventId,
611
+ correctedVerdict: correctedVerdict,
612
+ reason,
613
+ actorType: (flags.actor ?? "agent"),
614
+ hostSurface: "codex.cli",
615
+ idempotencyKey: flags.idempotencyKey ?? `cli:correct:${runId}:${targetEventId}:${correctedVerdict}`,
616
+ recordedAt: flags.recordedAt ?? "2026-06-25T12:04:45.000Z"
617
+ });
618
+ return showcaseResultOutput("showcase.correct", result, contextResult, 0);
619
+ }
620
+ catch (error) {
621
+ return showcaseCaughtError("showcase.correct", error);
622
+ }
623
+ }
624
+ };
625
+ export const showcaseCommands = [
626
+ showcaseStartCommand,
627
+ showcaseRecordObservationCommand,
628
+ showcaseRecordVerdictCommand,
629
+ showcaseDecideCommand,
630
+ showcasePauseCommand,
631
+ showcaseResumeCommand,
632
+ showcaseFinishCommand,
633
+ showcaseStatusCommand,
634
+ showcaseApproveCommand,
635
+ showcaseRejectCommand,
636
+ showcaseCorrectCommand
637
+ ];
638
+ //# sourceMappingURL=showcase.js.map