clinkx 0.3.0 → 1.0.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 (555) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/LICENSE +10 -0
  3. package/README.md +82 -26
  4. package/clinkx-workflows/dist/allowed-roots.d.ts +1 -0
  5. package/clinkx-workflows/dist/allowed-roots.js +5 -0
  6. package/clinkx-workflows/dist/allowed-roots.js.map +1 -0
  7. package/clinkx-workflows/dist/artifacts.d.ts +20 -1
  8. package/clinkx-workflows/dist/artifacts.js +38 -9
  9. package/clinkx-workflows/dist/artifacts.js.map +1 -1
  10. package/clinkx-workflows/dist/backend.d.ts +4 -0
  11. package/clinkx-workflows/dist/citation-check.d.ts +40 -0
  12. package/clinkx-workflows/dist/citation-check.js +348 -0
  13. package/clinkx-workflows/dist/citation-check.js.map +1 -0
  14. package/clinkx-workflows/dist/clink-client.d.ts +2 -1
  15. package/clinkx-workflows/dist/clink-client.js +17 -4
  16. package/clinkx-workflows/dist/clink-client.js.map +1 -1
  17. package/clinkx-workflows/dist/config.d.ts +145 -16
  18. package/clinkx-workflows/dist/config.js +384 -26
  19. package/clinkx-workflows/dist/config.js.map +1 -1
  20. package/clinkx-workflows/dist/contained-file.d.ts +172 -0
  21. package/clinkx-workflows/dist/contained-file.js +483 -0
  22. package/clinkx-workflows/dist/contained-file.js.map +1 -0
  23. package/clinkx-workflows/dist/context-builder-lifecycle-contract.d.ts +416 -0
  24. package/clinkx-workflows/dist/context-builder-lifecycle-contract.js +328 -0
  25. package/clinkx-workflows/dist/context-builder-lifecycle-contract.js.map +1 -0
  26. package/clinkx-workflows/dist/context-builder-lifecycle-router.d.ts +24 -0
  27. package/clinkx-workflows/dist/context-builder-lifecycle-router.js +39 -0
  28. package/clinkx-workflows/dist/context-builder-lifecycle-router.js.map +1 -0
  29. package/clinkx-workflows/dist/context-cache-key.d.ts +53 -0
  30. package/clinkx-workflows/dist/context-cache-key.js +91 -0
  31. package/clinkx-workflows/dist/context-cache-key.js.map +1 -0
  32. package/clinkx-workflows/dist/context-mode-resolver.d.ts +27 -0
  33. package/clinkx-workflows/dist/context-mode-resolver.js +126 -0
  34. package/clinkx-workflows/dist/context-mode-resolver.js.map +1 -0
  35. package/clinkx-workflows/dist/context-preflight.d.ts +184 -0
  36. package/clinkx-workflows/dist/context-preflight.js +91 -0
  37. package/clinkx-workflows/dist/context-preflight.js.map +1 -0
  38. package/clinkx-workflows/dist/council-expander.d.ts +1 -1
  39. package/clinkx-workflows/dist/council-expander.js +2 -1
  40. package/clinkx-workflows/dist/council-expander.js.map +1 -1
  41. package/clinkx-workflows/dist/dashboard/activity-contract.d.ts +165 -0
  42. package/clinkx-workflows/dist/dashboard/activity-contract.js +105 -0
  43. package/clinkx-workflows/dist/dashboard/activity-contract.js.map +1 -0
  44. package/clinkx-workflows/dist/dashboard/activity-lease.d.ts +25 -0
  45. package/clinkx-workflows/dist/dashboard/activity-lease.js +34 -0
  46. package/clinkx-workflows/dist/dashboard/activity-lease.js.map +1 -0
  47. package/clinkx-workflows/dist/dashboard/activity-reader.d.ts +86 -0
  48. package/clinkx-workflows/dist/dashboard/activity-reader.js +480 -0
  49. package/clinkx-workflows/dist/dashboard/activity-reader.js.map +1 -0
  50. package/clinkx-workflows/dist/dashboard/api-routes.d.ts +36 -0
  51. package/clinkx-workflows/dist/dashboard/api-routes.js +1047 -0
  52. package/clinkx-workflows/dist/dashboard/api-routes.js.map +1 -0
  53. package/clinkx-workflows/dist/dashboard/artifact-index.d.ts +37 -0
  54. package/clinkx-workflows/dist/dashboard/artifact-index.js +145 -0
  55. package/clinkx-workflows/dist/dashboard/artifact-index.js.map +1 -0
  56. package/clinkx-workflows/dist/dashboard/auth/challenge-store.d.ts +31 -0
  57. package/clinkx-workflows/dist/dashboard/auth/challenge-store.js +65 -0
  58. package/clinkx-workflows/dist/dashboard/auth/challenge-store.js.map +1 -0
  59. package/clinkx-workflows/dist/dashboard/auth/controller.d.ts +26 -0
  60. package/clinkx-workflows/dist/dashboard/auth/controller.js +596 -0
  61. package/clinkx-workflows/dist/dashboard/auth/controller.js.map +1 -0
  62. package/clinkx-workflows/dist/dashboard/auth/credential-store.d.ts +60 -0
  63. package/clinkx-workflows/dist/dashboard/auth/credential-store.js +776 -0
  64. package/clinkx-workflows/dist/dashboard/auth/credential-store.js.map +1 -0
  65. package/clinkx-workflows/dist/dashboard/auth/enrollment-gate.d.ts +9 -0
  66. package/clinkx-workflows/dist/dashboard/auth/enrollment-gate.js +44 -0
  67. package/clinkx-workflows/dist/dashboard/auth/enrollment-gate.js.map +1 -0
  68. package/clinkx-workflows/dist/dashboard/auth/session-store.d.ts +17 -0
  69. package/clinkx-workflows/dist/dashboard/auth/session-store.js +77 -0
  70. package/clinkx-workflows/dist/dashboard/auth/session-store.js.map +1 -0
  71. package/clinkx-workflows/dist/dashboard/auth/webauthn-service.d.ts +25 -0
  72. package/clinkx-workflows/dist/dashboard/auth/webauthn-service.js +71 -0
  73. package/clinkx-workflows/dist/dashboard/auth/webauthn-service.js.map +1 -0
  74. package/clinkx-workflows/dist/dashboard/context-run-liveness.d.ts +37 -0
  75. package/clinkx-workflows/dist/dashboard/context-run-liveness.js +49 -0
  76. package/clinkx-workflows/dist/dashboard/context-run-liveness.js.map +1 -0
  77. package/clinkx-workflows/dist/dashboard/context-run-reader.d.ts +222 -0
  78. package/clinkx-workflows/dist/dashboard/context-run-reader.js +1178 -0
  79. package/clinkx-workflows/dist/dashboard/context-run-reader.js.map +1 -0
  80. package/clinkx-workflows/dist/dashboard/contracts.d.ts +8936 -0
  81. package/clinkx-workflows/dist/dashboard/contracts.js +1157 -0
  82. package/clinkx-workflows/dist/dashboard/contracts.js.map +1 -0
  83. package/clinkx-workflows/dist/dashboard/generation.d.ts +14 -0
  84. package/clinkx-workflows/dist/dashboard/generation.js +41 -0
  85. package/clinkx-workflows/dist/dashboard/generation.js.map +1 -0
  86. package/clinkx-workflows/dist/dashboard/index.d.ts +28 -0
  87. package/clinkx-workflows/dist/dashboard/index.js +16 -0
  88. package/clinkx-workflows/dist/dashboard/index.js.map +1 -0
  89. package/clinkx-workflows/dist/dashboard/lazy-content.d.ts +101 -0
  90. package/clinkx-workflows/dist/dashboard/lazy-content.js +748 -0
  91. package/clinkx-workflows/dist/dashboard/lazy-content.js.map +1 -0
  92. package/clinkx-workflows/dist/dashboard/progress-report-contract.d.ts +303 -0
  93. package/clinkx-workflows/dist/dashboard/progress-report-contract.js +221 -0
  94. package/clinkx-workflows/dist/dashboard/progress-report-contract.js.map +1 -0
  95. package/clinkx-workflows/dist/dashboard/progress-report-reader.d.ts +50 -0
  96. package/clinkx-workflows/dist/dashboard/progress-report-reader.js +581 -0
  97. package/clinkx-workflows/dist/dashboard/progress-report-reader.js.map +1 -0
  98. package/clinkx-workflows/dist/dashboard/progress-report-status-overlay.d.ts +89 -0
  99. package/clinkx-workflows/dist/dashboard/progress-report-status-overlay.js +71 -0
  100. package/clinkx-workflows/dist/dashboard/progress-report-status-overlay.js.map +1 -0
  101. package/clinkx-workflows/dist/dashboard/progress-report-status-store.d.ts +28 -0
  102. package/clinkx-workflows/dist/dashboard/progress-report-status-store.js +110 -0
  103. package/clinkx-workflows/dist/dashboard/progress-report-status-store.js.map +1 -0
  104. package/clinkx-workflows/dist/dashboard/read-model.d.ts +86 -0
  105. package/clinkx-workflows/dist/dashboard/read-model.js +440 -0
  106. package/clinkx-workflows/dist/dashboard/read-model.js.map +1 -0
  107. package/clinkx-workflows/dist/dashboard/request-admission.d.ts +31 -0
  108. package/clinkx-workflows/dist/dashboard/request-admission.js +126 -0
  109. package/clinkx-workflows/dist/dashboard/request-admission.js.map +1 -0
  110. package/clinkx-workflows/dist/dashboard/scanner.d.ts +75 -0
  111. package/clinkx-workflows/dist/dashboard/scanner.js +1110 -0
  112. package/clinkx-workflows/dist/dashboard/scanner.js.map +1 -0
  113. package/clinkx-workflows/dist/dashboard/server-factory.d.ts +50 -0
  114. package/clinkx-workflows/dist/dashboard/server-factory.js +431 -0
  115. package/clinkx-workflows/dist/dashboard/server-factory.js.map +1 -0
  116. package/clinkx-workflows/dist/dashboard/session-log-contract.d.ts +2611 -0
  117. package/clinkx-workflows/dist/dashboard/session-log-contract.js +480 -0
  118. package/clinkx-workflows/dist/dashboard/session-log-contract.js.map +1 -0
  119. package/clinkx-workflows/dist/dashboard/session-log-identity.d.ts +21 -0
  120. package/clinkx-workflows/dist/dashboard/session-log-identity.js +101 -0
  121. package/clinkx-workflows/dist/dashboard/session-log-identity.js.map +1 -0
  122. package/clinkx-workflows/dist/dashboard/session-log-journal.d.ts +43 -0
  123. package/clinkx-workflows/dist/dashboard/session-log-journal.js +522 -0
  124. package/clinkx-workflows/dist/dashboard/session-log-journal.js.map +1 -0
  125. package/clinkx-workflows/dist/dashboard/session-log-reader.d.ts +61 -0
  126. package/clinkx-workflows/dist/dashboard/session-log-reader.js +378 -0
  127. package/clinkx-workflows/dist/dashboard/session-log-reader.js.map +1 -0
  128. package/clinkx-workflows/dist/dashboard/session-log-redaction.d.ts +6 -0
  129. package/clinkx-workflows/dist/dashboard/session-log-redaction.js +367 -0
  130. package/clinkx-workflows/dist/dashboard/session-log-redaction.js.map +1 -0
  131. package/clinkx-workflows/dist/dashboard/session-log-retention.d.ts +23 -0
  132. package/clinkx-workflows/dist/dashboard/session-log-retention.js +212 -0
  133. package/clinkx-workflows/dist/dashboard/session-log-retention.js.map +1 -0
  134. package/clinkx-workflows/dist/dashboard/static-responses.d.ts +10 -0
  135. package/clinkx-workflows/dist/dashboard/static-responses.js +94 -0
  136. package/clinkx-workflows/dist/dashboard/static-responses.js.map +1 -0
  137. package/clinkx-workflows/dist/dashboard/worker-lock-observer.d.ts +28 -0
  138. package/clinkx-workflows/dist/dashboard/worker-lock-observer.js +241 -0
  139. package/clinkx-workflows/dist/dashboard/worker-lock-observer.js.map +1 -0
  140. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
  141. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
  142. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
  143. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
  144. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2 +0 -0
  145. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff +0 -0
  146. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2 +0 -0
  147. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff +0 -0
  148. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff +0 -0
  149. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2 +0 -0
  150. package/clinkx-workflows/dist/dashboard-ui/assets/index-DOkMXTfB.js +25 -0
  151. package/clinkx-workflows/dist/dashboard-ui/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  152. package/clinkx-workflows/dist/dashboard-ui/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  153. package/clinkx-workflows/dist/dashboard-ui/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
  154. package/clinkx-workflows/dist/dashboard-ui/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
  155. package/clinkx-workflows/dist/dashboard-ui/assets/style-ChJsn0KD.css +1 -0
  156. package/clinkx-workflows/dist/dashboard-ui/contracts/council-plan-review-input-v1.json +158 -0
  157. package/clinkx-workflows/dist/dashboard-ui/index.html +15 -0
  158. package/clinkx-workflows/dist/dashboard-ui/licenses/IBM-Plex-Mono-OFL.txt +93 -0
  159. package/clinkx-workflows/dist/dashboard-ui/licenses/IBM-Plex-Sans-OFL.txt +93 -0
  160. package/clinkx-workflows/dist/dashboard-ui/licenses/JetBrains-Mono-OFL.txt +93 -0
  161. package/clinkx-workflows/dist/dashboard-ui/licenses/NOTICE.md +32 -0
  162. package/clinkx-workflows/dist/dashboard-ui/theme-init.js +8 -0
  163. package/clinkx-workflows/dist/definition-normalizer.d.ts +19 -0
  164. package/clinkx-workflows/dist/definition-normalizer.js.map +1 -1
  165. package/clinkx-workflows/dist/delegate-validate.d.ts +78 -0
  166. package/clinkx-workflows/dist/delegate-validate.js +97 -0
  167. package/clinkx-workflows/dist/delegate-validate.js.map +1 -0
  168. package/clinkx-workflows/dist/engine.d.ts +141 -0
  169. package/clinkx-workflows/dist/engine.js +882 -28
  170. package/clinkx-workflows/dist/engine.js.map +1 -1
  171. package/clinkx-workflows/dist/errors.d.ts +2 -0
  172. package/clinkx-workflows/dist/errors.js.map +1 -1
  173. package/clinkx-workflows/dist/fingerprint.d.ts +1 -1
  174. package/clinkx-workflows/dist/fingerprint.js +1 -1
  175. package/clinkx-workflows/dist/index.d.ts +19 -0
  176. package/clinkx-workflows/dist/index.js +15 -0
  177. package/clinkx-workflows/dist/index.js.map +1 -1
  178. package/clinkx-workflows/dist/loader.d.ts +9 -3
  179. package/clinkx-workflows/dist/loader.js +92 -21
  180. package/clinkx-workflows/dist/loader.js.map +1 -1
  181. package/clinkx-workflows/dist/plan-review/admission.d.ts +160 -0
  182. package/clinkx-workflows/dist/plan-review/admission.js +290 -0
  183. package/clinkx-workflows/dist/plan-review/admission.js.map +1 -0
  184. package/clinkx-workflows/dist/plan-review/context-policy.d.ts +55 -0
  185. package/clinkx-workflows/dist/plan-review/context-policy.js +146 -0
  186. package/clinkx-workflows/dist/plan-review/context-policy.js.map +1 -0
  187. package/clinkx-workflows/dist/plan-review/contract.d.ts +763 -0
  188. package/clinkx-workflows/dist/plan-review/contract.js +289 -0
  189. package/clinkx-workflows/dist/plan-review/contract.js.map +1 -0
  190. package/clinkx-workflows/dist/plan-review/digest.d.ts +68 -0
  191. package/clinkx-workflows/dist/plan-review/digest.js +241 -0
  192. package/clinkx-workflows/dist/plan-review/digest.js.map +1 -0
  193. package/clinkx-workflows/dist/plan-review/discovery.d.ts +45 -0
  194. package/clinkx-workflows/dist/plan-review/discovery.js +36 -0
  195. package/clinkx-workflows/dist/plan-review/discovery.js.map +1 -0
  196. package/clinkx-workflows/dist/plan-review/execution-contract.d.ts +298 -0
  197. package/clinkx-workflows/dist/plan-review/execution-contract.js +194 -0
  198. package/clinkx-workflows/dist/plan-review/execution-contract.js.map +1 -0
  199. package/clinkx-workflows/dist/plan-review/expander.d.ts +48 -0
  200. package/clinkx-workflows/dist/plan-review/expander.js +243 -0
  201. package/clinkx-workflows/dist/plan-review/expander.js.map +1 -0
  202. package/clinkx-workflows/dist/plan-review/projector.d.ts +126 -0
  203. package/clinkx-workflows/dist/plan-review/projector.js +437 -0
  204. package/clinkx-workflows/dist/plan-review/projector.js.map +1 -0
  205. package/clinkx-workflows/dist/plan-review/publication.d.ts +95 -0
  206. package/clinkx-workflows/dist/plan-review/publication.js +182 -0
  207. package/clinkx-workflows/dist/plan-review/publication.js.map +1 -0
  208. package/clinkx-workflows/dist/plan-review/ranking-reducer.d.ts +34 -0
  209. package/clinkx-workflows/dist/plan-review/ranking-reducer.js +139 -0
  210. package/clinkx-workflows/dist/plan-review/ranking-reducer.js.map +1 -0
  211. package/clinkx-workflows/dist/plan-review/resume.d.ts +38 -0
  212. package/clinkx-workflows/dist/plan-review/resume.js +122 -0
  213. package/clinkx-workflows/dist/plan-review/resume.js.map +1 -0
  214. package/clinkx-workflows/dist/plan-review/rubric.d.ts +7 -0
  215. package/clinkx-workflows/dist/plan-review/rubric.js +24 -0
  216. package/clinkx-workflows/dist/plan-review/rubric.js.map +1 -0
  217. package/clinkx-workflows/dist/plan-review/run-state.d.ts +398 -0
  218. package/clinkx-workflows/dist/plan-review/run-state.js +183 -0
  219. package/clinkx-workflows/dist/plan-review/run-state.js.map +1 -0
  220. package/clinkx-workflows/dist/plan-review/runtime-policy.d.ts +74 -0
  221. package/clinkx-workflows/dist/plan-review/runtime-policy.js +186 -0
  222. package/clinkx-workflows/dist/plan-review/runtime-policy.js.map +1 -0
  223. package/clinkx-workflows/dist/plan-review/snapshot.d.ts +81 -0
  224. package/clinkx-workflows/dist/plan-review/snapshot.js +170 -0
  225. package/clinkx-workflows/dist/plan-review/snapshot.js.map +1 -0
  226. package/clinkx-workflows/dist/plan-review/stage-error.d.ts +19 -0
  227. package/clinkx-workflows/dist/plan-review/stage-error.js +20 -0
  228. package/clinkx-workflows/dist/plan-review/stage-error.js.map +1 -0
  229. package/clinkx-workflows/dist/post-processors/index.d.ts +20 -0
  230. package/clinkx-workflows/dist/post-processors/index.js +21 -0
  231. package/clinkx-workflows/dist/post-processors/index.js.map +1 -0
  232. package/clinkx-workflows/dist/prompt-budget.d.ts +7 -0
  233. package/clinkx-workflows/dist/prompt-budget.js +7 -1
  234. package/clinkx-workflows/dist/prompt-budget.js.map +1 -1
  235. package/clinkx-workflows/dist/reducers/index.js +2 -0
  236. package/clinkx-workflows/dist/reducers/index.js.map +1 -1
  237. package/clinkx-workflows/dist/run-lock-heartbeat.d.ts +2 -0
  238. package/clinkx-workflows/dist/run-lock-heartbeat.js +3 -0
  239. package/clinkx-workflows/dist/run-lock-heartbeat.js.map +1 -0
  240. package/clinkx-workflows/dist/run-summary/cards/council-plan-review.d.ts +34 -0
  241. package/clinkx-workflows/dist/run-summary/cards/council-plan-review.js +74 -0
  242. package/clinkx-workflows/dist/run-summary/cards/council-plan-review.js.map +1 -0
  243. package/clinkx-workflows/dist/run-summary/cards/index.js +5 -0
  244. package/clinkx-workflows/dist/run-summary/cards/index.js.map +1 -1
  245. package/clinkx-workflows/dist/run-summary.d.ts +13 -0
  246. package/clinkx-workflows/dist/run-summary.js +29 -1
  247. package/clinkx-workflows/dist/run-summary.js.map +1 -1
  248. package/clinkx-workflows/dist/schema.d.ts +76 -21
  249. package/clinkx-workflows/dist/schema.js +10 -1
  250. package/clinkx-workflows/dist/schema.js.map +1 -1
  251. package/clinkx-workflows/dist/seed-terms.d.ts +30 -0
  252. package/clinkx-workflows/dist/seed-terms.js +176 -0
  253. package/clinkx-workflows/dist/seed-terms.js.map +1 -0
  254. package/clinkx-workflows/dist/server.d.ts +5 -2
  255. package/clinkx-workflows/dist/server.js +82 -52
  256. package/clinkx-workflows/dist/server.js.map +1 -1
  257. package/clinkx-workflows/dist/shutdown.d.ts +18 -20
  258. package/clinkx-workflows/dist/shutdown.js +43 -61
  259. package/clinkx-workflows/dist/shutdown.js.map +1 -1
  260. package/clinkx-workflows/dist/state-schema.d.ts +38 -0
  261. package/clinkx-workflows/dist/state.d.ts +170 -3
  262. package/clinkx-workflows/dist/state.js +1275 -28
  263. package/clinkx-workflows/dist/state.js.map +1 -1
  264. package/clinkx-workflows/dist/transport.d.ts +15 -0
  265. package/clinkx-workflows/dist/transport.js +19 -10
  266. package/clinkx-workflows/dist/transport.js.map +1 -1
  267. package/clinkx-workflows/dist/types.d.ts +14 -2
  268. package/clinkx-workflows/dist/validators/council.d.ts +318 -85
  269. package/clinkx-workflows/dist/validators/council.js +52 -13
  270. package/clinkx-workflows/dist/validators/council.js.map +1 -1
  271. package/clinkx-workflows/dist/validators/index.d.ts +1 -0
  272. package/clinkx-workflows/dist/validators/index.js +3 -0
  273. package/clinkx-workflows/dist/validators/index.js.map +1 -1
  274. package/clinkx-workflows/dist/validators/plan-review.d.ts +398 -0
  275. package/clinkx-workflows/dist/validators/plan-review.js +316 -0
  276. package/clinkx-workflows/dist/validators/plan-review.js.map +1 -0
  277. package/clinkx-workflows/dist/workflow-receipt.js +188 -4
  278. package/clinkx-workflows/dist/workflow-receipt.js.map +1 -1
  279. package/clinkx-workflows/dist/workflow-tools.d.ts +48 -3
  280. package/clinkx-workflows/dist/workflow-tools.js +1402 -59
  281. package/clinkx-workflows/dist/workflow-tools.js.map +1 -1
  282. package/clinkx-workflows/dist/workspace-signature.d.ts +16 -0
  283. package/clinkx-workflows/dist/workspace-signature.js +388 -0
  284. package/clinkx-workflows/dist/workspace-signature.js.map +1 -0
  285. package/clinkx-workflows/templates/council/answer-specialist.txt +2 -1
  286. package/clinkx-workflows/templates/council/code-review-chairman.txt +13 -0
  287. package/clinkx-workflows/templates/council/code-review-cross-reviewer.txt +4 -1
  288. package/clinkx-workflows/templates/council/code-review-reviewer.txt +19 -3
  289. package/clinkx-workflows/templates/council/debug-debugger.txt +2 -1
  290. package/clinkx-workflows/templates/council/discover-analyst.txt +2 -1
  291. package/clinkx-workflows/templates/council/member.txt +2 -1
  292. package/clinkx-workflows/templates/council/plan-review-chairman.txt +68 -0
  293. package/clinkx-workflows/templates/council/plan-review-cross-reviewer.txt +51 -0
  294. package/clinkx-workflows/templates/council/plan-review-reviewer.txt +60 -0
  295. package/clinkx-workflows/templates/plan-review/chairman.txt +48 -0
  296. package/clinkx-workflows/templates/plan-review/cross-review.txt +52 -0
  297. package/clinkx-workflows/templates/plan-review/ranking.txt +16 -0
  298. package/clinkx-workflows/templates/plan-review/reviewer.txt +57 -0
  299. package/clinkx-workflows/workflows/council-answer.yaml +97 -8
  300. package/clinkx-workflows/workflows/council-code-review.yaml +103 -8
  301. package/clinkx-workflows/workflows/council-debug.yaml +97 -8
  302. package/clinkx-workflows/workflows/council-default.yaml +97 -8
  303. package/clinkx-workflows/workflows/council-discover.yaml +97 -8
  304. package/clinkx-workflows/workflows/council-plan-review.yaml +250 -0
  305. package/clinkx-workflows/workflows/plan-review-receipts.yaml +230 -0
  306. package/conf/adapters/agy.json +49 -0
  307. package/conf/adapters/claude.json +5 -0
  308. package/conf/adapters/codex-app-server.json +44 -0
  309. package/conf/adapters/codex.json +7 -2
  310. package/conf/adapters/glm.json +5 -0
  311. package/conf/adapters/grok.json +60 -0
  312. package/conf/adapters/hapi/agy.json +52 -0
  313. package/conf/adapters/hapi/claude.json +5 -0
  314. package/conf/adapters/hapi/codex.json +7 -2
  315. package/conf/adapters/hapi/glm.json +5 -0
  316. package/dist/activity-journal.d.ts +42 -0
  317. package/dist/activity-journal.js +381 -0
  318. package/dist/activity-journal.js.map +1 -0
  319. package/dist/allowed-roots.d.ts +41 -0
  320. package/dist/allowed-roots.js +125 -3
  321. package/dist/allowed-roots.js.map +1 -1
  322. package/dist/codex/activity-session-log.d.ts +14 -0
  323. package/dist/codex/activity-session-log.js +206 -0
  324. package/dist/codex/activity-session-log.js.map +1 -0
  325. package/dist/codex/agent-tools.d.ts +23 -0
  326. package/dist/codex/agent-tools.js +1270 -0
  327. package/dist/codex/agent-tools.js.map +1 -0
  328. package/dist/codex/app-server-client.d.ts +76 -0
  329. package/dist/codex/app-server-client.js +582 -0
  330. package/dist/codex/app-server-client.js.map +1 -0
  331. package/dist/codex/app-server-registry.d.ts +389 -0
  332. package/dist/codex/app-server-registry.js +1407 -0
  333. package/dist/codex/app-server-registry.js.map +1 -0
  334. package/dist/codex/client-types.d.ts +109 -0
  335. package/dist/codex/client-types.js +2 -0
  336. package/dist/codex/client-types.js.map +1 -0
  337. package/dist/codex/protocol.d.ts +5375 -0
  338. package/dist/codex/protocol.js +614 -0
  339. package/dist/codex/protocol.js.map +1 -0
  340. package/dist/codex/session.d.ts +263 -0
  341. package/dist/codex/session.js +466 -0
  342. package/dist/codex/session.js.map +1 -0
  343. package/dist/config.d.ts +185 -19
  344. package/dist/config.js +82 -16
  345. package/dist/config.js.map +1 -1
  346. package/dist/context-builder/anchors.d.ts +1 -0
  347. package/dist/context-builder/anchors.js +3 -0
  348. package/dist/context-builder/anchors.js.map +1 -1
  349. package/dist/context-builder/bundle.d.ts +35 -2
  350. package/dist/context-builder/bundle.js +342 -2417
  351. package/dist/context-builder/bundle.js.map +1 -1
  352. package/dist/context-builder/codemap.d.ts +5 -0
  353. package/dist/context-builder/codemap.js +387 -13
  354. package/dist/context-builder/codemap.js.map +1 -1
  355. package/dist/context-builder/config.d.ts +1 -0
  356. package/dist/context-builder/config.js +12 -0
  357. package/dist/context-builder/config.js.map +1 -1
  358. package/dist/context-builder/context-run-catalog.d.ts +17 -0
  359. package/dist/context-builder/context-run-catalog.js +99 -0
  360. package/dist/context-builder/context-run-catalog.js.map +1 -0
  361. package/dist/context-builder/delegate-packet.d.ts +37 -0
  362. package/dist/context-builder/delegate-packet.js +359 -67
  363. package/dist/context-builder/delegate-packet.js.map +1 -1
  364. package/dist/context-builder/delegate-validation.d.ts +10 -1
  365. package/dist/context-builder/delegate-validation.js +153 -41
  366. package/dist/context-builder/delegate-validation.js.map +1 -1
  367. package/dist/context-builder/delegate.d.ts +2 -0
  368. package/dist/context-builder/delegate.js +1 -0
  369. package/dist/context-builder/delegate.js.map +1 -1
  370. package/dist/context-builder/diagnostics.d.ts +11 -2
  371. package/dist/context-builder/diagnostics.js +39 -6
  372. package/dist/context-builder/diagnostics.js.map +1 -1
  373. package/dist/context-builder/discovery.d.ts +29 -1
  374. package/dist/context-builder/discovery.js +475 -175
  375. package/dist/context-builder/discovery.js.map +1 -1
  376. package/dist/context-builder/globs.js +10 -10
  377. package/dist/context-builder/globs.js.map +1 -1
  378. package/dist/context-builder/handler.d.ts +26 -2
  379. package/dist/context-builder/handler.js +1158 -2416
  380. package/dist/context-builder/handler.js.map +1 -1
  381. package/dist/context-builder/lifecycle-contract.d.ts +424 -0
  382. package/dist/context-builder/lifecycle-contract.js +523 -0
  383. package/dist/context-builder/lifecycle-contract.js.map +1 -0
  384. package/dist/context-builder/lifecycle-journal.d.ts +62 -0
  385. package/dist/context-builder/lifecycle-journal.js +88 -0
  386. package/dist/context-builder/lifecycle-journal.js.map +1 -0
  387. package/dist/context-builder/lifecycle-observer.d.ts +102 -0
  388. package/dist/context-builder/lifecycle-observer.js +258 -0
  389. package/dist/context-builder/lifecycle-observer.js.map +1 -0
  390. package/dist/context-builder/lifecycle-reconcile.d.ts +32 -0
  391. package/dist/context-builder/lifecycle-reconcile.js +191 -0
  392. package/dist/context-builder/lifecycle-reconcile.js.map +1 -0
  393. package/dist/context-builder/lifecycle-recovery.d.ts +2 -0
  394. package/dist/context-builder/lifecycle-recovery.js +14 -0
  395. package/dist/context-builder/lifecycle-recovery.js.map +1 -0
  396. package/dist/context-builder/path-signals.js +9 -5
  397. package/dist/context-builder/path-signals.js.map +1 -1
  398. package/dist/context-builder/progress.d.ts +3 -1
  399. package/dist/context-builder/progress.js +23 -0
  400. package/dist/context-builder/progress.js.map +1 -1
  401. package/dist/context-builder/receipt.d.ts +6 -4
  402. package/dist/context-builder/receipt.js +12 -1
  403. package/dist/context-builder/receipt.js.map +1 -1
  404. package/dist/context-builder/refine-handler.d.ts +14 -0
  405. package/dist/context-builder/refine-handler.js +790 -0
  406. package/dist/context-builder/refine-handler.js.map +1 -0
  407. package/dist/context-builder/review-coverage.d.ts +84 -0
  408. package/dist/context-builder/review-coverage.js +437 -0
  409. package/dist/context-builder/review-coverage.js.map +1 -0
  410. package/dist/context-builder/schema.d.ts +239 -1
  411. package/dist/context-builder/schema.js +112 -6
  412. package/dist/context-builder/schema.js.map +1 -1
  413. package/dist/context-builder/secrets.d.ts +28 -0
  414. package/dist/context-builder/secrets.js +1473 -44
  415. package/dist/context-builder/secrets.js.map +1 -1
  416. package/dist/context-builder/selection.d.ts +7 -3
  417. package/dist/context-builder/selection.js +200 -738
  418. package/dist/context-builder/selection.js.map +1 -1
  419. package/dist/context-builder/session-log-identity.d.ts +1 -0
  420. package/dist/context-builder/session-log-identity.js +66 -0
  421. package/dist/context-builder/session-log-identity.js.map +1 -0
  422. package/dist/context-builder/slice-range-math.d.ts +16 -0
  423. package/dist/context-builder/slice-range-math.js +137 -0
  424. package/dist/context-builder/slice-range-math.js.map +1 -0
  425. package/dist/context-builder/status.d.ts +22 -1
  426. package/dist/context-builder/status.js +59 -4
  427. package/dist/context-builder/status.js.map +1 -1
  428. package/dist/context-builder/storage.d.ts +35 -2
  429. package/dist/context-builder/storage.js +271 -14
  430. package/dist/context-builder/storage.js.map +1 -1
  431. package/dist/context-builder/token-estimate.d.ts +13 -2
  432. package/dist/context-builder/token-estimate.js +77 -4
  433. package/dist/context-builder/token-estimate.js.map +1 -1
  434. package/dist/context-builder/versions.d.ts +29 -0
  435. package/dist/context-builder/versions.js +30 -0
  436. package/dist/context-builder/versions.js.map +1 -0
  437. package/dist/context-builder/workflow-runner.d.ts +69 -0
  438. package/dist/context-builder/workflow-runner.js +1051 -0
  439. package/dist/context-builder/workflow-runner.js.map +1 -0
  440. package/dist/context-builder/write-watchdog.d.ts +14 -0
  441. package/dist/context-builder/write-watchdog.js +38 -0
  442. package/dist/context-builder/write-watchdog.js.map +1 -0
  443. package/dist/dashboard-adapter-catalog.d.ts +9 -0
  444. package/dist/dashboard-adapter-catalog.js +46 -0
  445. package/dist/dashboard-adapter-catalog.js.map +1 -0
  446. package/dist/dashboard-cli.d.ts +79 -0
  447. package/dist/dashboard-cli.js +585 -0
  448. package/dist/dashboard-cli.js.map +1 -0
  449. package/dist/dashboard-companion/client.d.ts +36 -0
  450. package/dist/dashboard-companion/client.js +210 -0
  451. package/dist/dashboard-companion/client.js.map +1 -0
  452. package/dist/dashboard-companion/config.d.ts +8 -0
  453. package/dist/dashboard-companion/config.js +52 -0
  454. package/dist/dashboard-companion/config.js.map +1 -0
  455. package/dist/dashboard-companion/http-proxy.d.ts +10 -0
  456. package/dist/dashboard-companion/http-proxy.js +234 -0
  457. package/dist/dashboard-companion/http-proxy.js.map +1 -0
  458. package/dist/dashboard-companion/protocol.d.ts +80 -0
  459. package/dist/dashboard-companion/protocol.js +455 -0
  460. package/dist/dashboard-companion/protocol.js.map +1 -0
  461. package/dist/dashboard-companion/standalone-assets.d.ts +12 -0
  462. package/dist/dashboard-companion/standalone-assets.js +72 -0
  463. package/dist/dashboard-companion/standalone-assets.js.map +1 -0
  464. package/dist/dashboard-companion/standalone-entry.d.ts +1 -0
  465. package/dist/dashboard-companion/standalone-entry.js +17 -0
  466. package/dist/dashboard-companion/standalone-entry.js.map +1 -0
  467. package/dist/dashboard-gateway/config.d.ts +9 -0
  468. package/dist/dashboard-gateway/config.js +44 -0
  469. package/dist/dashboard-gateway/config.js.map +1 -0
  470. package/dist/dashboard-gateway/index.d.ts +11 -0
  471. package/dist/dashboard-gateway/index.js +755 -0
  472. package/dist/dashboard-gateway/index.js.map +1 -0
  473. package/dist/dashboard-gateway/main.d.ts +1 -0
  474. package/dist/dashboard-gateway/main.js +25 -0
  475. package/dist/dashboard-gateway/main.js.map +1 -0
  476. package/dist/dashboard-pairing-token.d.ts +1 -0
  477. package/dist/dashboard-pairing-token.js +5 -0
  478. package/dist/dashboard-pairing-token.js.map +1 -0
  479. package/dist/elaris/client.d.ts +73 -0
  480. package/dist/elaris/client.js +825 -0
  481. package/dist/elaris/client.js.map +1 -0
  482. package/dist/elaris/config.d.ts +18 -0
  483. package/dist/elaris/config.js +75 -0
  484. package/dist/elaris/config.js.map +1 -0
  485. package/dist/elaris/errors.d.ts +41 -0
  486. package/dist/elaris/errors.js +205 -0
  487. package/dist/elaris/errors.js.map +1 -0
  488. package/dist/elaris/github-repo.d.ts +18 -0
  489. package/dist/elaris/github-repo.js +89 -0
  490. package/dist/elaris/github-repo.js.map +1 -0
  491. package/dist/elaris/index.d.ts +10 -0
  492. package/dist/elaris/index.js +11 -0
  493. package/dist/elaris/index.js.map +1 -0
  494. package/dist/elaris/redact.d.ts +89 -0
  495. package/dist/elaris/redact.js +423 -0
  496. package/dist/elaris/redact.js.map +1 -0
  497. package/dist/elaris/run-id.d.ts +5 -0
  498. package/dist/elaris/run-id.js +20 -0
  499. package/dist/elaris/run-id.js.map +1 -0
  500. package/dist/elaris/status.d.ts +45 -0
  501. package/dist/elaris/status.js +122 -0
  502. package/dist/elaris/status.js.map +1 -0
  503. package/dist/elaris/tool-schemas.d.ts +314 -0
  504. package/dist/elaris/tool-schemas.js +208 -0
  505. package/dist/elaris/tool-schemas.js.map +1 -0
  506. package/dist/elaris/tools.d.ts +73 -0
  507. package/dist/elaris/tools.js +1065 -0
  508. package/dist/elaris/tools.js.map +1 -0
  509. package/dist/elaris/types.d.ts +1541 -0
  510. package/dist/elaris/types.js +252 -0
  511. package/dist/elaris/types.js.map +1 -0
  512. package/dist/errors.d.ts +16 -0
  513. package/dist/errors.js +19 -0
  514. package/dist/errors.js.map +1 -1
  515. package/dist/handler.d.ts +4 -0
  516. package/dist/handler.js +10 -1
  517. package/dist/handler.js.map +1 -1
  518. package/dist/index.d.ts +2 -1
  519. package/dist/index.js +13 -3
  520. package/dist/index.js.map +1 -1
  521. package/dist/local-clink-backend.d.ts +3 -0
  522. package/dist/local-clink-backend.js +4 -0
  523. package/dist/local-clink-backend.js.map +1 -1
  524. package/dist/package-info.d.ts +2 -0
  525. package/dist/package-info.js +18 -0
  526. package/dist/package-info.js.map +1 -0
  527. package/dist/parsers/codex-jsonl.js +48 -3
  528. package/dist/parsers/codex-jsonl.js.map +1 -1
  529. package/dist/parsers/extract.d.ts +10 -1
  530. package/dist/parsers/extract.js +11 -3
  531. package/dist/parsers/extract.js.map +1 -1
  532. package/dist/pipeline.d.ts +4 -0
  533. package/dist/pipeline.js +129 -8
  534. package/dist/pipeline.js.map +1 -1
  535. package/dist/run-dir.d.ts +24 -0
  536. package/dist/run-dir.js +201 -2
  537. package/dist/run-dir.js.map +1 -1
  538. package/dist/runner.d.ts +13 -0
  539. package/dist/runner.js +184 -15
  540. package/dist/runner.js.map +1 -1
  541. package/dist/safety.d.ts +4 -4
  542. package/dist/safety.js +4 -4
  543. package/dist/schema.d.ts +7 -7
  544. package/dist/server.d.ts +1 -0
  545. package/dist/server.js +359 -17
  546. package/dist/server.js.map +1 -1
  547. package/dist/session-log-stream.d.ts +18 -0
  548. package/dist/session-log-stream.js +319 -0
  549. package/dist/session-log-stream.js.map +1 -0
  550. package/package.json +46 -5
  551. package/conf/adapters/gemini.json +0 -44
  552. package/conf/adapters/hapi/gemini.json +0 -47
  553. package/dist/parsers/gemini-json.d.ts +0 -2
  554. package/dist/parsers/gemini-json.js +0 -72
  555. package/dist/parsers/gemini-json.js.map +0 -1
