clinkx 0.2.3 → 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 (574) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/LICENSE +10 -0
  3. package/README.md +113 -18
  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/conf/prompts/json-codereviewer.txt +1 -0
  317. package/conf/prompts/json.txt +1 -0
  318. package/dist/activity-journal.d.ts +42 -0
  319. package/dist/activity-journal.js +381 -0
  320. package/dist/activity-journal.js.map +1 -0
  321. package/dist/allowed-roots.d.ts +53 -0
  322. package/dist/allowed-roots.js +216 -0
  323. package/dist/allowed-roots.js.map +1 -0
  324. package/dist/codex/activity-session-log.d.ts +14 -0
  325. package/dist/codex/activity-session-log.js +206 -0
  326. package/dist/codex/activity-session-log.js.map +1 -0
  327. package/dist/codex/agent-tools.d.ts +23 -0
  328. package/dist/codex/agent-tools.js +1270 -0
  329. package/dist/codex/agent-tools.js.map +1 -0
  330. package/dist/codex/app-server-client.d.ts +76 -0
  331. package/dist/codex/app-server-client.js +582 -0
  332. package/dist/codex/app-server-client.js.map +1 -0
  333. package/dist/codex/app-server-registry.d.ts +389 -0
  334. package/dist/codex/app-server-registry.js +1407 -0
  335. package/dist/codex/app-server-registry.js.map +1 -0
  336. package/dist/codex/client-types.d.ts +109 -0
  337. package/dist/codex/client-types.js +2 -0
  338. package/dist/codex/client-types.js.map +1 -0
  339. package/dist/codex/protocol.d.ts +5375 -0
  340. package/dist/codex/protocol.js +614 -0
  341. package/dist/codex/protocol.js.map +1 -0
  342. package/dist/codex/session.d.ts +263 -0
  343. package/dist/codex/session.js +466 -0
  344. package/dist/codex/session.js.map +1 -0
  345. package/dist/config.d.ts +185 -19
  346. package/dist/config.js +82 -16
  347. package/dist/config.js.map +1 -1
  348. package/dist/context-builder/anchors.d.ts +12 -0
  349. package/dist/context-builder/anchors.js +22 -0
  350. package/dist/context-builder/anchors.js.map +1 -0
  351. package/dist/context-builder/bundle.d.ts +109 -0
  352. package/dist/context-builder/bundle.js +1498 -0
  353. package/dist/context-builder/bundle.js.map +1 -0
  354. package/dist/context-builder/codemap.d.ts +22 -0
  355. package/dist/context-builder/codemap.js +675 -0
  356. package/dist/context-builder/codemap.js.map +1 -0
  357. package/dist/context-builder/config.d.ts +61 -0
  358. package/dist/context-builder/config.js +216 -0
  359. package/dist/context-builder/config.js.map +1 -0
  360. package/dist/context-builder/context-run-catalog.d.ts +17 -0
  361. package/dist/context-builder/context-run-catalog.js +99 -0
  362. package/dist/context-builder/context-run-catalog.js.map +1 -0
  363. package/dist/context-builder/delegate-packet.d.ts +219 -0
  364. package/dist/context-builder/delegate-packet.js +1190 -0
  365. package/dist/context-builder/delegate-packet.js.map +1 -0
  366. package/dist/context-builder/delegate-reconstruction.d.ts +13 -0
  367. package/dist/context-builder/delegate-reconstruction.js +220 -0
  368. package/dist/context-builder/delegate-reconstruction.js.map +1 -0
  369. package/dist/context-builder/delegate-validation.d.ts +27 -0
  370. package/dist/context-builder/delegate-validation.js +479 -0
  371. package/dist/context-builder/delegate-validation.js.map +1 -0
  372. package/dist/context-builder/delegate.d.ts +26 -0
  373. package/dist/context-builder/delegate.js +134 -0
  374. package/dist/context-builder/delegate.js.map +1 -0
  375. package/dist/context-builder/diagnostics.d.ts +36 -0
  376. package/dist/context-builder/diagnostics.js +107 -0
  377. package/dist/context-builder/diagnostics.js.map +1 -0
  378. package/dist/context-builder/discovery.d.ts +146 -0
  379. package/dist/context-builder/discovery.js +2129 -0
  380. package/dist/context-builder/discovery.js.map +1 -0
  381. package/dist/context-builder/globs.d.ts +14 -0
  382. package/dist/context-builder/globs.js +175 -0
  383. package/dist/context-builder/globs.js.map +1 -0
  384. package/dist/context-builder/handler.d.ts +41 -0
  385. package/dist/context-builder/handler.js +2590 -0
  386. package/dist/context-builder/handler.js.map +1 -0
  387. package/dist/context-builder/lifecycle-contract.d.ts +424 -0
  388. package/dist/context-builder/lifecycle-contract.js +523 -0
  389. package/dist/context-builder/lifecycle-contract.js.map +1 -0
  390. package/dist/context-builder/lifecycle-journal.d.ts +62 -0
  391. package/dist/context-builder/lifecycle-journal.js +88 -0
  392. package/dist/context-builder/lifecycle-journal.js.map +1 -0
  393. package/dist/context-builder/lifecycle-observer.d.ts +102 -0
  394. package/dist/context-builder/lifecycle-observer.js +258 -0
  395. package/dist/context-builder/lifecycle-observer.js.map +1 -0
  396. package/dist/context-builder/lifecycle-reconcile.d.ts +32 -0
  397. package/dist/context-builder/lifecycle-reconcile.js +191 -0
  398. package/dist/context-builder/lifecycle-reconcile.js.map +1 -0
  399. package/dist/context-builder/lifecycle-recovery.d.ts +2 -0
  400. package/dist/context-builder/lifecycle-recovery.js +14 -0
  401. package/dist/context-builder/lifecycle-recovery.js.map +1 -0
  402. package/dist/context-builder/path-signals.d.ts +7 -0
  403. package/dist/context-builder/path-signals.js +70 -0
  404. package/dist/context-builder/path-signals.js.map +1 -0
  405. package/dist/context-builder/paths.d.ts +30 -0
  406. package/dist/context-builder/paths.js +153 -0
  407. package/dist/context-builder/paths.js.map +1 -0
  408. package/dist/context-builder/progress.d.ts +17 -0
  409. package/dist/context-builder/progress.js +93 -0
  410. package/dist/context-builder/progress.js.map +1 -0
  411. package/dist/context-builder/receipt.d.ts +91 -0
  412. package/dist/context-builder/receipt.js +180 -0
  413. package/dist/context-builder/receipt.js.map +1 -0
  414. package/dist/context-builder/refine-handler.d.ts +14 -0
  415. package/dist/context-builder/refine-handler.js +790 -0
  416. package/dist/context-builder/refine-handler.js.map +1 -0
  417. package/dist/context-builder/review-coverage.d.ts +84 -0
  418. package/dist/context-builder/review-coverage.js +437 -0
  419. package/dist/context-builder/review-coverage.js.map +1 -0
  420. package/dist/context-builder/run-id.d.ts +7 -0
  421. package/dist/context-builder/run-id.js +31 -0
  422. package/dist/context-builder/run-id.js.map +1 -0
  423. package/dist/context-builder/schema.d.ts +669 -0
  424. package/dist/context-builder/schema.js +399 -0
  425. package/dist/context-builder/schema.js.map +1 -0
  426. package/dist/context-builder/secrets.d.ts +41 -0
  427. package/dist/context-builder/secrets.js +1651 -0
  428. package/dist/context-builder/secrets.js.map +1 -0
  429. package/dist/context-builder/selection.d.ts +56 -0
  430. package/dist/context-builder/selection.js +1111 -0
  431. package/dist/context-builder/selection.js.map +1 -0
  432. package/dist/context-builder/session-log-identity.d.ts +1 -0
  433. package/dist/context-builder/session-log-identity.js +66 -0
  434. package/dist/context-builder/session-log-identity.js.map +1 -0
  435. package/dist/context-builder/slice-range-math.d.ts +16 -0
  436. package/dist/context-builder/slice-range-math.js +137 -0
  437. package/dist/context-builder/slice-range-math.js.map +1 -0
  438. package/dist/context-builder/status.d.ts +66 -0
  439. package/dist/context-builder/status.js +160 -0
  440. package/dist/context-builder/status.js.map +1 -0
  441. package/dist/context-builder/storage.d.ts +118 -0
  442. package/dist/context-builder/storage.js +1003 -0
  443. package/dist/context-builder/storage.js.map +1 -0
  444. package/dist/context-builder/token-estimate.d.ts +19 -0
  445. package/dist/context-builder/token-estimate.js +90 -0
  446. package/dist/context-builder/token-estimate.js.map +1 -0
  447. package/dist/context-builder/versions.d.ts +29 -0
  448. package/dist/context-builder/versions.js +30 -0
  449. package/dist/context-builder/versions.js.map +1 -0
  450. package/dist/context-builder/workflow-runner.d.ts +69 -0
  451. package/dist/context-builder/workflow-runner.js +1051 -0
  452. package/dist/context-builder/workflow-runner.js.map +1 -0
  453. package/dist/context-builder/write-watchdog.d.ts +14 -0
  454. package/dist/context-builder/write-watchdog.js +38 -0
  455. package/dist/context-builder/write-watchdog.js.map +1 -0
  456. package/dist/dashboard-adapter-catalog.d.ts +9 -0
  457. package/dist/dashboard-adapter-catalog.js +46 -0
  458. package/dist/dashboard-adapter-catalog.js.map +1 -0
  459. package/dist/dashboard-cli.d.ts +79 -0
  460. package/dist/dashboard-cli.js +585 -0
  461. package/dist/dashboard-cli.js.map +1 -0
  462. package/dist/dashboard-companion/client.d.ts +36 -0
  463. package/dist/dashboard-companion/client.js +210 -0
  464. package/dist/dashboard-companion/client.js.map +1 -0
  465. package/dist/dashboard-companion/config.d.ts +8 -0
  466. package/dist/dashboard-companion/config.js +52 -0
  467. package/dist/dashboard-companion/config.js.map +1 -0
  468. package/dist/dashboard-companion/http-proxy.d.ts +10 -0
  469. package/dist/dashboard-companion/http-proxy.js +234 -0
  470. package/dist/dashboard-companion/http-proxy.js.map +1 -0
  471. package/dist/dashboard-companion/protocol.d.ts +80 -0
  472. package/dist/dashboard-companion/protocol.js +455 -0
  473. package/dist/dashboard-companion/protocol.js.map +1 -0
  474. package/dist/dashboard-companion/standalone-assets.d.ts +12 -0
  475. package/dist/dashboard-companion/standalone-assets.js +72 -0
  476. package/dist/dashboard-companion/standalone-assets.js.map +1 -0
  477. package/dist/dashboard-companion/standalone-entry.d.ts +1 -0
  478. package/dist/dashboard-companion/standalone-entry.js +17 -0
  479. package/dist/dashboard-companion/standalone-entry.js.map +1 -0
  480. package/dist/dashboard-gateway/config.d.ts +9 -0
  481. package/dist/dashboard-gateway/config.js +44 -0
  482. package/dist/dashboard-gateway/config.js.map +1 -0
  483. package/dist/dashboard-gateway/index.d.ts +11 -0
  484. package/dist/dashboard-gateway/index.js +755 -0
  485. package/dist/dashboard-gateway/index.js.map +1 -0
  486. package/dist/dashboard-gateway/main.d.ts +1 -0
  487. package/dist/dashboard-gateway/main.js +25 -0
  488. package/dist/dashboard-gateway/main.js.map +1 -0
  489. package/dist/dashboard-pairing-token.d.ts +1 -0
  490. package/dist/dashboard-pairing-token.js +5 -0
  491. package/dist/dashboard-pairing-token.js.map +1 -0
  492. package/dist/elaris/client.d.ts +73 -0
  493. package/dist/elaris/client.js +825 -0
  494. package/dist/elaris/client.js.map +1 -0
  495. package/dist/elaris/config.d.ts +18 -0
  496. package/dist/elaris/config.js +75 -0
  497. package/dist/elaris/config.js.map +1 -0
  498. package/dist/elaris/errors.d.ts +41 -0
  499. package/dist/elaris/errors.js +205 -0
  500. package/dist/elaris/errors.js.map +1 -0
  501. package/dist/elaris/github-repo.d.ts +18 -0
  502. package/dist/elaris/github-repo.js +89 -0
  503. package/dist/elaris/github-repo.js.map +1 -0
  504. package/dist/elaris/index.d.ts +10 -0
  505. package/dist/elaris/index.js +11 -0
  506. package/dist/elaris/index.js.map +1 -0
  507. package/dist/elaris/redact.d.ts +89 -0
  508. package/dist/elaris/redact.js +423 -0
  509. package/dist/elaris/redact.js.map +1 -0
  510. package/dist/elaris/run-id.d.ts +5 -0
  511. package/dist/elaris/run-id.js +20 -0
  512. package/dist/elaris/run-id.js.map +1 -0
  513. package/dist/elaris/status.d.ts +45 -0
  514. package/dist/elaris/status.js +122 -0
  515. package/dist/elaris/status.js.map +1 -0
  516. package/dist/elaris/tool-schemas.d.ts +314 -0
  517. package/dist/elaris/tool-schemas.js +208 -0
  518. package/dist/elaris/tool-schemas.js.map +1 -0
  519. package/dist/elaris/tools.d.ts +73 -0
  520. package/dist/elaris/tools.js +1065 -0
  521. package/dist/elaris/tools.js.map +1 -0
  522. package/dist/elaris/types.d.ts +1541 -0
  523. package/dist/elaris/types.js +252 -0
  524. package/dist/elaris/types.js.map +1 -0
  525. package/dist/errors.d.ts +16 -0
  526. package/dist/errors.js +19 -0
  527. package/dist/errors.js.map +1 -1
  528. package/dist/handler.d.ts +4 -0
  529. package/dist/handler.js +10 -1
  530. package/dist/handler.js.map +1 -1
  531. package/dist/index.d.ts +2 -1
  532. package/dist/index.js +13 -3
  533. package/dist/index.js.map +1 -1
  534. package/dist/local-clink-backend.d.ts +3 -0
  535. package/dist/local-clink-backend.js +4 -0
  536. package/dist/local-clink-backend.js.map +1 -1
  537. package/dist/package-info.d.ts +2 -0
  538. package/dist/package-info.js +18 -0
  539. package/dist/package-info.js.map +1 -0
  540. package/dist/parsers/codex-jsonl.js +48 -3
  541. package/dist/parsers/codex-jsonl.js.map +1 -1
  542. package/dist/parsers/extract.d.ts +10 -1
  543. package/dist/parsers/extract.js +11 -3
  544. package/dist/parsers/extract.js.map +1 -1
  545. package/dist/paths.d.ts +8 -0
  546. package/dist/paths.js +31 -43
  547. package/dist/paths.js.map +1 -1
  548. package/dist/pipeline.d.ts +51 -3
  549. package/dist/pipeline.js +264 -47
  550. package/dist/pipeline.js.map +1 -1
  551. package/dist/run-dir.d.ts +24 -0
  552. package/dist/run-dir.js +201 -2
  553. package/dist/run-dir.js.map +1 -1
  554. package/dist/runner.d.ts +13 -0
  555. package/dist/runner.js +184 -15
  556. package/dist/runner.js.map +1 -1
  557. package/dist/safety.d.ts +4 -4
  558. package/dist/safety.js +4 -4
  559. package/dist/schema.d.ts +7 -7
  560. package/dist/server.d.ts +2 -0
  561. package/dist/server.js +396 -24
  562. package/dist/server.js.map +1 -1
  563. package/dist/session-log-stream.d.ts +18 -0
  564. package/dist/session-log-stream.js +319 -0
  565. package/dist/session-log-stream.js.map +1 -0
  566. package/package.json +47 -5
  567. package/conf/adapters/gemini.json +0 -44
  568. package/conf/adapters/hapi/gemini.json +0 -47
  569. package/dist/artifacts.d.ts +0 -9
  570. package/dist/artifacts.js +0 -24
  571. package/dist/artifacts.js.map +0 -1
  572. package/dist/parsers/gemini-json.d.ts +0 -2
  573. package/dist/parsers/gemini-json.js +0 -72
  574. package/dist/parsers/gemini-json.js.map +0 -1