@@ -0,0 +1,45 @@
1
+ export declare const PLAN_REVIEW_DISCOVERY_SCHEMA_VERSION: "council-plan-review-discovery-v1";
2
+ export declare const PLAN_REVIEW_INTERCHANGE_SCHEMA_VERSION: "clinkx-plan-review-interchange-v1";
3
+ /**
4
+ * A configured provider this server can dispatch a plan-review seat to.
5
+ *
6
+ * Availability only. D8 is retracted: plan-review seats run adapter-default, so
7
+ * there is no read-only eligibility to project — admission admits any
8
+ * configured provider, and publishing an `eligible` bit here would advertise a
9
+ * gate the runtime does not apply.
10
+ */
11
+ export interface PlanReviewProviderDiscovery {
12
+ readonly cli_name: string;
13
+ }
14
+ export interface CouncilPlanReviewDiscovery {
15
+ readonly schema_version: typeof PLAN_REVIEW_DISCOVERY_SCHEMA_VERSION;
16
+ readonly interchange_schema_version: typeof PLAN_REVIEW_INTERCHANGE_SCHEMA_VERSION;
17
+ readonly input_schema_version: "council-plan-review-input-v1";
18
+ readonly result_schema_version: "council-plan-review-result-v1";
19
+ readonly execution_contract_schema_version: "execution-contract-v1";
20
+ readonly binding_schema_version: "clinkx-binding-v1";
21
+ readonly digest_profile: "checkpoint-text-v1";
22
+ readonly rubric_digest: string;
23
+ /**
24
+ * Positive declaration, matching the execution contract's own top-level
25
+ * field: reviewers are told not to mutate, and nothing enforces it. Published
26
+ * at discovery time so a consumer learns plan review is trusted-input-only
27
+ * BEFORE it submits a run.
28
+ */
29
+ readonly mutation_enforcement: "prompt-only";
30
+ readonly providers: readonly PlanReviewProviderDiscovery[];
31
+ }
32
+ /**
33
+ * Build the public, read-only discovery projection. The generic workflow
34
+ * catalog remains authoritative for names/descriptions/variables; this object
35
+ * is attached only to the plan-review-receipts entry.
36
+ *
37
+ * `configuredCliNames` is the host's full adapter inventory, which may include
38
+ * custom adapters outside plan review's closed v1 set. Providers are the
39
+ * INTERSECTION of that inventory with `PLAN_REVIEW_V1_CLI_NAMES`: a name must
40
+ * be both configured here AND bindable as a seat `cli_name`. Advertising a
41
+ * configured-but-non-v1 adapter would promise a seat that `CliNameSchema`
42
+ * rejects at contract parse; advertising an unconfigured v1 name would promise
43
+ * a provider this server cannot dispatch to.
44
+ */
45
+ export declare function buildCouncilPlanReviewDiscovery(configuredCliNames: readonly string[]): CouncilPlanReviewDiscovery;
@@ -0,0 +1,36 @@
1
+ import { PLAN_REVIEW_V1_CLI_NAMES } from "./contract.js";
2
+ import { PACKAGED_PLAN_REVIEW_RUBRIC_DIGEST } from "./rubric.js";
3
+ export const PLAN_REVIEW_DISCOVERY_SCHEMA_VERSION = "council-plan-review-discovery-v1";
4
+ export const PLAN_REVIEW_INTERCHANGE_SCHEMA_VERSION = "clinkx-plan-review-interchange-v1";
5
+ /**
6
+ * Build the public, read-only discovery projection. The generic workflow
7
+ * catalog remains authoritative for names/descriptions/variables; this object
8
+ * is attached only to the plan-review-receipts entry.
9
+ *
10
+ * `configuredCliNames` is the host's full adapter inventory, which may include
11
+ * custom adapters outside plan review's closed v1 set. Providers are the
12
+ * INTERSECTION of that inventory with `PLAN_REVIEW_V1_CLI_NAMES`: a name must
13
+ * be both configured here AND bindable as a seat `cli_name`. Advertising a
14
+ * configured-but-non-v1 adapter would promise a seat that `CliNameSchema`
15
+ * rejects at contract parse; advertising an unconfigured v1 name would promise
16
+ * a provider this server cannot dispatch to.
17
+ */
18
+ export function buildCouncilPlanReviewDiscovery(configuredCliNames) {
19
+ const v1CliNames = new Set(PLAN_REVIEW_V1_CLI_NAMES);
20
+ return {
21
+ schema_version: PLAN_REVIEW_DISCOVERY_SCHEMA_VERSION,
22
+ interchange_schema_version: PLAN_REVIEW_INTERCHANGE_SCHEMA_VERSION,
23
+ input_schema_version: "council-plan-review-input-v1",
24
+ result_schema_version: "council-plan-review-result-v1",
25
+ execution_contract_schema_version: "execution-contract-v1",
26
+ binding_schema_version: "clinkx-binding-v1",
27
+ digest_profile: "checkpoint-text-v1",
28
+ rubric_digest: PACKAGED_PLAN_REVIEW_RUBRIC_DIGEST,
29
+ mutation_enforcement: "prompt-only",
30
+ providers: [...new Set(configuredCliNames)]
31
+ .filter((cliName) => v1CliNames.has(cliName))
32
+ .sort()
33
+ .map((cliName) => ({ cli_name: cliName })),
34
+ };
35
+ }
36
+ //# sourceMappingURL=discovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/plan-review/discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,kCAAkC,EAAE,MAAM,aAAa,CAAC;AAEjE,MAAM,CAAC,MAAM,oCAAoC,GAC/C,kCAA2C,CAAC;AAC9C,MAAM,CAAC,MAAM,sCAAsC,GACjD,mCAA4C,CAAC;AAiC/C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,+BAA+B,CAC7C,kBAAqC;IAErC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,wBAAwB,CAAC,CAAC;IAC7D,OAAO;QACL,cAAc,EAAE,oCAAoC;QACpD,0BAA0B,EAAE,sCAAsC;QAClE,oBAAoB,EAAE,8BAA8B;QACpD,qBAAqB,EAAE,+BAA+B;QACtD,iCAAiC,EAAE,uBAAuB;QAC1D,sBAAsB,EAAE,mBAAmB;QAC3C,cAAc,EAAE,oBAAoB;QACpC,aAAa,EAAE,kCAAkC;QACjD,oBAAoB,EAAE,aAAa;QACnC,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC;aACxC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;aAC5C,IAAI,EAAE;aACN,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;KAC7C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,298 @@
1
+ import { z } from "zod";
2
+ import { type CouncilPlanReviewResult } from "./contract.js";
3
+ /**
4
+ * Strict normalized Phase-0 model. It is data-only: runtime admission,
5
+ * capability probing, snapshots, state, and subprocess enforcement land later.
6
+ */
7
+ export declare const CouncilPlanReviewExecutionContractSchema: z.ZodEffects<z.ZodObject<{
8
+ schema_version: z.ZodLiteral<"execution-contract-v1">;
9
+ workspace_schema: z.ZodLiteral<"plan-workspace-v1">;
10
+ digest_profile: z.ZodLiteral<"checkpoint-text-v1">;
11
+ bindings: z.ZodObject<{
12
+ repository_id: z.ZodString;
13
+ review_id: z.ZodString;
14
+ iteration: z.ZodString;
15
+ plan_id: z.ZodString;
16
+ revision: z.ZodString;
17
+ plan_digest: z.ZodString;
18
+ }, "strict", z.ZodTypeAny, {
19
+ review_id: string;
20
+ repository_id: string;
21
+ iteration: string;
22
+ plan_id: string;
23
+ revision: string;
24
+ plan_digest: string;
25
+ }, {
26
+ review_id: string;
27
+ repository_id: string;
28
+ iteration: string;
29
+ plan_id: string;
30
+ revision: string;
31
+ plan_digest: string;
32
+ }>;
33
+ seats: z.ZodArray<z.ZodEffects<z.ZodObject<{
34
+ seat_id: z.ZodString;
35
+ internal_call_id: z.ZodString;
36
+ cross_review_call_id: z.ZodString;
37
+ reviewer: z.ZodString;
38
+ cli_name: z.ZodEnum<["codex", "claude", "glm", "agy", "grok"]>;
39
+ stance: z.ZodEnum<["strict", "pragmatic", "adversarial"]>;
40
+ }, "strict", z.ZodTypeAny, {
41
+ cli_name: "codex" | "claude" | "glm" | "agy" | "grok";
42
+ seat_id: string;
43
+ reviewer: string;
44
+ stance: "strict" | "pragmatic" | "adversarial";
45
+ internal_call_id: string;
46
+ cross_review_call_id: string;
47
+ }, {
48
+ cli_name: "codex" | "claude" | "glm" | "agy" | "grok";
49
+ seat_id: string;
50
+ reviewer: string;
51
+ stance: "strict" | "pragmatic" | "adversarial";
52
+ internal_call_id: string;
53
+ cross_review_call_id: string;
54
+ }>, {
55
+ cli_name: "codex" | "claude" | "glm" | "agy" | "grok";
56
+ seat_id: string;
57
+ reviewer: string;
58
+ stance: "strict" | "pragmatic" | "adversarial";
59
+ internal_call_id: string;
60
+ cross_review_call_id: string;
61
+ }, {
62
+ cli_name: "codex" | "claude" | "glm" | "agy" | "grok";
63
+ seat_id: string;
64
+ reviewer: string;
65
+ stance: "strict" | "pragmatic" | "adversarial";
66
+ internal_call_id: string;
67
+ cross_review_call_id: string;
68
+ }>, "many">;
69
+ rubric: z.ZodObject<{
70
+ digest: z.ZodString;
71
+ }, "strict", z.ZodTypeAny, {
72
+ digest: string;
73
+ }, {
74
+ digest: string;
75
+ }>;
76
+ threshold: z.ZodEffects<z.ZodString, string, string>;
77
+ designated_editor: z.ZodString;
78
+ chairman_seat: z.ZodString;
79
+ /**
80
+ * D8 is RETRACTED: reviewers run adapter-default, so non-mutation is a
81
+ * PROMPT INSTRUCTION and nothing more. This field says exactly that and
82
+ * publishes no containment claim the runtime cannot back.
83
+ */
84
+ mutation_enforcement: z.ZodLiteral<"prompt-only">;
85
+ /**
86
+ * D2/D3/D6. These previously rode inside the D8 `read_only_policy` struct;
87
+ * they are independent decisions and outlive it. Each stays pinned to the
88
+ * only value the runtime implements — a `true` here would assert a
89
+ * deliberation the transport does not perform.
90
+ */
91
+ deliberation_policy: z.ZodObject<{
92
+ fallback_allowed: z.ZodLiteral<false>;
93
+ seat_substitution_allowed: z.ZodLiteral<false>;
94
+ deliberation_receipts_allowed: z.ZodLiteral<false>;
95
+ partial_transport_is_approval: z.ZodLiteral<false>;
96
+ }, "strict", z.ZodTypeAny, {
97
+ fallback_allowed: false;
98
+ seat_substitution_allowed: false;
99
+ deliberation_receipts_allowed: false;
100
+ partial_transport_is_approval: false;
101
+ }, {
102
+ fallback_allowed: false;
103
+ seat_substitution_allowed: false;
104
+ deliberation_receipts_allowed: false;
105
+ partial_transport_is_approval: false;
106
+ }>;
107
+ context_evidence_policy: z.ZodObject<{
108
+ immutable_snapshot_only: z.ZodLiteral<true>;
109
+ snapshot_digest: z.ZodString;
110
+ original_plan_context_allowed: z.ZodLiteral<false>;
111
+ plan_workspace_context_allowed: z.ZodLiteral<false>;
112
+ }, "strict", z.ZodTypeAny, {
113
+ immutable_snapshot_only: true;
114
+ snapshot_digest: string;
115
+ original_plan_context_allowed: false;
116
+ plan_workspace_context_allowed: false;
117
+ }, {
118
+ immutable_snapshot_only: true;
119
+ snapshot_digest: string;
120
+ original_plan_context_allowed: false;
121
+ plan_workspace_context_allowed: false;
122
+ }>;
123
+ }, "strict", z.ZodTypeAny, {
124
+ schema_version: "execution-contract-v1";
125
+ workspace_schema: "plan-workspace-v1";
126
+ digest_profile: "checkpoint-text-v1";
127
+ threshold: string;
128
+ designated_editor: string;
129
+ chairman_seat: string;
130
+ seats: {
131
+ cli_name: "codex" | "claude" | "glm" | "agy" | "grok";
132
+ seat_id: string;
133
+ reviewer: string;
134
+ stance: "strict" | "pragmatic" | "adversarial";
135
+ internal_call_id: string;
136
+ cross_review_call_id: string;
137
+ }[];
138
+ bindings: {
139
+ review_id: string;
140
+ repository_id: string;
141
+ iteration: string;
142
+ plan_id: string;
143
+ revision: string;
144
+ plan_digest: string;
145
+ };
146
+ rubric: {
147
+ digest: string;
148
+ };
149
+ mutation_enforcement: "prompt-only";
150
+ deliberation_policy: {
151
+ fallback_allowed: false;
152
+ seat_substitution_allowed: false;
153
+ deliberation_receipts_allowed: false;
154
+ partial_transport_is_approval: false;
155
+ };
156
+ context_evidence_policy: {
157
+ immutable_snapshot_only: true;
158
+ snapshot_digest: string;
159
+ original_plan_context_allowed: false;
160
+ plan_workspace_context_allowed: false;
161
+ };
162
+ }, {
163
+ schema_version: "execution-contract-v1";
164
+ workspace_schema: "plan-workspace-v1";
165
+ digest_profile: "checkpoint-text-v1";
166
+ threshold: string;
167
+ designated_editor: string;
168
+ chairman_seat: string;
169
+ seats: {
170
+ cli_name: "codex" | "claude" | "glm" | "agy" | "grok";
171
+ seat_id: string;
172
+ reviewer: string;
173
+ stance: "strict" | "pragmatic" | "adversarial";
174
+ internal_call_id: string;
175
+ cross_review_call_id: string;
176
+ }[];
177
+ bindings: {
178
+ review_id: string;
179
+ repository_id: string;
180
+ iteration: string;
181
+ plan_id: string;
182
+ revision: string;
183
+ plan_digest: string;
184
+ };
185
+ rubric: {
186
+ digest: string;
187
+ };
188
+ mutation_enforcement: "prompt-only";
189
+ deliberation_policy: {
190
+ fallback_allowed: false;
191
+ seat_substitution_allowed: false;
192
+ deliberation_receipts_allowed: false;
193
+ partial_transport_is_approval: false;
194
+ };
195
+ context_evidence_policy: {
196
+ immutable_snapshot_only: true;
197
+ snapshot_digest: string;
198
+ original_plan_context_allowed: false;
199
+ plan_workspace_context_allowed: false;
200
+ };
201
+ }>, {
202
+ schema_version: "execution-contract-v1";
203
+ workspace_schema: "plan-workspace-v1";
204
+ digest_profile: "checkpoint-text-v1";
205
+ threshold: string;
206
+ designated_editor: string;
207
+ chairman_seat: string;
208
+ seats: {
209
+ cli_name: "codex" | "claude" | "glm" | "agy" | "grok";
210
+ seat_id: string;
211
+ reviewer: string;
212
+ stance: "strict" | "pragmatic" | "adversarial";
213
+ internal_call_id: string;
214
+ cross_review_call_id: string;
215
+ }[];
216
+ bindings: {
217
+ review_id: string;
218
+ repository_id: string;
219
+ iteration: string;
220
+ plan_id: string;
221
+ revision: string;
222
+ plan_digest: string;
223
+ };
224
+ rubric: {
225
+ digest: string;
226
+ };
227
+ mutation_enforcement: "prompt-only";
228
+ deliberation_policy: {
229
+ fallback_allowed: false;
230
+ seat_substitution_allowed: false;
231
+ deliberation_receipts_allowed: false;
232
+ partial_transport_is_approval: false;
233
+ };
234
+ context_evidence_policy: {
235
+ immutable_snapshot_only: true;
236
+ snapshot_digest: string;
237
+ original_plan_context_allowed: false;
238
+ plan_workspace_context_allowed: false;
239
+ };
240
+ }, {
241
+ schema_version: "execution-contract-v1";
242
+ workspace_schema: "plan-workspace-v1";
243
+ digest_profile: "checkpoint-text-v1";
244
+ threshold: string;
245
+ designated_editor: string;
246
+ chairman_seat: string;
247
+ seats: {
248
+ cli_name: "codex" | "claude" | "glm" | "agy" | "grok";
249
+ seat_id: string;
250
+ reviewer: string;
251
+ stance: "strict" | "pragmatic" | "adversarial";
252
+ internal_call_id: string;
253
+ cross_review_call_id: string;
254
+ }[];
255
+ bindings: {
256
+ review_id: string;
257
+ repository_id: string;
258
+ iteration: string;
259
+ plan_id: string;
260
+ revision: string;
261
+ plan_digest: string;
262
+ };
263
+ rubric: {
264
+ digest: string;
265
+ };
266
+ mutation_enforcement: "prompt-only";
267
+ deliberation_policy: {
268
+ fallback_allowed: false;
269
+ seat_substitution_allowed: false;
270
+ deliberation_receipts_allowed: false;
271
+ partial_transport_is_approval: false;
272
+ };
273
+ context_evidence_policy: {
274
+ immutable_snapshot_only: true;
275
+ snapshot_digest: string;
276
+ original_plan_context_allowed: false;
277
+ plan_workspace_context_allowed: false;
278
+ };
279
+ }>;
280
+ export type CouncilPlanReviewExecutionContract = z.infer<typeof CouncilPlanReviewExecutionContractSchema>;
281
+ export interface ComputedCouncilPlanReviewExecutionContract {
282
+ readonly contract: CouncilPlanReviewExecutionContract;
283
+ readonly canonicalBytes: Buffer;
284
+ readonly digest: string;
285
+ }
286
+ export declare function computeCouncilPlanReviewExecutionContractDigest(input: unknown): ComputedCouncilPlanReviewExecutionContract;
287
+ export type ExecutionContractResultBindingRejection = "digest_mismatch" | "binding_mismatch" | "roster_mismatch";
288
+ export declare class ExecutionContractResultBindingError extends Error {
289
+ readonly code: ExecutionContractResultBindingRejection;
290
+ constructor(code: ExecutionContractResultBindingRejection, message: string);
291
+ }
292
+ export interface ValidatedCouncilPlanReviewExecutionResult {
293
+ readonly contract: CouncilPlanReviewExecutionContract;
294
+ readonly result: CouncilPlanReviewResult;
295
+ readonly execution_contract_digest: string;
296
+ }
297
+ /** Validate only the normalized contract/result relationship; performs no I/O. */
298
+ export declare function validateCouncilPlanReviewExecutionContractResult(contractInput: unknown, resultInput: unknown): ValidatedCouncilPlanReviewExecutionResult;
@@ -0,0 +1,194 @@
1
+ import { z } from "zod";
2
+ import { CliNameSchema, CouncilPlanReviewResultSchema, DigestSchema, PlanIdSchema, RepositoryIdSchema, ReviewIdSchema, } from "./contract.js";
3
+ import { computeExecutionContractDigest, executionContractDecimal, } from "./digest.js";
4
+ const PositiveDecimalIntegerSchema = z.string().regex(/^[1-9][0-9]*$/);
5
+ const ScoreDecimalSchema = z
6
+ .string()
7
+ .regex(/^(?:0|[1-9][0-9]*)(?:\.[0-9]*[1-9])?$/)
8
+ .refine((value) => Number(value) >= 0 && Number(value) <= 10, {
9
+ message: "threshold must be between 0 and 10",
10
+ });
11
+ const InternalSeatCallIdSchema = z.string().regex(/^seat_[0-9]{3,}$/);
12
+ const InternalCrossReviewCallIdSchema = z.string().regex(/^cross_[0-9]{3,}$/);
13
+ const ExecutionContractSeatSchema = z
14
+ .object({
15
+ seat_id: ReviewIdSchema,
16
+ internal_call_id: InternalSeatCallIdSchema,
17
+ cross_review_call_id: InternalCrossReviewCallIdSchema,
18
+ reviewer: z.string().min(1),
19
+ cli_name: CliNameSchema,
20
+ stance: z.enum(["strict", "pragmatic", "adversarial"]),
21
+ })
22
+ .strict()
23
+ .refine((seat) => seat.reviewer === seat.cli_name, {
24
+ message: "reviewer must equal cli_name",
25
+ path: ["reviewer"],
26
+ });
27
+ const ExecutionContractBindingsSchema = z
28
+ .object({
29
+ repository_id: RepositoryIdSchema,
30
+ review_id: ReviewIdSchema,
31
+ iteration: PositiveDecimalIntegerSchema,
32
+ plan_id: PlanIdSchema,
33
+ revision: PositiveDecimalIntegerSchema,
34
+ plan_digest: DigestSchema,
35
+ })
36
+ .strict();
37
+ const ExecutionContractRubricSchema = z
38
+ .object({ digest: DigestSchema })
39
+ .strict();
40
+ /**
41
+ * Strict normalized Phase-0 model. It is data-only: runtime admission,
42
+ * capability probing, snapshots, state, and subprocess enforcement land later.
43
+ */
44
+ export const CouncilPlanReviewExecutionContractSchema = z
45
+ .object({
46
+ schema_version: z.literal("execution-contract-v1"),
47
+ workspace_schema: z.literal("plan-workspace-v1"),
48
+ digest_profile: z.literal("checkpoint-text-v1"),
49
+ bindings: ExecutionContractBindingsSchema,
50
+ seats: z.array(ExecutionContractSeatSchema).min(1).max(10),
51
+ rubric: ExecutionContractRubricSchema,
52
+ threshold: ScoreDecimalSchema,
53
+ designated_editor: z.string().min(1),
54
+ chairman_seat: ReviewIdSchema,
55
+ /**
56
+ * D8 is RETRACTED: reviewers run adapter-default, so non-mutation is a
57
+ * PROMPT INSTRUCTION and nothing more. This field says exactly that and
58
+ * publishes no containment claim the runtime cannot back.
59
+ */
60
+ mutation_enforcement: z.literal("prompt-only"),
61
+ /**
62
+ * D2/D3/D6. These previously rode inside the D8 `read_only_policy` struct;
63
+ * they are independent decisions and outlive it. Each stays pinned to the
64
+ * only value the runtime implements — a `true` here would assert a
65
+ * deliberation the transport does not perform.
66
+ */
67
+ deliberation_policy: z
68
+ .object({
69
+ fallback_allowed: z.literal(false),
70
+ seat_substitution_allowed: z.literal(false),
71
+ deliberation_receipts_allowed: z.literal(false),
72
+ partial_transport_is_approval: z.literal(false),
73
+ })
74
+ .strict(),
75
+ context_evidence_policy: z
76
+ .object({
77
+ immutable_snapshot_only: z.literal(true),
78
+ snapshot_digest: DigestSchema,
79
+ original_plan_context_allowed: z.literal(false),
80
+ plan_workspace_context_allowed: z.literal(false),
81
+ })
82
+ .strict(),
83
+ })
84
+ .strict()
85
+ .superRefine((contract, ctx) => {
86
+ const seatIds = new Set();
87
+ const internalCallIds = new Set();
88
+ for (const [index, seat] of contract.seats.entries()) {
89
+ if (seatIds.has(seat.seat_id)) {
90
+ ctx.addIssue({
91
+ code: z.ZodIssueCode.custom,
92
+ message: `Duplicate seat_id: ${seat.seat_id}`,
93
+ path: ["seats", index, "seat_id"],
94
+ });
95
+ }
96
+ seatIds.add(seat.seat_id);
97
+ if (internalCallIds.has(seat.internal_call_id)) {
98
+ ctx.addIssue({
99
+ code: z.ZodIssueCode.custom,
100
+ message: `Duplicate internal_call_id: ${seat.internal_call_id}`,
101
+ path: ["seats", index, "internal_call_id"],
102
+ });
103
+ }
104
+ internalCallIds.add(seat.internal_call_id);
105
+ if (internalCallIds.has(seat.cross_review_call_id)) {
106
+ ctx.addIssue({
107
+ code: z.ZodIssueCode.custom,
108
+ message: `Duplicate internal call ID: ${seat.cross_review_call_id}`,
109
+ path: ["seats", index, "cross_review_call_id"],
110
+ });
111
+ }
112
+ internalCallIds.add(seat.cross_review_call_id);
113
+ }
114
+ if (!seatIds.has(contract.chairman_seat)) {
115
+ ctx.addIssue({
116
+ code: z.ZodIssueCode.custom,
117
+ message: "chairman_seat must identify one execution-contract seat",
118
+ path: ["chairman_seat"],
119
+ });
120
+ }
121
+ if (contract.context_evidence_policy.snapshot_digest !==
122
+ contract.bindings.plan_digest) {
123
+ ctx.addIssue({
124
+ code: z.ZodIssueCode.custom,
125
+ message: "snapshot_digest must equal bindings.plan_digest",
126
+ path: ["context_evidence_policy", "snapshot_digest"],
127
+ });
128
+ }
129
+ });
130
+ function digestValue(contract) {
131
+ return {
132
+ ...contract,
133
+ bindings: {
134
+ ...contract.bindings,
135
+ iteration: executionContractDecimal(contract.bindings.iteration),
136
+ revision: executionContractDecimal(contract.bindings.revision),
137
+ },
138
+ threshold: executionContractDecimal(contract.threshold),
139
+ };
140
+ }
141
+ export function computeCouncilPlanReviewExecutionContractDigest(input) {
142
+ const contract = CouncilPlanReviewExecutionContractSchema.parse(input);
143
+ const computed = computeExecutionContractDigest(digestValue(contract));
144
+ return { contract, ...computed };
145
+ }
146
+ export class ExecutionContractResultBindingError extends Error {
147
+ code;
148
+ constructor(code, message) {
149
+ super(message);
150
+ this.name = "ExecutionContractResultBindingError";
151
+ this.code = code;
152
+ }
153
+ }
154
+ /** Validate only the normalized contract/result relationship; performs no I/O. */
155
+ export function validateCouncilPlanReviewExecutionContractResult(contractInput, resultInput) {
156
+ const computed = computeCouncilPlanReviewExecutionContractDigest(contractInput);
157
+ const result = CouncilPlanReviewResultSchema.parse(resultInput);
158
+ if (result.execution_contract_digest !== computed.digest) {
159
+ throw new ExecutionContractResultBindingError("digest_mismatch", "result execution_contract_digest does not match the normalized contract");
160
+ }
161
+ const { contract } = computed;
162
+ const receiptIterationMismatch = result.seats.some((seat) => seat.execution_status === "completed" &&
163
+ String(seat.receipt_candidate.iteration) !== contract.bindings.iteration);
164
+ const bindingMismatch = result.bindings.repository_id !== contract.bindings.repository_id ||
165
+ result.bindings.review_id !== contract.bindings.review_id ||
166
+ result.bindings.plan_id !== contract.bindings.plan_id ||
167
+ String(result.bindings.revision) !== contract.bindings.revision ||
168
+ result.bindings.digest !== contract.bindings.plan_digest ||
169
+ String(result.bindings.threshold) !== contract.threshold ||
170
+ result.bindings.designated_editor !== contract.designated_editor ||
171
+ result.bindings.chairman_seat !== contract.chairman_seat ||
172
+ receiptIterationMismatch;
173
+ if (bindingMismatch) {
174
+ throw new ExecutionContractResultBindingError("binding_mismatch", "result bindings do not match the normalized contract");
175
+ }
176
+ const rosterMatches = result.seats.length === contract.seats.length &&
177
+ result.seats.every((resultSeat, index) => {
178
+ const contractSeat = contract.seats[index];
179
+ return (contractSeat !== undefined &&
180
+ resultSeat.seat_id === contractSeat.seat_id &&
181
+ resultSeat.internal_call_id === contractSeat.internal_call_id &&
182
+ resultSeat.reviewer === contractSeat.reviewer &&
183
+ resultSeat.cli_name === contractSeat.cli_name);
184
+ });
185
+ if (!rosterMatches) {
186
+ throw new ExecutionContractResultBindingError("roster_mismatch", "result seats must exactly match execution-contract order and identity");
187
+ }
188
+ return {
189
+ contract,
190
+ result,
191
+ execution_contract_digest: computed.digest,
192
+ };
193
+ }
194
+ //# sourceMappingURL=execution-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-contract.js","sourceRoot":"","sources":["../../src/plan-review/execution-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { NormalizedWorkflowDefinition } from "../definition-normalizer.js";
2
+ import { type CouncilPlanReviewExecutionContract } from "./execution-contract.js";
3
+ import type { CanonicalPlanSnapshot } from "./snapshot.js";
4
+ /**
5
+ * Delimits the inlined snapshot. Long and fixed on purpose: the plan is
6
+ * untrusted text that may itself contain markdown fences, and an actor must be
7
+ * able to tell where the bound revision ends and its instructions resume.
8
+ */
9
+ export declare const PLAN_SNAPSHOT_BEGIN = "-----BEGIN PLAN SNAPSHOT-----";
10
+ export declare const PLAN_SNAPSHOT_END = "-----END PLAN SNAPSHOT-----";
11
+ /**
12
+ * The exact snapshot block appended to every actor's prompt.
13
+ *
14
+ * Exported because it is the only thing a PERSISTED prepared input can be
15
+ * checked against on resume (D9). A resumed retry replays its persisted prompt
16
+ * verbatim — the expander never runs again for it — so the resume seam must
17
+ * re-derive these exact bytes and require them to be present. Two renderings
18
+ * would let the check pass against text no actor was ever sent.
19
+ *
20
+ * The result is appended by the ENGINE, after `renderCallPrompt` — never
21
+ * concatenated into a call's `prompt` template. See
22
+ * `NormalizedCall.plan_review_snapshot_text`: the plan is untrusted text that
23
+ * may contain `{{...}}`, and the renderer would rewrite or reject it.
24
+ */
25
+ export declare function renderPlanSnapshotBlock(planSnapshotText: string): string;
26
+ /** Remove plan/seat/provider bindings before a peer artifact is cross-reviewed. */
27
+ export declare function projectPlanReviewSemanticBody(value: unknown): unknown;
28
+ /**
29
+ * Expand the isolated four-stage plan-review seed. Existing council expansion
30
+ * is intentionally not reused or mutated.
31
+ */
32
+ export declare function expandCouncilPlanReview(definition: NormalizedWorkflowDefinition, contractInput: CouncilPlanReviewExecutionContract,
33
+ /**
34
+ * The verified canonical plan snapshot (A-6/D9), inlined into every actor's
35
+ * prompt. Inlining TEXT rather than naming a path is what keeps D9 true now
36
+ * that actors run adapter-default: a path is a mutable thing an actor could
37
+ * re-read (or re-write) after verification, whereas the prompt bytes are
38
+ * fixed at dispatch.
39
+ *
40
+ * This takes the verified `CanonicalPlanSnapshot` rather than a bare `string`
41
+ * ON PURPOSE. A bare string accepts a PATHNAME just as happily as plan text,
42
+ * and a pathname would inline the path — reintroducing exactly the mutable
43
+ * indirection D9 exists to remove — while every existing test still passed,
44
+ * because none asserted on the rendered prompt. The nominal type makes that
45
+ * mistake unrepresentable for a reader; `assertVerifiedSnapshot` below makes
46
+ * it fail for the test suite.
47
+ */
48
+ planSnapshot?: CanonicalPlanSnapshot): NormalizedWorkflowDefinition;