@@ -0,0 +1,316 @@
1
+ /**
2
+ * plan-review-receipts validator schemas (B-3).
3
+ *
4
+ * Two things are deliberately kept apart here:
5
+ *
6
+ * 1. The SEMANTIC body a reviewer model produces — `status`/`verdict`/`score`/
7
+ * `blockers`/`verification_gaps`/`findings`. Only these six fields are ever
8
+ * taken from the model.
9
+ * 2. The TRUSTED runtime identity/binding fields — `review_id`/`repository_id`/
10
+ * `iteration`/`plan_id`/`revision`/`digest`/`seat_id`/`reviewer`. These come
11
+ * from the admitted execution contract, never from model output. A model that
12
+ * echoes them (the reviewer template asks for a receipt-shaped body) has its
13
+ * echo stripped: the body schemas are non-strict `z.object()`, which drops
14
+ * unknown keys, so an echoed `seat_id`/`digest` cannot reach the candidate.
15
+ *
16
+ * The assembled candidate is then validated against the COMPILED Zod
17
+ * `review-receipt-v1` contract in `../plan-review/contract.js` (17 fields,
18
+ * `.strict()`). Runtime validation never loads the vendored JSON-schema
19
+ * fixtures — those are TEST-ONLY and prove the compiled Zod reproduces the
20
+ * external contract (P0-3).
21
+ */
22
+ import { z } from "zod";
23
+ import { ReviewReceiptV1Schema, } from "../plan-review/contract.js";
24
+ const receiptShape = ReviewReceiptV1Schema.shape;
25
+ /**
26
+ * Serialized byte ceilings for plan-review artifacts.
27
+ *
28
+ * These bound TRANSPORT. They are distinct from the envelope's own character
29
+ * bounds (chairman `synthesis` <= 65536 chars, `error.detail` <= 2048 chars,
30
+ * 1 MiB envelope-wide ceiling), which are enforced by the compiled contract.
31
+ * Whichever bound binds first fails the call closed — never truncation.
32
+ *
33
+ * The chairman ceiling is set to 4 * 65536 so an all-ASCII synthesis at the
34
+ * contract's character cap always fits; a pathological all-4-byte-codepoint
35
+ * synthesis at the cap is rejected by this byte ceiling instead.
36
+ */
37
+ export const PLAN_REVIEW_REVIEWER_MAX_BYTES = 50_000;
38
+ export const PLAN_REVIEW_CROSS_REVIEW_MAX_BYTES = 75_000;
39
+ export const PLAN_REVIEW_CHAIRMAN_MAX_BYTES = 262_144;
40
+ export const PLAN_REVIEW_RANKING_MAX_BYTES = 50_000;
41
+ /**
42
+ * The ranking artifact's ACTUAL worst-case size — not its validator ceiling.
43
+ *
44
+ * `PLAN_REVIEW_RANKING_MAX_BYTES` above is a ceiling on MODEL output, and every
45
+ * other artifact here is model-produced. The ranking artifact is not: it is
46
+ * emitted by the in-process deterministic reducer (`plan-review/ranking-reducer.ts`),
47
+ * which writes one `{candidate_id, borda_score, rank}` row per seat for at most
48
+ * 10 seats (`plan-review/contract.ts` caps the roster). Nothing model-authored
49
+ * reaches it, so its size is PROVABLE rather than merely bounded, and it cannot
50
+ * approach 50_000.
51
+ *
52
+ * A budget guard must use this bound, not the 50_000 ceiling: the loose number
53
+ * would reject rosters that dispatch runs comfortably, which would mean trading
54
+ * one unbacked figure for another.
55
+ */
56
+ export const PLAN_REVIEW_RANKING_REDUCER_MAX_BYTES = 4_096;
57
+ /** Envelope bound (P0-6): chairman synthesis is advisory and character-capped. */
58
+ export const PLAN_REVIEW_SYNTHESIS_MAX_CHARS = 65_536;
59
+ // ---------------------------------------------------------------------------
60
+ // Reviewer semantic body (plan_review_reviewer_v1)
61
+ // ---------------------------------------------------------------------------
62
+ /**
63
+ * The reviewer's semantic body. Field schemas are taken directly from the
64
+ * compiled `review-receipt-v1` contract, so the accepted value space cannot
65
+ * drift from the receipt the body is assembled into.
66
+ *
67
+ * Unknown keys (including echoed identity/bindings) are stripped, not rejected:
68
+ * the reviewer template asks for a receipt-shaped body, and an echoed binding is
69
+ * untrusted rather than fatal.
70
+ */
71
+ export const PlanReviewReviewerBodySchema = z.object({
72
+ status: receiptShape.status,
73
+ verdict: receiptShape.verdict,
74
+ score: receiptShape.score,
75
+ blockers: receiptShape.blockers,
76
+ verification_gaps: receiptShape.verification_gaps,
77
+ findings: receiptShape.findings,
78
+ });
79
+ /**
80
+ * Runtime-verified identity + plan bindings for one seat. Every field is
81
+ * sourced from the admitted execution contract (A-2/A-4) and the verified
82
+ * snapshot digest (A-6).
83
+ */
84
+ export const PlanReviewReceiptIdentitySchema = z
85
+ .object({
86
+ review_id: receiptShape.review_id,
87
+ repository_id: receiptShape.repository_id,
88
+ iteration: receiptShape.iteration,
89
+ plan_id: receiptShape.plan_id,
90
+ revision: receiptShape.revision,
91
+ digest: receiptShape.digest,
92
+ seat_id: receiptShape.seat_id,
93
+ reviewer: receiptShape.reviewer,
94
+ })
95
+ .strict();
96
+ /**
97
+ * Assemble one `review-receipt-v1` candidate from trusted runtime identity plus
98
+ * the model's semantic body, then validate the assembled object against the
99
+ * compiled contract.
100
+ *
101
+ * Throws `ZodError` if the body, the identity, or the assembled candidate fails
102
+ * validation. A caller projects that as a `schema_mismatch` seat error — never a
103
+ * repaired or fabricated receipt (D2/D3).
104
+ */
105
+ export function assemblePlanReviewReceiptCandidate(identity, reviewerBody) {
106
+ const boundIdentity = PlanReviewReceiptIdentitySchema.parse(identity);
107
+ const body = PlanReviewReviewerBodySchema.parse(reviewerBody);
108
+ return ReviewReceiptV1Schema.parse({
109
+ schema_version: "review-receipt-v1",
110
+ workspace_schema: "plan-workspace-v1",
111
+ digest_profile: "checkpoint-text-v1",
112
+ review_id: boundIdentity.review_id,
113
+ repository_id: boundIdentity.repository_id,
114
+ iteration: boundIdentity.iteration,
115
+ plan_id: boundIdentity.plan_id,
116
+ revision: boundIdentity.revision,
117
+ digest: boundIdentity.digest,
118
+ seat_id: boundIdentity.seat_id,
119
+ reviewer: boundIdentity.reviewer,
120
+ status: body.status,
121
+ verdict: body.verdict,
122
+ score: body.score,
123
+ blockers: body.blockers,
124
+ verification_gaps: body.verification_gaps,
125
+ findings: body.findings,
126
+ });
127
+ }
128
+ // ---------------------------------------------------------------------------
129
+ // Cross-review (plan_review_cross_review_v1)
130
+ // ---------------------------------------------------------------------------
131
+ /**
132
+ * Require ranking values to be exactly the permutation 1..N, where N is the
133
+ * ranking array's own length.
134
+ *
135
+ * Uniqueness alone admitted a sparse ranking — `[1, 5, 9]` for three peers —
136
+ * which the downstream Borda reducer reads positionally and would score as if
137
+ * ranks 2-4 and 6-8 named absent candidates. A dense permutation is the only
138
+ * shape that reducer can consume without inventing meaning for the gaps.
139
+ *
140
+ * Because the entry schema already pins each rank to an integer >= 1, N
141
+ * distinct ranks each <= N is precisely the permutation 1..N — no separate
142
+ * completeness pass is needed. An empty ranking is vacuously a permutation of
143
+ * the empty set, which preserves the degenerate no-op a peerless seat must emit.
144
+ */
145
+ function permutationRanks(entries, ctx) {
146
+ const seen = new Set();
147
+ for (const [index, entry] of entries.entries()) {
148
+ if (seen.has(entry.rank)) {
149
+ ctx.addIssue({
150
+ code: z.ZodIssueCode.custom,
151
+ message: `Duplicate rank ${String(entry.rank)} in ranking array`,
152
+ path: [index, "rank"],
153
+ });
154
+ }
155
+ seen.add(entry.rank);
156
+ if (entry.rank > entries.length) {
157
+ ctx.addIssue({
158
+ code: z.ZodIssueCode.custom,
159
+ message: `Rank ${String(entry.rank)} exceeds ranking length ${String(entries.length)}; ` +
160
+ `ranks must be exactly the permutation 1..${String(entries.length)} with no gaps`,
161
+ path: [index, "rank"],
162
+ });
163
+ }
164
+ }
165
+ }
166
+ /** Reject peer collections that assess the same anonymized candidate twice. */
167
+ function uniqueCandidates(entries, ctx) {
168
+ const seen = new Set();
169
+ for (const entry of entries) {
170
+ if (seen.has(entry.candidate_id)) {
171
+ ctx.addIssue({
172
+ code: z.ZodIssueCode.custom,
173
+ message: `Duplicate candidate_id ${entry.candidate_id}`,
174
+ });
175
+ }
176
+ seen.add(entry.candidate_id);
177
+ }
178
+ }
179
+ const PlanReviewPeerAssessmentSchema = z.object({
180
+ /** Run-global opaque peer alias — never a seat_id. */
181
+ candidate_id: z.string().min(1).max(64),
182
+ agreement_level: z.enum(["agree", "partial", "disagree"]),
183
+ disputed_blockers: z.array(z.string().min(1)).default([]),
184
+ missed_risks: z.array(z.string().min(1)).default([]),
185
+ comments: z.string().default(""),
186
+ /** Advisory only, on the plan-native 0-10 receipt scale. Cannot upgrade a candidate. */
187
+ assessment_score: receiptShape.score,
188
+ });
189
+ const PlanReviewRankingEntrySchema = z.object({
190
+ candidate_id: z.string().min(1).max(64),
191
+ rank: z.number().int().min(1),
192
+ rationale: z.string().default(""),
193
+ });
194
+ /**
195
+ * A cross-review call's output. Advisory only: it carries no verdict, no score
196
+ * override, and no receipt — a cross-review can never create, repair, or
197
+ * replace a `receipt_candidate` (D2).
198
+ *
199
+ * Every field admits its empty value because the frozen A-3 composition emits
200
+ * one cross-review call per roster seat UNCONDITIONALLY: a seat with no valid
201
+ * peer artifacts still runs and persists a degenerate no-op result (empty
202
+ * assessments, empty ranking). That no-op is a normal, recorded outcome, not a
203
+ * failure, so the schema must accept it.
204
+ *
205
+ * The three top-level fields are REQUIRED even though each admits its empty
206
+ * value. Defaulting them would make `{}` — and therefore any foreign artifact
207
+ * whose keys all get stripped, such as a reviewer body — parse as a legitimate
208
+ * degenerate no-op. The reducer must be able to tell "this seat had no peers"
209
+ * from "this is not a cross-review at all", so the empty no-op has to be stated
210
+ * explicitly.
211
+ */
212
+ export const PlanReviewCrossReviewOutputSchema = z.object({
213
+ independent_baseline: z.string(),
214
+ peer_assessments: z
215
+ .array(PlanReviewPeerAssessmentSchema)
216
+ .max(10)
217
+ .superRefine(uniqueCandidates),
218
+ ranking: z
219
+ .array(PlanReviewRankingEntrySchema)
220
+ .max(10)
221
+ .superRefine(permutationRanks),
222
+ });
223
+ // ---------------------------------------------------------------------------
224
+ // Chairman (plan_review_chairman_v1)
225
+ // ---------------------------------------------------------------------------
226
+ /**
227
+ * The chairman's advisory synthesis. It deliberately has NO verdict, status,
228
+ * score, or approval field: a chairman synthesis is never a final gate and
229
+ * never an approval (D2, `plan-final-gate-v1` is a separate external artifact).
230
+ *
231
+ * `synthesis` carries the envelope's character bound so an over-long synthesis
232
+ * fails the call rather than producing an envelope the contract rejects.
233
+ */
234
+ export const PlanReviewChairmanOutputSchema = z.object({
235
+ synthesis: z.string().min(1).max(PLAN_REVIEW_SYNTHESIS_MAX_CHARS),
236
+ agreements: z.array(z.string().min(1)).default([]),
237
+ disagreements: z.array(z.string().min(1)).default([]),
238
+ unresolved_blockers: z.array(z.string().min(1)).default([]),
239
+ });
240
+ // ---------------------------------------------------------------------------
241
+ // Ranking reducer output (plan_review_ranking_reducer_v1)
242
+ // ---------------------------------------------------------------------------
243
+ /**
244
+ * Output of the deterministic plan-review ranking reducer (B-5). Like the
245
+ * cross-review body it feeds on, it is advisory: no verdict, no receipt, no
246
+ * approval field.
247
+ *
248
+ * `participation` reports only what the reducer can actually observe — the
249
+ * cross-review artifacts handed to it. It does NOT claim roster totals: a
250
+ * failed cross-review call has no artifact, so the reducer cannot distinguish
251
+ * "not dispatched" from "failed". Roster-complete accounting is the projector's
252
+ * job (Track C), which reads persisted call state.
253
+ */
254
+ export const PlanReviewRankingReducerOutputSchema = z
255
+ .object({
256
+ schema_version: z.literal("plan-review-ranking-v1"),
257
+ consensus_ranking: z.array(z
258
+ .object({
259
+ candidate_id: z.string().min(1),
260
+ borda_score: z.number(),
261
+ rank: z.number().int().min(1),
262
+ })
263
+ .strict()),
264
+ score_summary: z.array(z
265
+ .object({
266
+ candidate_id: z.string().min(1),
267
+ mean_score: z.number(),
268
+ score_count: z.number().int().min(1),
269
+ spread: z.number(),
270
+ })
271
+ .strict()),
272
+ agreement_summary: z.array(z
273
+ .object({
274
+ candidate_id: z.string().min(1),
275
+ agree: z.number().int().min(0),
276
+ partial: z.number().int().min(0),
277
+ disagree: z.number().int().min(0),
278
+ })
279
+ .strict()),
280
+ participation: z
281
+ .object({
282
+ cross_reviews_present: z.number().int().min(0),
283
+ cross_reviews_with_rankings: z.number().int().min(0),
284
+ degenerate_no_op_cross_reviews: z.number().int().min(0),
285
+ cross_reviews_unreadable: z.number().int().min(0),
286
+ })
287
+ .strict(),
288
+ })
289
+ .strict();
290
+ // ---------------------------------------------------------------------------
291
+ // Registration
292
+ // ---------------------------------------------------------------------------
293
+ /** Register plan-review-receipts validator schemas. Called from the registry factory. */
294
+ export function registerPlanReviewValidators(registry) {
295
+ registry.register("plan_review_reviewer_v1", {
296
+ name: "Plan Review Reviewer Semantic Body v1",
297
+ schema: PlanReviewReviewerBodySchema,
298
+ maxBytes: PLAN_REVIEW_REVIEWER_MAX_BYTES,
299
+ });
300
+ registry.register("plan_review_cross_review_v1", {
301
+ name: "Plan Review Cross-Review Output v1",
302
+ schema: PlanReviewCrossReviewOutputSchema,
303
+ maxBytes: PLAN_REVIEW_CROSS_REVIEW_MAX_BYTES,
304
+ });
305
+ registry.register("plan_review_chairman_v1", {
306
+ name: "Plan Review Chairman Synthesis v1",
307
+ schema: PlanReviewChairmanOutputSchema,
308
+ maxBytes: PLAN_REVIEW_CHAIRMAN_MAX_BYTES,
309
+ });
310
+ registry.register("plan_review_ranking_reducer_v1", {
311
+ name: "Plan Review Ranking Reducer Output v1",
312
+ schema: PlanReviewRankingReducerOutputSchema,
313
+ maxBytes: PLAN_REVIEW_RANKING_MAX_BYTES,
314
+ });
315
+ }
316
+ //# sourceMappingURL=plan-review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-review.js","sourceRoot":"","sources":["../../src/validators/plan-review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,qBAAqB,GAEtB,MAAM,4BAA4B,CAAC;AAGpC,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAAC;AACrD,MAAM,CAAC,MAAM,kCAAkC,GAAG,MAAM,CAAC;AACzD,MAAM,CAAC,MAAM,8BAA8B,GAAG,OAAO,CAAC;AACtD,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC;AAEpD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG,KAAK,CAAC;AAE3D,kFAAkF;AAClF,MAAM,CAAC,MAAM,+BAA+B,GAAG,MAAM,CAAC;AAEtD,8EAA8E;AAC9E,mDAAmD;AACnD,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,MAAM,EAAE,YAAY,CAAC,MAAM;IAC3B,OAAO,EAAE,YAAY,CAAC,OAAO;IAC7B,KAAK,EAAE,YAAY,CAAC,KAAK;IACzB,QAAQ,EAAE,YAAY,CAAC,QAAQ;IAC/B,iBAAiB,EAAE,YAAY,CAAC,iBAAiB;IACjD,QAAQ,EAAE,YAAY,CAAC,QAAQ;CAChC,CAAC,CAAC;AAIH;;;;GAIG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC;KAC7C,MAAM,CAAC;IACN,SAAS,EAAE,YAAY,CAAC,SAAS;IACjC,aAAa,EAAE,YAAY,CAAC,aAAa;IACzC,SAAS,EAAE,YAAY,CAAC,SAAS;IACjC,OAAO,EAAE,YAAY,CAAC,OAAO;IAC7B,QAAQ,EAAE,YAAY,CAAC,QAAQ;IAC/B,MAAM,EAAE,YAAY,CAAC,MAAM;IAC3B,OAAO,EAAE,YAAY,CAAC,OAAO;IAC7B,QAAQ,EAAE,YAAY,CAAC,QAAQ;CAChC,CAAC;KACD,MAAM,EAAE,CAAC;AAMZ;;;;;;;;GAQG;AACH,MAAM,UAAU,kCAAkC,CAChD,QAAiB,EACjB,YAAqB;IAErB,MAAM,aAAa,GAAG,+BAA+B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,4BAA4B,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC9D,OAAO,qBAAqB,CAAC,KAAK,CAAC;QACjC,cAAc,EAAE,mBAAmB;QACnC,gBAAgB,EAAE,mBAAmB;QACrC,cAAc,EAAE,oBAAoB;QACpC,SAAS,EAAE,aAAa,CAAC,SAAS;QAClC,aAAa,EAAE,aAAa,CAAC,aAAa;QAC1C,SAAS,EAAE,aAAa,CAAC,SAAS;QAClC,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,QAAQ,EAAE,aAAa,CAAC,QAAQ;QAChC,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,QAAQ,EAAE,aAAa,CAAC,QAAQ;QAChC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,6CAA6C;AAC7C,8EAA8E;AAE9E;;;;;;;;;;;;;GAaG;AACH,SAAS,gBAAgB,CACvB,OAAoC,EACpC,GAAoB;IAEpB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC/C,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,kBAAkB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB;gBAChE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;aACtB,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAErB,IAAI,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAChC,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EACL,QAAQ,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI;oBAC/E,4CAA4C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe;gBACnF,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,SAAS,gBAAgB,CACvB,OAA4C,EAC5C,GAAoB;IAEpB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;gBAC3B,OAAO,EAAE,0BAA0B,KAAK,CAAC,YAAY,EAAE;aACxD,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,sDAAsD;IACtD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACvC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IACzD,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACzD,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAChC,wFAAwF;IACxF,gBAAgB,EAAE,YAAY,CAAC,KAAK;CACrC,CAAC,CAAC;AAEH,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAClC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE;IAChC,gBAAgB,EAAE,CAAC;SAChB,KAAK,CAAC,8BAA8B,CAAC;SACrC,GAAG,CAAC,EAAE,CAAC;SACP,WAAW,CAAC,gBAAgB,CAAC;IAChC,OAAO,EAAE,CAAC;SACP,KAAK,CAAC,4BAA4B,CAAC;SACnC,GAAG,CAAC,EAAE,CAAC;SACP,WAAW,CAAC,gBAAgB,CAAC;CACjC,CAAC,CAAC;AAMH,8EAA8E;AAC9E,qCAAqC;AACrC,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,+BAA+B,CAAC;IACjE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrD,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC5D,CAAC,CAAC;AAMH,8EAA8E;AAC9E,0DAA0D;AAC1D,8EAA8E;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC;KAClD,MAAM,CAAC;IACN,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;IACnD,iBAAiB,EAAE,CAAC,CAAC,KAAK,CACxB,CAAC;SACE,MAAM,CAAC;QACN,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9B,CAAC;SACD,MAAM,EAAE,CACZ;IACD,aAAa,EAAE,CAAC,CAAC,KAAK,CACpB,CAAC;SACE,MAAM,CAAC;QACN,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;KACnB,CAAC;SACD,MAAM,EAAE,CACZ;IACD,iBAAiB,EAAE,CAAC,CAAC,KAAK,CACxB,CAAC;SACE,MAAM,CAAC;QACN,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAClC,CAAC;SACD,MAAM,EAAE,CACZ;IACD,aAAa,EAAE,CAAC;SACb,MAAM,CAAC;QACN,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,2BAA2B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACpD,8BAA8B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAClD,CAAC;SACD,MAAM,EAAE;CACZ,CAAC;KACD,MAAM,EAAE,CAAC;AAMZ,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,yFAAyF;AACzF,MAAM,UAAU,4BAA4B,CAAC,QAA2B;IACtE,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,EAAE;QAC3C,IAAI,EAAE,uCAAuC;QAC7C,MAAM,EAAE,4BAA4B;QACpC,QAAQ,EAAE,8BAA8B;KACzC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC,6BAA6B,EAAE;QAC/C,IAAI,EAAE,oCAAoC;QAC1C,MAAM,EAAE,iCAAiC;QACzC,QAAQ,EAAE,kCAAkC;KAC7C,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,EAAE;QAC3C,IAAI,EAAE,mCAAmC;QACzC,MAAM,EAAE,8BAA8B;QACtC,QAAQ,EAAE,8BAA8B;KACzC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,CAAC,gCAAgC,EAAE;QAClD,IAAI,EAAE,uCAAuC;QAC7C,MAAM,EAAE,oCAAoC;QAC5C,QAAQ,EAAE,6BAA6B;KACxC,CAAC,CAAC;AACL,CAAC"}
@@ -12,8 +12,9 @@ export function renderWorkflowReceipt(summary) {
12
12
  ...summary.stages.map(renderStageLine),
13
13
  ];
14
14
  const cardSection = renderCardSection(summary.card);
15
+ const contextSection = renderContextSection(summary);
15
16
  const failureSection = renderFailureSection(summary);
16
- const composed = joinReceiptLines(prefixLines, cardSection.requiredLines, fitOptionalLines(prefixLines, cardSection.requiredLines, cardSection.optionalLines, failureSection.requiredLines), failureSection.requiredLines);
17
+ const composed = joinReceiptLines(prefixLines, cardSection.requiredLines, fitOptionalLines(prefixLines, cardSection.requiredLines, cardSection.optionalLines, failureSection.requiredLines, contextSection.requiredLines), failureSection.requiredLines, contextSection.requiredLines);
17
18
  if (composed.length <= RECEIPT_MAX_CHARS) {
18
19
  return composed;
19
20
  }
@@ -101,6 +102,26 @@ function renderCardSection(card) {
101
102
  ]),
102
103
  optionalLines: renderNumberedLines(card.topCaveats),
103
104
  };
105
+ case "council-plan-review":
106
+ // Two fixed-width lines, no per-seat detail: the receipt is an
107
+ // observability strip under a 1200-char cap, never the all-seat protocol.
108
+ // The full envelope is the sidecar fetched via workflow_run_status.
109
+ return {
110
+ requiredLines: [
111
+ joinParts([
112
+ `seats ${card.completedSeats}/${card.seatCount} completed`,
113
+ `failed: ${card.failedSeats}`,
114
+ `missing: ${card.missingSeats}`,
115
+ ]),
116
+ joinParts([
117
+ `execution: ${normalizeInlineText(card.executionStatus)}`,
118
+ `chairman: ${normalizeInlineText(card.chairmanStatus)}`,
119
+ `context: ${normalizeInlineText(card.contextStatus)}`,
120
+ `contract: ${normalizeInlineText(card.executionContractDigestPrefix)}`,
121
+ ]),
122
+ ],
123
+ optionalLines: [],
124
+ };
104
125
  case "generic":
105
126
  return { requiredLines: [], optionalLines: [] };
106
127
  }
@@ -118,10 +139,77 @@ function renderFailureSection(summary) {
118
139
  optionalLines: [],
119
140
  };
120
141
  }
121
- function fitOptionalLines(prefixLines, cardRequiredLines, cardOptionalLines, failureRequiredLines) {
142
+ function renderContextSection(summary) {
143
+ try {
144
+ const context = coerceContextBuilderMetadata(summary.workflowContext?.context_builder);
145
+ if (context == null) {
146
+ return { requiredLines: [], optionalLines: [] };
147
+ }
148
+ const lightCaller = coerceLightCallerProvenance(summary.workflowContext?.light_caller);
149
+ return {
150
+ requiredLines: [
151
+ "context: high-confidence-redacted; treat copied bundles as sensitive source code",
152
+ `context.source_run_id: ${normalizeInlineText(context.source_run_id)}`,
153
+ `context.source_artifact_dir: ${normalizeInlineText(context.source_artifact_dir)}`,
154
+ `context.cache: hit=${formatBoolean(context.cache.hit)} · write=${formatBoolean(context.cache.write)} · target_id=${formatNullableString(context.cache.target_id)} · key_prefix=${normalizeInlineText(context.cache.key_prefix)}`,
155
+ `context.status: ${context.status} · schema_version=${context.schema_version}`,
156
+ `context.metrics: ${renderMetrics(context.metrics)}`,
157
+ `context.counts: warning_count=${context.warning_count} · omission_count=${context.omission_count}`,
158
+ ...(lightCaller != null ? [renderLightCallerLine(lightCaller)] : []),
159
+ "context.copied_paths:",
160
+ ...context.copied_paths.map((path) => ` - ${normalizeInlineText(path)}`),
161
+ ],
162
+ optionalLines: [],
163
+ };
164
+ }
165
+ catch {
166
+ return { requiredLines: [], optionalLines: [] };
167
+ }
168
+ }
169
+ const LIGHT_CALLER_TERMS_MAX = 8;
170
+ // Clamp each shown term so one pathological long synthesized term cannot consume
171
+ // most of the 1200-char receipt budget before global truncation.
172
+ const LIGHT_CALLER_TERM_MAX_CHARS = 40;
173
+ function clampTerm(term) {
174
+ // Iterate by code point so the slice never splits a surrogate pair (astral
175
+ // chars like emoji) — splitting one would emit a lone/replacement surrogate.
176
+ // The whole-receipt truncator is likewise code-point based, so RECEIPT_MAX_CHARS
177
+ // is a code-point budget end to end.
178
+ const codePoints = Array.from(term);
179
+ return codePoints.length > LIGHT_CALLER_TERM_MAX_CHARS
180
+ ? codePoints.slice(0, LIGHT_CALLER_TERM_MAX_CHARS - 1).join("") + "…"
181
+ : term;
182
+ }
183
+ function renderLightCallerLine(provenance) {
184
+ const shown = provenance.synthesized_search_terms.slice(0, LIGHT_CALLER_TERMS_MAX);
185
+ const overflow = provenance.synthesized_search_terms.length - shown.length;
186
+ const terms = shown.map((term) => clampTerm(normalizeInlineText(term))).join(", ");
187
+ const termsRendered = overflow > 0 ? `${terms}, +${overflow} more` : terms;
188
+ return `context.light_caller: anchor_source=${provenance.anchor_source} · root_wide_used=${formatBoolean(provenance.root_wide_used)} · synthesized_search_terms=[${termsRendered}]`;
189
+ }
190
+ function coerceLightCallerProvenance(value) {
191
+ if (!isRecord(value)) {
192
+ return undefined;
193
+ }
194
+ const anchorSource = value["anchor_source"];
195
+ const rootWideUsed = value["root_wide_used"];
196
+ const synthesizedSearchTerms = value["synthesized_search_terms"];
197
+ if (!(anchorSource === "caller" || anchorSource === "synthesized") ||
198
+ typeof rootWideUsed !== "boolean" ||
199
+ !Array.isArray(synthesizedSearchTerms) ||
200
+ !synthesizedSearchTerms.every((term) => typeof term === "string")) {
201
+ return undefined;
202
+ }
203
+ return {
204
+ anchor_source: anchorSource,
205
+ root_wide_used: rootWideUsed,
206
+ synthesized_search_terms: synthesizedSearchTerms,
207
+ };
208
+ }
209
+ function fitOptionalLines(prefixLines, cardRequiredLines, cardOptionalLines, failureRequiredLines, contextRequiredLines) {
122
210
  const chosen = [];
123
211
  for (const line of cardOptionalLines) {
124
- const candidate = joinReceiptLines(prefixLines, cardRequiredLines, [...chosen, line], failureRequiredLines);
212
+ const candidate = joinReceiptLines(prefixLines, cardRequiredLines, [...chosen, line], failureRequiredLines, contextRequiredLines);
125
213
  if (candidate.length > RECEIPT_MAX_CHARS) {
126
214
  break;
127
215
  }
@@ -129,7 +217,7 @@ function fitOptionalLines(prefixLines, cardRequiredLines, cardOptionalLines, fai
129
217
  }
130
218
  return chosen;
131
219
  }
132
- function joinReceiptLines(prefixLines, cardRequiredLines, cardOptionalLines, failureRequiredLines) {
220
+ function joinReceiptLines(prefixLines, cardRequiredLines, cardOptionalLines, failureRequiredLines, contextRequiredLines) {
133
221
  const lines = [...prefixLines];
134
222
  if (cardRequiredLines.length > 0 || cardOptionalLines.length > 0) {
135
223
  lines.push("");
@@ -140,6 +228,10 @@ function joinReceiptLines(prefixLines, cardRequiredLines, cardOptionalLines, fai
140
228
  lines.push("");
141
229
  lines.push(...failureRequiredLines);
142
230
  }
231
+ if (contextRequiredLines.length > 0) {
232
+ lines.push("");
233
+ lines.push(...contextRequiredLines);
234
+ }
143
235
  return lines.join("\n");
144
236
  }
145
237
  function renderNumberedLines(items) {
@@ -163,6 +255,98 @@ function joinParts(parts) {
163
255
  function compactLines(lines) {
164
256
  return lines.filter((line) => line != null && line.length > 0);
165
257
  }
258
+ function coerceContextBuilderMetadata(value) {
259
+ if (!isRecord(value)) {
260
+ return undefined;
261
+ }
262
+ const cache = value["cache"];
263
+ const metrics = value["metrics"];
264
+ const copiedPaths = value["copied_paths"];
265
+ if (!isRecord(cache) || !isRecord(metrics) || !Array.isArray(copiedPaths)) {
266
+ return undefined;
267
+ }
268
+ const sourceRunId = value["source_run_id"];
269
+ const sourceArtifactDir = value["source_artifact_dir"];
270
+ const cacheHit = cache["hit"];
271
+ const cacheWrite = cache["write"];
272
+ const cacheTargetId = cache["target_id"];
273
+ const cacheKeyPrefix = cache["key_prefix"];
274
+ const schemaVersion = value["schema_version"];
275
+ const status = value["status"];
276
+ const warningCount = value["warning_count"];
277
+ const omissionCount = value["omission_count"];
278
+ if (typeof sourceRunId !== "string" ||
279
+ typeof sourceArtifactDir !== "string" ||
280
+ typeof cacheHit !== "boolean" ||
281
+ typeof cacheWrite !== "boolean" ||
282
+ !(typeof cacheTargetId === "string" || cacheTargetId === null) ||
283
+ typeof cacheKeyPrefix !== "string" ||
284
+ typeof schemaVersion !== "number" ||
285
+ !(status === "succeeded" || status === "partial") ||
286
+ typeof warningCount !== "number" ||
287
+ typeof omissionCount !== "number" ||
288
+ !copiedPaths.every((path) => typeof path === "string") ||
289
+ !hasContextMetrics(metrics)) {
290
+ return undefined;
291
+ }
292
+ return {
293
+ source_run_id: sourceRunId,
294
+ source_artifact_dir: sourceArtifactDir,
295
+ cache: {
296
+ hit: cacheHit,
297
+ write: cacheWrite,
298
+ target_id: cacheTargetId,
299
+ key_prefix: cacheKeyPrefix,
300
+ },
301
+ schema_version: schemaVersion,
302
+ status,
303
+ copied_paths: copiedPaths,
304
+ metrics: metrics,
305
+ warning_count: warningCount,
306
+ omission_count: omissionCount,
307
+ };
308
+ }
309
+ function hasContextMetrics(value) {
310
+ return (typeof value["files_seen"] === "number" &&
311
+ typeof value["files_considered"] === "number" &&
312
+ typeof value["files_selected"] === "number" &&
313
+ typeof value["files_omitted"] === "number" &&
314
+ typeof value["scan_cap_hit"] === "boolean" &&
315
+ typeof value["search_cap_hit"] === "boolean" &&
316
+ typeof value["discovery_byte_cap_hit"] === "boolean" &&
317
+ typeof value["discovery_candidate_cap_hit"] === "boolean" &&
318
+ typeof value["candidate_cap_hit"] === "boolean" &&
319
+ typeof value["bytes_read"] === "number" &&
320
+ typeof value["bytes_written"] === "number" &&
321
+ typeof value["estimated_tokens"] === "number" &&
322
+ typeof value["truncated"] === "boolean");
323
+ }
324
+ function renderMetrics(metrics) {
325
+ return [
326
+ `files_seen=${metrics.files_seen}`,
327
+ `files_considered=${metrics.files_considered}`,
328
+ `files_selected=${metrics.files_selected}`,
329
+ `files_omitted=${metrics.files_omitted}`,
330
+ `bytes_read=${metrics.bytes_read}`,
331
+ `bytes_written=${metrics.bytes_written}`,
332
+ `estimated_tokens=${metrics.estimated_tokens}`,
333
+ `truncated=${formatBoolean(metrics.truncated)}`,
334
+ `scan_cap_hit=${formatBoolean(metrics.scan_cap_hit)}`,
335
+ `search_cap_hit=${formatBoolean(metrics.search_cap_hit)}`,
336
+ `discovery_byte_cap_hit=${formatBoolean(metrics.discovery_byte_cap_hit)}`,
337
+ `discovery_candidate_cap_hit=${formatBoolean(metrics.discovery_candidate_cap_hit)}`,
338
+ `candidate_cap_hit=${formatBoolean(metrics.candidate_cap_hit)}`,
339
+ ].join(" · ");
340
+ }
341
+ function formatBoolean(value) {
342
+ return value ? "true" : "false";
343
+ }
344
+ function formatNullableString(value) {
345
+ return value === null ? "null" : normalizeInlineText(value);
346
+ }
347
+ function isRecord(value) {
348
+ return typeof value === "object" && value !== null;
349
+ }
166
350
  function diffSeconds(startedAt, completedAt) {
167
351
  const started = Date.parse(startedAt);
168
352
  const completed = Date.parse(completedAt);
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-receipt.js","sourceRoot":"","sources":["../src/workflow-receipt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-receipt.js","sourceRoot":"","sources":["../src/workflow-receipt.ts"],"names":[],"mappings":"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"}