clinkx 0.3.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (669) hide show
  1. package/CHANGELOG.md +119 -0
  2. package/LICENSE +10 -0
  3. package/README.md +154 -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/chairman-knobs.d.ts +24 -0
  12. package/clinkx-workflows/dist/chairman-knobs.js +27 -0
  13. package/clinkx-workflows/dist/chairman-knobs.js.map +1 -0
  14. package/clinkx-workflows/dist/citation-check.d.ts +40 -0
  15. package/clinkx-workflows/dist/citation-check.js +348 -0
  16. package/clinkx-workflows/dist/citation-check.js.map +1 -0
  17. package/clinkx-workflows/dist/clink-client.d.ts +12 -1
  18. package/clinkx-workflows/dist/clink-client.js +56 -5
  19. package/clinkx-workflows/dist/clink-client.js.map +1 -1
  20. package/clinkx-workflows/dist/config.d.ts +173 -16
  21. package/clinkx-workflows/dist/config.js +417 -26
  22. package/clinkx-workflows/dist/config.js.map +1 -1
  23. package/clinkx-workflows/dist/contained-file.d.ts +172 -0
  24. package/clinkx-workflows/dist/contained-file.js +483 -0
  25. package/clinkx-workflows/dist/contained-file.js.map +1 -0
  26. package/clinkx-workflows/dist/context-builder-lifecycle-contract.d.ts +416 -0
  27. package/clinkx-workflows/dist/context-builder-lifecycle-contract.js +328 -0
  28. package/clinkx-workflows/dist/context-builder-lifecycle-contract.js.map +1 -0
  29. package/clinkx-workflows/dist/context-builder-lifecycle-router.d.ts +24 -0
  30. package/clinkx-workflows/dist/context-builder-lifecycle-router.js +39 -0
  31. package/clinkx-workflows/dist/context-builder-lifecycle-router.js.map +1 -0
  32. package/clinkx-workflows/dist/context-cache-key.d.ts +53 -0
  33. package/clinkx-workflows/dist/context-cache-key.js +91 -0
  34. package/clinkx-workflows/dist/context-cache-key.js.map +1 -0
  35. package/clinkx-workflows/dist/context-mode-resolver.d.ts +27 -0
  36. package/clinkx-workflows/dist/context-mode-resolver.js +126 -0
  37. package/clinkx-workflows/dist/context-mode-resolver.js.map +1 -0
  38. package/clinkx-workflows/dist/context-preflight.d.ts +189 -0
  39. package/clinkx-workflows/dist/context-preflight.js +91 -0
  40. package/clinkx-workflows/dist/context-preflight.js.map +1 -0
  41. package/clinkx-workflows/dist/council-execution-policy.d.ts +68 -0
  42. package/clinkx-workflows/dist/council-execution-policy.js +110 -0
  43. package/clinkx-workflows/dist/council-execution-policy.js.map +1 -0
  44. package/clinkx-workflows/dist/council-expander.d.ts +10 -9
  45. package/clinkx-workflows/dist/council-expander.js +20 -10
  46. package/clinkx-workflows/dist/council-expander.js.map +1 -1
  47. package/clinkx-workflows/dist/dashboard/activity-contract.d.ts +5718 -0
  48. package/clinkx-workflows/dist/dashboard/activity-contract.js +157 -0
  49. package/clinkx-workflows/dist/dashboard/activity-contract.js.map +1 -0
  50. package/clinkx-workflows/dist/dashboard/activity-lease.d.ts +25 -0
  51. package/clinkx-workflows/dist/dashboard/activity-lease.js +34 -0
  52. package/clinkx-workflows/dist/dashboard/activity-lease.js.map +1 -0
  53. package/clinkx-workflows/dist/dashboard/activity-reader.d.ts +90 -0
  54. package/clinkx-workflows/dist/dashboard/activity-reader.js +493 -0
  55. package/clinkx-workflows/dist/dashboard/activity-reader.js.map +1 -0
  56. package/clinkx-workflows/dist/dashboard/api-routes.d.ts +40 -0
  57. package/clinkx-workflows/dist/dashboard/api-routes.js +1155 -0
  58. package/clinkx-workflows/dist/dashboard/api-routes.js.map +1 -0
  59. package/clinkx-workflows/dist/dashboard/artifact-index.d.ts +37 -0
  60. package/clinkx-workflows/dist/dashboard/artifact-index.js +145 -0
  61. package/clinkx-workflows/dist/dashboard/artifact-index.js.map +1 -0
  62. package/clinkx-workflows/dist/dashboard/auth/challenge-store.d.ts +31 -0
  63. package/clinkx-workflows/dist/dashboard/auth/challenge-store.js +65 -0
  64. package/clinkx-workflows/dist/dashboard/auth/challenge-store.js.map +1 -0
  65. package/clinkx-workflows/dist/dashboard/auth/controller.d.ts +26 -0
  66. package/clinkx-workflows/dist/dashboard/auth/controller.js +596 -0
  67. package/clinkx-workflows/dist/dashboard/auth/controller.js.map +1 -0
  68. package/clinkx-workflows/dist/dashboard/auth/credential-store.d.ts +60 -0
  69. package/clinkx-workflows/dist/dashboard/auth/credential-store.js +776 -0
  70. package/clinkx-workflows/dist/dashboard/auth/credential-store.js.map +1 -0
  71. package/clinkx-workflows/dist/dashboard/auth/enrollment-gate.d.ts +9 -0
  72. package/clinkx-workflows/dist/dashboard/auth/enrollment-gate.js +44 -0
  73. package/clinkx-workflows/dist/dashboard/auth/enrollment-gate.js.map +1 -0
  74. package/clinkx-workflows/dist/dashboard/auth/session-store.d.ts +17 -0
  75. package/clinkx-workflows/dist/dashboard/auth/session-store.js +77 -0
  76. package/clinkx-workflows/dist/dashboard/auth/session-store.js.map +1 -0
  77. package/clinkx-workflows/dist/dashboard/auth/webauthn-service.d.ts +25 -0
  78. package/clinkx-workflows/dist/dashboard/auth/webauthn-service.js +71 -0
  79. package/clinkx-workflows/dist/dashboard/auth/webauthn-service.js.map +1 -0
  80. package/clinkx-workflows/dist/dashboard/context-builder-invocation-contract.d.ts +3865 -0
  81. package/clinkx-workflows/dist/dashboard/context-builder-invocation-contract.js +69 -0
  82. package/clinkx-workflows/dist/dashboard/context-builder-invocation-contract.js.map +1 -0
  83. package/clinkx-workflows/dist/dashboard/context-run-liveness.d.ts +37 -0
  84. package/clinkx-workflows/dist/dashboard/context-run-liveness.js +49 -0
  85. package/clinkx-workflows/dist/dashboard/context-run-liveness.js.map +1 -0
  86. package/clinkx-workflows/dist/dashboard/context-run-reader.d.ts +256 -0
  87. package/clinkx-workflows/dist/dashboard/context-run-reader.js +1301 -0
  88. package/clinkx-workflows/dist/dashboard/context-run-reader.js.map +1 -0
  89. package/clinkx-workflows/dist/dashboard/contracts.d.ts +28483 -0
  90. package/clinkx-workflows/dist/dashboard/contracts.js +1284 -0
  91. package/clinkx-workflows/dist/dashboard/contracts.js.map +1 -0
  92. package/clinkx-workflows/dist/dashboard/generation.d.ts +14 -0
  93. package/clinkx-workflows/dist/dashboard/generation.js +41 -0
  94. package/clinkx-workflows/dist/dashboard/generation.js.map +1 -0
  95. package/clinkx-workflows/dist/dashboard/index.d.ts +32 -0
  96. package/clinkx-workflows/dist/dashboard/index.js +20 -0
  97. package/clinkx-workflows/dist/dashboard/index.js.map +1 -0
  98. package/clinkx-workflows/dist/dashboard/invocation-contract.d.ts +786 -0
  99. package/clinkx-workflows/dist/dashboard/invocation-contract.js +201 -0
  100. package/clinkx-workflows/dist/dashboard/invocation-contract.js.map +1 -0
  101. package/clinkx-workflows/dist/dashboard/lazy-content.d.ts +114 -0
  102. package/clinkx-workflows/dist/dashboard/lazy-content.js +799 -0
  103. package/clinkx-workflows/dist/dashboard/lazy-content.js.map +1 -0
  104. package/clinkx-workflows/dist/dashboard/native-transcript/contract.d.ts +90 -0
  105. package/clinkx-workflows/dist/dashboard/native-transcript/contract.js +31 -0
  106. package/clinkx-workflows/dist/dashboard/native-transcript/contract.js.map +1 -0
  107. package/clinkx-workflows/dist/dashboard/native-transcript/projection.d.ts +12 -0
  108. package/clinkx-workflows/dist/dashboard/native-transcript/projection.js +286 -0
  109. package/clinkx-workflows/dist/dashboard/native-transcript/projection.js.map +1 -0
  110. package/clinkx-workflows/dist/dashboard/progress-report-contract.d.ts +446 -0
  111. package/clinkx-workflows/dist/dashboard/progress-report-contract.js +221 -0
  112. package/clinkx-workflows/dist/dashboard/progress-report-contract.js.map +1 -0
  113. package/clinkx-workflows/dist/dashboard/progress-report-reader.d.ts +50 -0
  114. package/clinkx-workflows/dist/dashboard/progress-report-reader.js +529 -0
  115. package/clinkx-workflows/dist/dashboard/progress-report-reader.js.map +1 -0
  116. package/clinkx-workflows/dist/dashboard/progress-report-status-overlay.d.ts +89 -0
  117. package/clinkx-workflows/dist/dashboard/progress-report-status-overlay.js +71 -0
  118. package/clinkx-workflows/dist/dashboard/progress-report-status-overlay.js.map +1 -0
  119. package/clinkx-workflows/dist/dashboard/progress-report-status-store.d.ts +29 -0
  120. package/clinkx-workflows/dist/dashboard/progress-report-status-store.js +111 -0
  121. package/clinkx-workflows/dist/dashboard/progress-report-status-store.js.map +1 -0
  122. package/clinkx-workflows/dist/dashboard/prompt-builder-library-contract.d.ts +194 -0
  123. package/clinkx-workflows/dist/dashboard/prompt-builder-library-contract.js +89 -0
  124. package/clinkx-workflows/dist/dashboard/prompt-builder-library-contract.js.map +1 -0
  125. package/clinkx-workflows/dist/dashboard/prompt-builder-library-store.d.ts +26 -0
  126. package/clinkx-workflows/dist/dashboard/prompt-builder-library-store.js +102 -0
  127. package/clinkx-workflows/dist/dashboard/prompt-builder-library-store.js.map +1 -0
  128. package/clinkx-workflows/dist/dashboard/read-model.d.ts +86 -0
  129. package/clinkx-workflows/dist/dashboard/read-model.js +440 -0
  130. package/clinkx-workflows/dist/dashboard/read-model.js.map +1 -0
  131. package/clinkx-workflows/dist/dashboard/request-admission.d.ts +31 -0
  132. package/clinkx-workflows/dist/dashboard/request-admission.js +130 -0
  133. package/clinkx-workflows/dist/dashboard/request-admission.js.map +1 -0
  134. package/clinkx-workflows/dist/dashboard/scanner.d.ts +78 -0
  135. package/clinkx-workflows/dist/dashboard/scanner.js +1154 -0
  136. package/clinkx-workflows/dist/dashboard/scanner.js.map +1 -0
  137. package/clinkx-workflows/dist/dashboard/server-factory.d.ts +63 -0
  138. package/clinkx-workflows/dist/dashboard/server-factory.js +483 -0
  139. package/clinkx-workflows/dist/dashboard/server-factory.js.map +1 -0
  140. package/clinkx-workflows/dist/dashboard/session-log-contract.d.ts +2778 -0
  141. package/clinkx-workflows/dist/dashboard/session-log-contract.js +506 -0
  142. package/clinkx-workflows/dist/dashboard/session-log-contract.js.map +1 -0
  143. package/clinkx-workflows/dist/dashboard/session-log-identity.d.ts +21 -0
  144. package/clinkx-workflows/dist/dashboard/session-log-identity.js +101 -0
  145. package/clinkx-workflows/dist/dashboard/session-log-identity.js.map +1 -0
  146. package/clinkx-workflows/dist/dashboard/session-log-journal.d.ts +43 -0
  147. package/clinkx-workflows/dist/dashboard/session-log-journal.js +529 -0
  148. package/clinkx-workflows/dist/dashboard/session-log-journal.js.map +1 -0
  149. package/clinkx-workflows/dist/dashboard/session-log-reader.d.ts +61 -0
  150. package/clinkx-workflows/dist/dashboard/session-log-reader.js +378 -0
  151. package/clinkx-workflows/dist/dashboard/session-log-reader.js.map +1 -0
  152. package/clinkx-workflows/dist/dashboard/session-log-redaction.d.ts +14 -0
  153. package/clinkx-workflows/dist/dashboard/session-log-redaction.js +1101 -0
  154. package/clinkx-workflows/dist/dashboard/session-log-redaction.js.map +1 -0
  155. package/clinkx-workflows/dist/dashboard/session-log-retention.d.ts +23 -0
  156. package/clinkx-workflows/dist/dashboard/session-log-retention.js +212 -0
  157. package/clinkx-workflows/dist/dashboard/session-log-retention.js.map +1 -0
  158. package/clinkx-workflows/dist/dashboard/static-responses.d.ts +10 -0
  159. package/clinkx-workflows/dist/dashboard/static-responses.js +94 -0
  160. package/clinkx-workflows/dist/dashboard/static-responses.js.map +1 -0
  161. package/clinkx-workflows/dist/dashboard/worker-lock-observer.d.ts +28 -0
  162. package/clinkx-workflows/dist/dashboard/worker-lock-observer.js +241 -0
  163. package/clinkx-workflows/dist/dashboard/worker-lock-observer.js.map +1 -0
  164. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
  165. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
  166. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff +0 -0
  167. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2 +0 -0
  168. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2 +0 -0
  169. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff +0 -0
  170. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2 +0 -0
  171. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff +0 -0
  172. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff +0 -0
  173. package/clinkx-workflows/dist/dashboard-ui/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2 +0 -0
  174. package/clinkx-workflows/dist/dashboard-ui/assets/index-JPHQVtn9.js +106 -0
  175. package/clinkx-workflows/dist/dashboard-ui/assets/jetbrains-mono-latin-400-normal-6-qcROiO.woff +0 -0
  176. package/clinkx-workflows/dist/dashboard-ui/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2 +0 -0
  177. package/clinkx-workflows/dist/dashboard-ui/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2 +0 -0
  178. package/clinkx-workflows/dist/dashboard-ui/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff +0 -0
  179. package/clinkx-workflows/dist/dashboard-ui/assets/style-DOMHk-j6.css +1 -0
  180. package/clinkx-workflows/dist/dashboard-ui/contracts/council-plan-review-input-v1.json +158 -0
  181. package/clinkx-workflows/dist/dashboard-ui/index.html +15 -0
  182. package/clinkx-workflows/dist/dashboard-ui/licenses/IBM-Plex-Mono-OFL.txt +93 -0
  183. package/clinkx-workflows/dist/dashboard-ui/licenses/IBM-Plex-Sans-OFL.txt +93 -0
  184. package/clinkx-workflows/dist/dashboard-ui/licenses/JetBrains-Mono-OFL.txt +93 -0
  185. package/clinkx-workflows/dist/dashboard-ui/licenses/NOTICE.md +32 -0
  186. package/clinkx-workflows/dist/dashboard-ui/theme-init.js +8 -0
  187. package/clinkx-workflows/dist/definition-normalizer.d.ts +19 -0
  188. package/clinkx-workflows/dist/definition-normalizer.js.map +1 -1
  189. package/clinkx-workflows/dist/delegate-finalizer-policy.d.ts +26 -0
  190. package/clinkx-workflows/dist/delegate-finalizer-policy.js +72 -0
  191. package/clinkx-workflows/dist/delegate-finalizer-policy.js.map +1 -0
  192. package/clinkx-workflows/dist/delegate-signature.d.ts +14 -0
  193. package/clinkx-workflows/dist/delegate-signature.js +14 -0
  194. package/clinkx-workflows/dist/delegate-signature.js.map +1 -0
  195. package/clinkx-workflows/dist/delegate-validate.d.ts +108 -0
  196. package/clinkx-workflows/dist/delegate-validate.js +148 -0
  197. package/clinkx-workflows/dist/delegate-validate.js.map +1 -0
  198. package/clinkx-workflows/dist/engine.d.ts +251 -0
  199. package/clinkx-workflows/dist/engine.js +1342 -92
  200. package/clinkx-workflows/dist/engine.js.map +1 -1
  201. package/clinkx-workflows/dist/errors.d.ts +24 -2
  202. package/clinkx-workflows/dist/errors.js +30 -2
  203. package/clinkx-workflows/dist/errors.js.map +1 -1
  204. package/clinkx-workflows/dist/fidelity.d.ts +47 -1
  205. package/clinkx-workflows/dist/fidelity.js +54 -1
  206. package/clinkx-workflows/dist/fidelity.js.map +1 -1
  207. package/clinkx-workflows/dist/fingerprint.d.ts +25 -7
  208. package/clinkx-workflows/dist/fingerprint.js +33 -10
  209. package/clinkx-workflows/dist/fingerprint.js.map +1 -1
  210. package/clinkx-workflows/dist/index.d.ts +19 -0
  211. package/clinkx-workflows/dist/index.js +68 -1
  212. package/clinkx-workflows/dist/index.js.map +1 -1
  213. package/clinkx-workflows/dist/loader.d.ts +9 -3
  214. package/clinkx-workflows/dist/loader.js +92 -21
  215. package/clinkx-workflows/dist/loader.js.map +1 -1
  216. package/clinkx-workflows/dist/logger.d.ts +1 -1
  217. package/clinkx-workflows/dist/logger.js +17 -3
  218. package/clinkx-workflows/dist/logger.js.map +1 -1
  219. package/clinkx-workflows/dist/monotonic-clock.d.ts +19 -0
  220. package/clinkx-workflows/dist/monotonic-clock.js +22 -0
  221. package/clinkx-workflows/dist/monotonic-clock.js.map +1 -0
  222. package/clinkx-workflows/dist/plan-review/admission.d.ts +160 -0
  223. package/clinkx-workflows/dist/plan-review/admission.js +290 -0
  224. package/clinkx-workflows/dist/plan-review/admission.js.map +1 -0
  225. package/clinkx-workflows/dist/plan-review/context-policy.d.ts +55 -0
  226. package/clinkx-workflows/dist/plan-review/context-policy.js +146 -0
  227. package/clinkx-workflows/dist/plan-review/context-policy.js.map +1 -0
  228. package/clinkx-workflows/dist/plan-review/contract.d.ts +763 -0
  229. package/clinkx-workflows/dist/plan-review/contract.js +289 -0
  230. package/clinkx-workflows/dist/plan-review/contract.js.map +1 -0
  231. package/clinkx-workflows/dist/plan-review/digest.d.ts +68 -0
  232. package/clinkx-workflows/dist/plan-review/digest.js +241 -0
  233. package/clinkx-workflows/dist/plan-review/digest.js.map +1 -0
  234. package/clinkx-workflows/dist/plan-review/discovery.d.ts +45 -0
  235. package/clinkx-workflows/dist/plan-review/discovery.js +36 -0
  236. package/clinkx-workflows/dist/plan-review/discovery.js.map +1 -0
  237. package/clinkx-workflows/dist/plan-review/execution-contract.d.ts +298 -0
  238. package/clinkx-workflows/dist/plan-review/execution-contract.js +194 -0
  239. package/clinkx-workflows/dist/plan-review/execution-contract.js.map +1 -0
  240. package/clinkx-workflows/dist/plan-review/expander.d.ts +48 -0
  241. package/clinkx-workflows/dist/plan-review/expander.js +243 -0
  242. package/clinkx-workflows/dist/plan-review/expander.js.map +1 -0
  243. package/clinkx-workflows/dist/plan-review/projector.d.ts +126 -0
  244. package/clinkx-workflows/dist/plan-review/projector.js +437 -0
  245. package/clinkx-workflows/dist/plan-review/projector.js.map +1 -0
  246. package/clinkx-workflows/dist/plan-review/publication.d.ts +95 -0
  247. package/clinkx-workflows/dist/plan-review/publication.js +182 -0
  248. package/clinkx-workflows/dist/plan-review/publication.js.map +1 -0
  249. package/clinkx-workflows/dist/plan-review/ranking-reducer.d.ts +34 -0
  250. package/clinkx-workflows/dist/plan-review/ranking-reducer.js +139 -0
  251. package/clinkx-workflows/dist/plan-review/ranking-reducer.js.map +1 -0
  252. package/clinkx-workflows/dist/plan-review/resume.d.ts +38 -0
  253. package/clinkx-workflows/dist/plan-review/resume.js +122 -0
  254. package/clinkx-workflows/dist/plan-review/resume.js.map +1 -0
  255. package/clinkx-workflows/dist/plan-review/rubric.d.ts +7 -0
  256. package/clinkx-workflows/dist/plan-review/rubric.js +24 -0
  257. package/clinkx-workflows/dist/plan-review/rubric.js.map +1 -0
  258. package/clinkx-workflows/dist/plan-review/run-state.d.ts +398 -0
  259. package/clinkx-workflows/dist/plan-review/run-state.js +183 -0
  260. package/clinkx-workflows/dist/plan-review/run-state.js.map +1 -0
  261. package/clinkx-workflows/dist/plan-review/runtime-policy.d.ts +74 -0
  262. package/clinkx-workflows/dist/plan-review/runtime-policy.js +186 -0
  263. package/clinkx-workflows/dist/plan-review/runtime-policy.js.map +1 -0
  264. package/clinkx-workflows/dist/plan-review/snapshot.d.ts +81 -0
  265. package/clinkx-workflows/dist/plan-review/snapshot.js +170 -0
  266. package/clinkx-workflows/dist/plan-review/snapshot.js.map +1 -0
  267. package/clinkx-workflows/dist/plan-review/stage-error.d.ts +19 -0
  268. package/clinkx-workflows/dist/plan-review/stage-error.js +20 -0
  269. package/clinkx-workflows/dist/plan-review/stage-error.js.map +1 -0
  270. package/clinkx-workflows/dist/post-processors/index.d.ts +20 -0
  271. package/clinkx-workflows/dist/post-processors/index.js +21 -0
  272. package/clinkx-workflows/dist/post-processors/index.js.map +1 -0
  273. package/clinkx-workflows/dist/prompt-budget.d.ts +7 -0
  274. package/clinkx-workflows/dist/prompt-budget.js +7 -1
  275. package/clinkx-workflows/dist/prompt-budget.js.map +1 -1
  276. package/clinkx-workflows/dist/reducers/index.js +2 -0
  277. package/clinkx-workflows/dist/reducers/index.js.map +1 -1
  278. package/clinkx-workflows/dist/roster-contract.d.ts +889 -0
  279. package/clinkx-workflows/dist/roster-contract.js +180 -0
  280. package/clinkx-workflows/dist/roster-contract.js.map +1 -0
  281. package/clinkx-workflows/dist/rosters.d.ts +14 -0
  282. package/clinkx-workflows/dist/rosters.js +169 -0
  283. package/clinkx-workflows/dist/rosters.js.map +1 -0
  284. package/clinkx-workflows/dist/run-health.d.ts +7 -0
  285. package/clinkx-workflows/dist/run-health.js +25 -0
  286. package/clinkx-workflows/dist/run-health.js.map +1 -0
  287. package/clinkx-workflows/dist/run-lock-heartbeat.d.ts +2 -0
  288. package/clinkx-workflows/dist/run-lock-heartbeat.js +3 -0
  289. package/clinkx-workflows/dist/run-lock-heartbeat.js.map +1 -0
  290. package/clinkx-workflows/dist/run-summary/cards/council-plan-review.d.ts +34 -0
  291. package/clinkx-workflows/dist/run-summary/cards/council-plan-review.js +74 -0
  292. package/clinkx-workflows/dist/run-summary/cards/council-plan-review.js.map +1 -0
  293. package/clinkx-workflows/dist/run-summary/cards/index.js +5 -0
  294. package/clinkx-workflows/dist/run-summary/cards/index.js.map +1 -1
  295. package/clinkx-workflows/dist/run-summary.d.ts +13 -0
  296. package/clinkx-workflows/dist/run-summary.js +29 -1
  297. package/clinkx-workflows/dist/run-summary.js.map +1 -1
  298. package/clinkx-workflows/dist/schema.d.ts +140 -21
  299. package/clinkx-workflows/dist/schema.js +34 -1
  300. package/clinkx-workflows/dist/schema.js.map +1 -1
  301. package/clinkx-workflows/dist/seed-terms.d.ts +30 -0
  302. package/clinkx-workflows/dist/seed-terms.js +176 -0
  303. package/clinkx-workflows/dist/seed-terms.js.map +1 -0
  304. package/clinkx-workflows/dist/server.d.ts +5 -2
  305. package/clinkx-workflows/dist/server.js +84 -52
  306. package/clinkx-workflows/dist/server.js.map +1 -1
  307. package/clinkx-workflows/dist/shutdown.d.ts +29 -18
  308. package/clinkx-workflows/dist/shutdown.js +90 -64
  309. package/clinkx-workflows/dist/shutdown.js.map +1 -1
  310. package/clinkx-workflows/dist/state-schema.d.ts +61 -0
  311. package/clinkx-workflows/dist/state.d.ts +175 -3
  312. package/clinkx-workflows/dist/state.js +1398 -44
  313. package/clinkx-workflows/dist/state.js.map +1 -1
  314. package/clinkx-workflows/dist/stdio-watchdog.d.ts +52 -0
  315. package/clinkx-workflows/dist/stdio-watchdog.js +212 -0
  316. package/clinkx-workflows/dist/stdio-watchdog.js.map +1 -0
  317. package/clinkx-workflows/dist/transport.d.ts +15 -0
  318. package/clinkx-workflows/dist/transport.js +19 -10
  319. package/clinkx-workflows/dist/transport.js.map +1 -1
  320. package/clinkx-workflows/dist/types.d.ts +20 -2
  321. package/clinkx-workflows/dist/validators/council.d.ts +334 -101
  322. package/clinkx-workflows/dist/validators/council.js +52 -13
  323. package/clinkx-workflows/dist/validators/council.js.map +1 -1
  324. package/clinkx-workflows/dist/validators/index.d.ts +1 -0
  325. package/clinkx-workflows/dist/validators/index.js +3 -0
  326. package/clinkx-workflows/dist/validators/index.js.map +1 -1
  327. package/clinkx-workflows/dist/validators/plan-review.d.ts +398 -0
  328. package/clinkx-workflows/dist/validators/plan-review.js +316 -0
  329. package/clinkx-workflows/dist/validators/plan-review.js.map +1 -0
  330. package/clinkx-workflows/dist/workflow-receipt.js +188 -4
  331. package/clinkx-workflows/dist/workflow-receipt.js.map +1 -1
  332. package/clinkx-workflows/dist/workflow-tools.d.ts +118 -3
  333. package/clinkx-workflows/dist/workflow-tools.js +2110 -175
  334. package/clinkx-workflows/dist/workflow-tools.js.map +1 -1
  335. package/clinkx-workflows/dist/workspace-signature.d.ts +16 -0
  336. package/clinkx-workflows/dist/workspace-signature.js +388 -0
  337. package/clinkx-workflows/dist/workspace-signature.js.map +1 -0
  338. package/clinkx-workflows/templates/council/answer-chairman.txt +3 -0
  339. package/clinkx-workflows/templates/council/answer-cross-reviewer.txt +3 -0
  340. package/clinkx-workflows/templates/council/answer-specialist.txt +5 -1
  341. package/clinkx-workflows/templates/council/chairman.txt +3 -0
  342. package/clinkx-workflows/templates/council/code-review-chairman.txt +16 -0
  343. package/clinkx-workflows/templates/council/code-review-cross-reviewer.txt +7 -1
  344. package/clinkx-workflows/templates/council/code-review-reviewer.txt +22 -3
  345. package/clinkx-workflows/templates/council/debug-chairman.txt +3 -0
  346. package/clinkx-workflows/templates/council/debug-cross-reviewer.txt +3 -0
  347. package/clinkx-workflows/templates/council/debug-debugger.txt +5 -1
  348. package/clinkx-workflows/templates/council/discover-analyst.txt +5 -1
  349. package/clinkx-workflows/templates/council/discover-chairman.txt +3 -0
  350. package/clinkx-workflows/templates/council/discover-cross-reviewer.txt +3 -0
  351. package/clinkx-workflows/templates/council/member.txt +5 -1
  352. package/clinkx-workflows/templates/council/plan-review-chairman.txt +71 -0
  353. package/clinkx-workflows/templates/council/plan-review-cross-reviewer.txt +54 -0
  354. package/clinkx-workflows/templates/council/plan-review-reviewer.txt +63 -0
  355. package/clinkx-workflows/templates/council/reviewer.txt +3 -0
  356. package/clinkx-workflows/templates/plan-review/chairman.txt +48 -0
  357. package/clinkx-workflows/templates/plan-review/cross-review.txt +52 -0
  358. package/clinkx-workflows/templates/plan-review/ranking.txt +16 -0
  359. package/clinkx-workflows/templates/plan-review/reviewer.txt +57 -0
  360. package/clinkx-workflows/workflows/council-answer.yaml +100 -8
  361. package/clinkx-workflows/workflows/council-code-review.yaml +106 -8
  362. package/clinkx-workflows/workflows/council-debug.yaml +100 -8
  363. package/clinkx-workflows/workflows/council-default.yaml +104 -8
  364. package/clinkx-workflows/workflows/council-discover.yaml +100 -8
  365. package/clinkx-workflows/workflows/council-plan-review.yaml +253 -0
  366. package/clinkx-workflows/workflows/plan-review-receipts.yaml +230 -0
  367. package/conf/adapters/agy.json +56 -0
  368. package/conf/adapters/claude.json +12 -0
  369. package/conf/adapters/codex-app-server.json +44 -0
  370. package/conf/adapters/codex.json +14 -2
  371. package/conf/adapters/glm.json +24 -3
  372. package/conf/adapters/grok.json +67 -0
  373. package/conf/adapters/hapi/agy.json +59 -0
  374. package/conf/adapters/hapi/claude.json +12 -0
  375. package/conf/adapters/hapi/codex.json +14 -2
  376. package/conf/adapters/hapi/glm.json +25 -4
  377. package/conf/rosters/default-council.json +21 -0
  378. package/dist/activity-journal.d.ts +56 -0
  379. package/dist/activity-journal.js +706 -0
  380. package/dist/activity-journal.js.map +1 -0
  381. package/dist/allowed-roots.d.ts +41 -0
  382. package/dist/allowed-roots.js +125 -3
  383. package/dist/allowed-roots.js.map +1 -1
  384. package/dist/codex/activity-session-log.d.ts +14 -0
  385. package/dist/codex/activity-session-log.js +206 -0
  386. package/dist/codex/activity-session-log.js.map +1 -0
  387. package/dist/codex/agent-tools.d.ts +23 -0
  388. package/dist/codex/agent-tools.js +1306 -0
  389. package/dist/codex/agent-tools.js.map +1 -0
  390. package/dist/codex/app-server-client.d.ts +79 -0
  391. package/dist/codex/app-server-client.js +593 -0
  392. package/dist/codex/app-server-client.js.map +1 -0
  393. package/dist/codex/app-server-registry.d.ts +407 -0
  394. package/dist/codex/app-server-registry.js +1493 -0
  395. package/dist/codex/app-server-registry.js.map +1 -0
  396. package/dist/codex/client-types.d.ts +115 -0
  397. package/dist/codex/client-types.js +2 -0
  398. package/dist/codex/client-types.js.map +1 -0
  399. package/dist/codex/protocol.d.ts +5375 -0
  400. package/dist/codex/protocol.js +614 -0
  401. package/dist/codex/protocol.js.map +1 -0
  402. package/dist/codex/session.d.ts +263 -0
  403. package/dist/codex/session.js +466 -0
  404. package/dist/codex/session.js.map +1 -0
  405. package/dist/config.d.ts +386 -23
  406. package/dist/config.js +184 -15
  407. package/dist/config.js.map +1 -1
  408. package/dist/context-builder/anchors.d.ts +1 -0
  409. package/dist/context-builder/anchors.js +3 -0
  410. package/dist/context-builder/anchors.js.map +1 -1
  411. package/dist/context-builder/bundle.d.ts +48 -2
  412. package/dist/context-builder/bundle.js +388 -2417
  413. package/dist/context-builder/bundle.js.map +1 -1
  414. package/dist/context-builder/codemap.d.ts +5 -0
  415. package/dist/context-builder/codemap.js +387 -13
  416. package/dist/context-builder/codemap.js.map +1 -1
  417. package/dist/context-builder/config.d.ts +1 -0
  418. package/dist/context-builder/config.js +12 -0
  419. package/dist/context-builder/config.js.map +1 -1
  420. package/dist/context-builder/context-run-catalog.d.ts +17 -0
  421. package/dist/context-builder/context-run-catalog.js +99 -0
  422. package/dist/context-builder/context-run-catalog.js.map +1 -0
  423. package/dist/context-builder/delegate-finalizer-effective.d.ts +33 -0
  424. package/dist/context-builder/delegate-finalizer-effective.js +82 -0
  425. package/dist/context-builder/delegate-finalizer-effective.js.map +1 -0
  426. package/dist/context-builder/delegate-packet.d.ts +55 -0
  427. package/dist/context-builder/delegate-packet.js +430 -74
  428. package/dist/context-builder/delegate-packet.js.map +1 -1
  429. package/dist/context-builder/delegate-reconstruction.d.ts +29 -0
  430. package/dist/context-builder/delegate-reconstruction.js +110 -41
  431. package/dist/context-builder/delegate-reconstruction.js.map +1 -1
  432. package/dist/context-builder/delegate-validation.d.ts +41 -1
  433. package/dist/context-builder/delegate-validation.js +237 -48
  434. package/dist/context-builder/delegate-validation.js.map +1 -1
  435. package/dist/context-builder/delegate.d.ts +11 -0
  436. package/dist/context-builder/delegate.js +210 -58
  437. package/dist/context-builder/delegate.js.map +1 -1
  438. package/dist/context-builder/diagnostics.d.ts +11 -2
  439. package/dist/context-builder/diagnostics.js +39 -6
  440. package/dist/context-builder/diagnostics.js.map +1 -1
  441. package/dist/context-builder/discovery-progress.d.ts +25 -0
  442. package/dist/context-builder/discovery-progress.js +64 -0
  443. package/dist/context-builder/discovery-progress.js.map +1 -0
  444. package/dist/context-builder/discovery-watchdog.d.ts +15 -0
  445. package/dist/context-builder/discovery-watchdog.js +39 -0
  446. package/dist/context-builder/discovery-watchdog.js.map +1 -0
  447. package/dist/context-builder/discovery.d.ts +36 -1
  448. package/dist/context-builder/discovery.js +584 -172
  449. package/dist/context-builder/discovery.js.map +1 -1
  450. package/dist/context-builder/external-gaps.d.ts +73 -0
  451. package/dist/context-builder/external-gaps.js +248 -0
  452. package/dist/context-builder/external-gaps.js.map +1 -0
  453. package/dist/context-builder/globs.d.ts +1 -0
  454. package/dist/context-builder/globs.js +25 -10
  455. package/dist/context-builder/globs.js.map +1 -1
  456. package/dist/context-builder/handler.d.ts +67 -2
  457. package/dist/context-builder/handler.js +1810 -2440
  458. package/dist/context-builder/handler.js.map +1 -1
  459. package/dist/context-builder/invocation-sidecar.d.ts +41 -0
  460. package/dist/context-builder/invocation-sidecar.js +189 -0
  461. package/dist/context-builder/invocation-sidecar.js.map +1 -0
  462. package/dist/context-builder/lifecycle-contract.d.ts +424 -0
  463. package/dist/context-builder/lifecycle-contract.js +523 -0
  464. package/dist/context-builder/lifecycle-contract.js.map +1 -0
  465. package/dist/context-builder/lifecycle-journal.d.ts +62 -0
  466. package/dist/context-builder/lifecycle-journal.js +88 -0
  467. package/dist/context-builder/lifecycle-journal.js.map +1 -0
  468. package/dist/context-builder/lifecycle-observer.d.ts +102 -0
  469. package/dist/context-builder/lifecycle-observer.js +258 -0
  470. package/dist/context-builder/lifecycle-observer.js.map +1 -0
  471. package/dist/context-builder/lifecycle-reconcile.d.ts +32 -0
  472. package/dist/context-builder/lifecycle-reconcile.js +191 -0
  473. package/dist/context-builder/lifecycle-reconcile.js.map +1 -0
  474. package/dist/context-builder/lifecycle-recovery.d.ts +2 -0
  475. package/dist/context-builder/lifecycle-recovery.js +14 -0
  476. package/dist/context-builder/lifecycle-recovery.js.map +1 -0
  477. package/dist/context-builder/mutation-lock.d.ts +32 -0
  478. package/dist/context-builder/mutation-lock.js +321 -0
  479. package/dist/context-builder/mutation-lock.js.map +1 -0
  480. package/dist/context-builder/path-signals.js +9 -5
  481. package/dist/context-builder/path-signals.js.map +1 -1
  482. package/dist/context-builder/progress.d.ts +3 -1
  483. package/dist/context-builder/progress.js +23 -0
  484. package/dist/context-builder/progress.js.map +1 -1
  485. package/dist/context-builder/receipt.d.ts +6 -4
  486. package/dist/context-builder/receipt.js +12 -1
  487. package/dist/context-builder/receipt.js.map +1 -1
  488. package/dist/context-builder/refine-handler.d.ts +14 -0
  489. package/dist/context-builder/refine-handler.js +790 -0
  490. package/dist/context-builder/refine-handler.js.map +1 -0
  491. package/dist/context-builder/review-coverage.d.ts +116 -0
  492. package/dist/context-builder/review-coverage.js +544 -0
  493. package/dist/context-builder/review-coverage.js.map +1 -0
  494. package/dist/context-builder/schema.d.ts +315 -2
  495. package/dist/context-builder/schema.js +133 -7
  496. package/dist/context-builder/schema.js.map +1 -1
  497. package/dist/context-builder/secrets.d.ts +59 -0
  498. package/dist/context-builder/secrets.js +2255 -44
  499. package/dist/context-builder/secrets.js.map +1 -1
  500. package/dist/context-builder/selection.d.ts +7 -3
  501. package/dist/context-builder/selection.js +200 -738
  502. package/dist/context-builder/selection.js.map +1 -1
  503. package/dist/context-builder/session-log-identity.d.ts +1 -0
  504. package/dist/context-builder/session-log-identity.js +66 -0
  505. package/dist/context-builder/session-log-identity.js.map +1 -0
  506. package/dist/context-builder/slice-range-math.d.ts +16 -0
  507. package/dist/context-builder/slice-range-math.js +137 -0
  508. package/dist/context-builder/slice-range-math.js.map +1 -0
  509. package/dist/context-builder/status.d.ts +23 -2
  510. package/dist/context-builder/status.js +60 -4
  511. package/dist/context-builder/status.js.map +1 -1
  512. package/dist/context-builder/storage.d.ts +59 -2
  513. package/dist/context-builder/storage.js +500 -168
  514. package/dist/context-builder/storage.js.map +1 -1
  515. package/dist/context-builder/token-estimate.d.ts +13 -2
  516. package/dist/context-builder/token-estimate.js +77 -4
  517. package/dist/context-builder/token-estimate.js.map +1 -1
  518. package/dist/context-builder/versions.d.ts +44 -0
  519. package/dist/context-builder/versions.js +45 -0
  520. package/dist/context-builder/versions.js.map +1 -0
  521. package/dist/context-builder/workflow-runner.d.ts +75 -0
  522. package/dist/context-builder/workflow-runner.js +1241 -0
  523. package/dist/context-builder/workflow-runner.js.map +1 -0
  524. package/dist/context-builder/write-watchdog.d.ts +14 -0
  525. package/dist/context-builder/write-watchdog.js +38 -0
  526. package/dist/context-builder/write-watchdog.js.map +1 -0
  527. package/dist/dashboard-adapter-catalog.d.ts +9 -0
  528. package/dist/dashboard-adapter-catalog.js +53 -0
  529. package/dist/dashboard-adapter-catalog.js.map +1 -0
  530. package/dist/dashboard-cli.d.ts +81 -0
  531. package/dist/dashboard-cli.js +623 -0
  532. package/dist/dashboard-cli.js.map +1 -0
  533. package/dist/dashboard-companion/client.d.ts +37 -0
  534. package/dist/dashboard-companion/client.js +229 -0
  535. package/dist/dashboard-companion/client.js.map +1 -0
  536. package/dist/dashboard-companion/config.d.ts +8 -0
  537. package/dist/dashboard-companion/config.js +52 -0
  538. package/dist/dashboard-companion/config.js.map +1 -0
  539. package/dist/dashboard-companion/http-proxy.d.ts +10 -0
  540. package/dist/dashboard-companion/http-proxy.js +234 -0
  541. package/dist/dashboard-companion/http-proxy.js.map +1 -0
  542. package/dist/dashboard-companion/protocol.d.ts +80 -0
  543. package/dist/dashboard-companion/protocol.js +458 -0
  544. package/dist/dashboard-companion/protocol.js.map +1 -0
  545. package/dist/dashboard-companion/standalone-assets.d.ts +12 -0
  546. package/dist/dashboard-companion/standalone-assets.js +72 -0
  547. package/dist/dashboard-companion/standalone-assets.js.map +1 -0
  548. package/dist/dashboard-companion/standalone-entry.d.ts +1 -0
  549. package/dist/dashboard-companion/standalone-entry.js +17 -0
  550. package/dist/dashboard-companion/standalone-entry.js.map +1 -0
  551. package/dist/dashboard-gateway/config.d.ts +9 -0
  552. package/dist/dashboard-gateway/config.js +44 -0
  553. package/dist/dashboard-gateway/config.js.map +1 -0
  554. package/dist/dashboard-gateway/index.d.ts +12 -0
  555. package/dist/dashboard-gateway/index.js +786 -0
  556. package/dist/dashboard-gateway/index.js.map +1 -0
  557. package/dist/dashboard-gateway/main.d.ts +1 -0
  558. package/dist/dashboard-gateway/main.js +25 -0
  559. package/dist/dashboard-gateway/main.js.map +1 -0
  560. package/dist/dashboard-pairing-token.d.ts +1 -0
  561. package/dist/dashboard-pairing-token.js +5 -0
  562. package/dist/dashboard-pairing-token.js.map +1 -0
  563. package/dist/elaris/client.d.ts +73 -0
  564. package/dist/elaris/client.js +825 -0
  565. package/dist/elaris/client.js.map +1 -0
  566. package/dist/elaris/config.d.ts +18 -0
  567. package/dist/elaris/config.js +75 -0
  568. package/dist/elaris/config.js.map +1 -0
  569. package/dist/elaris/errors.d.ts +41 -0
  570. package/dist/elaris/errors.js +205 -0
  571. package/dist/elaris/errors.js.map +1 -0
  572. package/dist/elaris/github-repo.d.ts +18 -0
  573. package/dist/elaris/github-repo.js +89 -0
  574. package/dist/elaris/github-repo.js.map +1 -0
  575. package/dist/elaris/index.d.ts +10 -0
  576. package/dist/elaris/index.js +11 -0
  577. package/dist/elaris/index.js.map +1 -0
  578. package/dist/elaris/redact.d.ts +89 -0
  579. package/dist/elaris/redact.js +423 -0
  580. package/dist/elaris/redact.js.map +1 -0
  581. package/dist/elaris/run-id.d.ts +5 -0
  582. package/dist/elaris/run-id.js +20 -0
  583. package/dist/elaris/run-id.js.map +1 -0
  584. package/dist/elaris/status.d.ts +45 -0
  585. package/dist/elaris/status.js +122 -0
  586. package/dist/elaris/status.js.map +1 -0
  587. package/dist/elaris/tool-schemas.d.ts +314 -0
  588. package/dist/elaris/tool-schemas.js +208 -0
  589. package/dist/elaris/tool-schemas.js.map +1 -0
  590. package/dist/elaris/tools.d.ts +73 -0
  591. package/dist/elaris/tools.js +1065 -0
  592. package/dist/elaris/tools.js.map +1 -0
  593. package/dist/elaris/types.d.ts +1541 -0
  594. package/dist/elaris/types.js +252 -0
  595. package/dist/elaris/types.js.map +1 -0
  596. package/dist/errors.d.ts +16 -0
  597. package/dist/errors.js +19 -0
  598. package/dist/errors.js.map +1 -1
  599. package/dist/handler.d.ts +4 -0
  600. package/dist/handler.js +15 -2
  601. package/dist/handler.js.map +1 -1
  602. package/dist/index.d.ts +20 -2
  603. package/dist/index.js +154 -6
  604. package/dist/index.js.map +1 -1
  605. package/dist/local-clink-backend.d.ts +3 -0
  606. package/dist/local-clink-backend.js +4 -0
  607. package/dist/local-clink-backend.js.map +1 -1
  608. package/dist/logger.d.ts +1 -1
  609. package/dist/logger.js +18 -3
  610. package/dist/logger.js.map +1 -1
  611. package/dist/package-info.d.ts +2 -0
  612. package/dist/package-info.js +18 -0
  613. package/dist/package-info.js.map +1 -0
  614. package/dist/parsers/agy-stream-json.d.ts +14 -0
  615. package/dist/parsers/agy-stream-json.js +172 -0
  616. package/dist/parsers/agy-stream-json.js.map +1 -0
  617. package/dist/parsers/codex-jsonl.js +48 -3
  618. package/dist/parsers/codex-jsonl.js.map +1 -1
  619. package/dist/parsers/extract.d.ts +10 -1
  620. package/dist/parsers/extract.js +16 -4
  621. package/dist/parsers/extract.js.map +1 -1
  622. package/dist/parsers/observed-invocation.d.ts +20 -0
  623. package/dist/parsers/observed-invocation.js +42 -0
  624. package/dist/parsers/observed-invocation.js.map +1 -0
  625. package/dist/pipeline.d.ts +17 -0
  626. package/dist/pipeline.js +181 -10
  627. package/dist/pipeline.js.map +1 -1
  628. package/dist/progress-report/lock.d.ts +74 -0
  629. package/dist/progress-report/lock.js +343 -0
  630. package/dist/progress-report/lock.js.map +1 -0
  631. package/dist/progress-report/schema.d.ts +808 -0
  632. package/dist/progress-report/schema.js +119 -0
  633. package/dist/progress-report/schema.js.map +1 -0
  634. package/dist/progress-report/store.d.ts +66 -0
  635. package/dist/progress-report/store.js +766 -0
  636. package/dist/progress-report/store.js.map +1 -0
  637. package/dist/progress-report/tools.d.ts +20 -0
  638. package/dist/progress-report/tools.js +141 -0
  639. package/dist/progress-report/tools.js.map +1 -0
  640. package/dist/prompt-mode.d.ts +1 -1
  641. package/dist/prompt-mode.js +7 -2
  642. package/dist/prompt-mode.js.map +1 -1
  643. package/dist/run-dir.d.ts +24 -0
  644. package/dist/run-dir.js +201 -2
  645. package/dist/run-dir.js.map +1 -1
  646. package/dist/runner.d.ts +20 -0
  647. package/dist/runner.js +192 -16
  648. package/dist/runner.js.map +1 -1
  649. package/dist/safety.d.ts +54 -4
  650. package/dist/safety.js +186 -5
  651. package/dist/safety.js.map +1 -1
  652. package/dist/schema.d.ts +15 -7
  653. package/dist/schema.js +20 -0
  654. package/dist/schema.js.map +1 -1
  655. package/dist/server.d.ts +7 -1
  656. package/dist/server.js +451 -23
  657. package/dist/server.js.map +1 -1
  658. package/dist/session-log-stream.d.ts +18 -0
  659. package/dist/session-log-stream.js +566 -0
  660. package/dist/session-log-stream.js.map +1 -0
  661. package/dist/stdio-activity.d.ts +28 -0
  662. package/dist/stdio-activity.js +72 -0
  663. package/dist/stdio-activity.js.map +1 -0
  664. package/package.json +47 -5
  665. package/conf/adapters/gemini.json +0 -44
  666. package/conf/adapters/hapi/gemini.json +0 -47
  667. package/dist/parsers/gemini-json.d.ts +0 -2
  668. package/dist/parsers/gemini-json.js +0 -72
  669. package/dist/parsers/gemini-json.js.map +0 -1
@@ -0,0 +1,126 @@
1
+ import { getWorkflowsContextDefaultCurator } from "./config.js";
2
+ import { asPreflightDelegateInput, isWorkflowDelegateAbsent, parseWorkflowDelegateInput, } from "./delegate-validate.js";
3
+ export class WorkflowContextModeResolverError extends Error {
4
+ constructor(message) {
5
+ super(message);
6
+ this.name = "WorkflowContextModeResolverError";
7
+ }
8
+ }
9
+ export function resolveWorkflowContextMode(callerValue, contextDefault, preflightEnabled, callerDelegate, defaultCurator) {
10
+ if (!preflightEnabled) {
11
+ return {
12
+ requestedMode: contextDefault,
13
+ effectiveMode: "disabled",
14
+ preflightDisabled: true,
15
+ };
16
+ }
17
+ const requestedMode = resolveRequestedMode(callerValue, contextDefault);
18
+ if (isWorkflowDelegateAbsent(callerDelegate)) {
19
+ if (requestedMode === "full") {
20
+ return {
21
+ requestedMode,
22
+ effectiveMode: "full",
23
+ effectiveDelegate: makeDefaultFullDelegate(defaultCurator),
24
+ preflightDisabled: false,
25
+ };
26
+ }
27
+ return {
28
+ requestedMode,
29
+ effectiveMode: requestedMode,
30
+ preflightDisabled: false,
31
+ };
32
+ }
33
+ const delegate = parseWorkflowDelegateInput(callerDelegate);
34
+ if (requestedMode === "off") {
35
+ return {
36
+ requestedMode,
37
+ effectiveMode: "off",
38
+ preflightDisabled: false,
39
+ };
40
+ }
41
+ if (delegate.enabled !== true) {
42
+ return {
43
+ requestedMode,
44
+ effectiveMode: requestedMode === "full" ? "deterministic" : requestedMode,
45
+ preflightDisabled: false,
46
+ };
47
+ }
48
+ if (requestedMode === "deterministic") {
49
+ throw new WorkflowContextModeResolverError("cb_delegate with enabled:true requires cb_context_mode full; deterministic mode does not run delegates.");
50
+ }
51
+ return {
52
+ requestedMode,
53
+ effectiveMode: "full",
54
+ effectiveDelegate: asPreflightDelegateInput(delegate),
55
+ preflightDisabled: false,
56
+ };
57
+ }
58
+ function resolveRequestedMode(callerValue, contextDefault) {
59
+ if (callerValue == null) {
60
+ return contextDefault;
61
+ }
62
+ if (typeof callerValue !== "string") {
63
+ throw new WorkflowContextModeResolverError(`cb_context_mode must be one of full, deterministic, off, inherit; got ${typeof callerValue}`);
64
+ }
65
+ const normalized = callerValue.trim();
66
+ if (normalized === "" || normalized === "inherit") {
67
+ return contextDefault;
68
+ }
69
+ if (normalized === "full" ||
70
+ normalized === "deterministic" ||
71
+ normalized === "off") {
72
+ return normalized;
73
+ }
74
+ throw new WorkflowContextModeResolverError(`Invalid cb_context_mode "${normalized}"; expected full, deterministic, off, or inherit.`);
75
+ }
76
+ export const DEFAULT_FULL_DELEGATE_FINALIZER_CLI = "codex";
77
+ export const DEFAULT_FULL_DELEGATE_PROVIDER_ROLE = "json";
78
+ const DEFAULT_FULL_DELEGATE_FINALIZER_MIN_SCORE = 8.5;
79
+ /**
80
+ * The single structural source of truth for the providers the default full
81
+ * delegate injects. Both {@link makeDefaultFullDelegate} (what runs) and
82
+ * {@link defaultFullDelegateProviders} (what startup validates) derive from this
83
+ * array, so cli_name/role can never drift between injected and validated shapes.
84
+ */
85
+ function defaultFullDelegateDescriptors(defaultCurator) {
86
+ return [
87
+ {
88
+ label: "curator",
89
+ cli_name: defaultCurator ?? getWorkflowsContextDefaultCurator(),
90
+ role: DEFAULT_FULL_DELEGATE_PROVIDER_ROLE,
91
+ },
92
+ {
93
+ label: "finalizer",
94
+ cli_name: DEFAULT_FULL_DELEGATE_FINALIZER_CLI,
95
+ role: DEFAULT_FULL_DELEGATE_PROVIDER_ROLE,
96
+ },
97
+ ];
98
+ }
99
+ /**
100
+ * The enabled providers injected by {@link makeDefaultFullDelegate}, as a single
101
+ * source of truth so startup validation cannot drift from what is actually
102
+ * injected at runtime. Each entry is `{ label, cli_name, role }`.
103
+ */
104
+ export function defaultFullDelegateProviders(defaultCurator) {
105
+ return defaultFullDelegateDescriptors(defaultCurator);
106
+ }
107
+ export function makeDefaultFullDelegate(defaultCurator) {
108
+ const descriptors = defaultFullDelegateDescriptors(defaultCurator);
109
+ const curator = descriptors.find((d) => d.label === "curator");
110
+ const finalizer = descriptors.find((d) => d.label === "finalizer");
111
+ return {
112
+ enabled: true,
113
+ curator: {
114
+ cli_name: curator.cli_name,
115
+ role: curator.role,
116
+ },
117
+ finalizer: {
118
+ cli_name: finalizer.cli_name,
119
+ role: finalizer.role,
120
+ enabled: true,
121
+ min_score: DEFAULT_FULL_DELEGATE_FINALIZER_MIN_SCORE,
122
+ },
123
+ failure_policy: "fallback",
124
+ };
125
+ }
126
+ //# sourceMappingURL=context-mode-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-mode-resolver.js","sourceRoot":"","sources":["../src/context-mode-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,189 @@
1
+ import { type ContextBuilderLifecycleStateV1 } from "./context-builder-lifecycle-contract.js";
2
+ /**
3
+ * Structural passthrough mirror of the root context_builder public budget input
4
+ * (`src/context-builder/schema.ts` `ContextBuilderPublicBudgetInput`). All keys
5
+ * are optional; the root frozen schema remains the single deep validator.
6
+ */
7
+ export interface PreflightContextBudgetInput {
8
+ readonly max_estimated_tokens?: number;
9
+ readonly max_files?: number;
10
+ readonly max_scan_files?: number;
11
+ readonly max_bytes_per_file?: number;
12
+ readonly max_total_bytes?: number;
13
+ readonly max_search_results?: number;
14
+ }
15
+ /**
16
+ * Structural passthrough mirror of the root context_builder `DelegateSchema`
17
+ * union (`src/context-builder/schema.ts`). Discriminated on `enabled`; this is a
18
+ * shallow shape only — the root frozen schema deep-validates provider configs.
19
+ */
20
+ export type PreflightContextDelegateInput = {
21
+ readonly enabled?: false;
22
+ } | {
23
+ readonly enabled: true;
24
+ readonly curator: {
25
+ readonly cli_name: string;
26
+ readonly role: string;
27
+ readonly model?: string;
28
+ readonly effort?: string;
29
+ };
30
+ readonly finalizer: {
31
+ readonly cli_name: string;
32
+ readonly role: string;
33
+ readonly enabled?: boolean;
34
+ readonly min_score?: number;
35
+ readonly model?: string;
36
+ readonly effort?: string;
37
+ };
38
+ readonly timeout_seconds?: number;
39
+ readonly max_response_chars?: number;
40
+ readonly failure_policy?: "fallback" | "fail";
41
+ readonly external_gap_policy?: "fail" | "degrade";
42
+ };
43
+ export interface PreflightContextInput {
44
+ readonly runId: string;
45
+ readonly runDir: string;
46
+ readonly cb_task: string;
47
+ readonly user_request: string;
48
+ readonly roots: readonly string[];
49
+ readonly focus_paths: readonly string[];
50
+ readonly include_globs: readonly string[];
51
+ readonly exclude_globs: readonly string[];
52
+ readonly search_terms: readonly string[];
53
+ readonly profile?: string | undefined;
54
+ readonly allow_secrets?: boolean | undefined;
55
+ readonly context_mode?: "full" | "deterministic" | "off" | "disabled" | undefined;
56
+ readonly allowRootWideDiscovery?: boolean | undefined;
57
+ readonly includeSelectedContext?: boolean | undefined;
58
+ readonly context_budget_adapter?: string | undefined;
59
+ readonly budget?: PreflightContextBudgetInput | undefined;
60
+ readonly delegate?: PreflightContextDelegateInput | undefined;
61
+ }
62
+ export interface ContextBuilderCacheShape {
63
+ readonly hit: boolean;
64
+ readonly write: boolean;
65
+ readonly target_id: string | null;
66
+ readonly key_prefix: string;
67
+ }
68
+ export interface ContextBuilderMetricsShape {
69
+ readonly files_seen: number;
70
+ readonly files_considered: number;
71
+ readonly files_selected: number;
72
+ readonly files_omitted: number;
73
+ readonly scan_cap_hit: boolean;
74
+ readonly search_cap_hit: boolean;
75
+ readonly discovery_byte_cap_hit: boolean;
76
+ readonly discovery_candidate_cap_hit: boolean;
77
+ readonly candidate_cap_hit: boolean;
78
+ readonly bytes_read: number;
79
+ readonly bytes_written: number;
80
+ readonly estimated_tokens: number;
81
+ readonly truncated: boolean;
82
+ }
83
+ export interface PreflightContextBudgetCapsShape {
84
+ readonly max_estimated_tokens?: number | undefined;
85
+ readonly max_files?: number | undefined;
86
+ readonly max_scan_files?: number | undefined;
87
+ readonly max_bytes_per_file?: number | undefined;
88
+ readonly max_total_bytes?: number | undefined;
89
+ readonly max_search_results?: number | undefined;
90
+ }
91
+ export interface PreflightContextObservabilityShape {
92
+ readonly curator_ms: number | null;
93
+ readonly finalizer_ms: number | null;
94
+ readonly candidate_pool_size: number;
95
+ readonly delegate_packet_size: number;
96
+ readonly budget_caps?: PreflightContextBudgetCapsShape | undefined;
97
+ }
98
+ export type ContextBuilderReceiptShape = Readonly<Record<string, unknown>>;
99
+ export type ContextEvidenceClassShape = "review_target" | "public_entrypoint" | "reverse_consumer" | "configuration" | "dependency" | "regression_test";
100
+ export interface ContextCoverageReportShape {
101
+ readonly policy_id: "review_deep_v1" | null;
102
+ readonly status: "satisfied" | "degraded" | "not_evaluated";
103
+ readonly required_when_available: readonly ContextEvidenceClassShape[];
104
+ readonly available: readonly ContextEvidenceClassShape[];
105
+ readonly selected: readonly ContextEvidenceClassShape[];
106
+ readonly missing_required: readonly ContextEvidenceClassShape[];
107
+ readonly advisory_missing: readonly ContextEvidenceClassShape[];
108
+ readonly unclassifiable: readonly ContextEvidenceClassShape[];
109
+ }
110
+ export interface WorkflowContextBuilderMetadata {
111
+ readonly source_run_id: string;
112
+ readonly source_artifact_dir: string;
113
+ readonly cache: ContextBuilderCacheShape;
114
+ readonly schema_version: number;
115
+ readonly status: "succeeded" | "partial";
116
+ readonly context_mode?: "full" | "deterministic" | "off" | "disabled" | undefined;
117
+ readonly copied_paths: readonly string[];
118
+ readonly coverage?: ContextCoverageReportShape | undefined;
119
+ readonly metrics: ContextBuilderMetricsShape;
120
+ readonly warning_count: number;
121
+ readonly omission_count: number;
122
+ /**
123
+ * Optional H0 lifecycle subtree. When a later producer supplies it, the
124
+ * subtree belongs in workflow state.json, never the standalone journal.
125
+ */
126
+ readonly lifecycle?: ContextBuilderLifecycleStateV1 | undefined;
127
+ readonly delegate?: {
128
+ readonly enabled: true;
129
+ readonly status: string;
130
+ readonly fallback_used: boolean;
131
+ } | undefined;
132
+ }
133
+ /**
134
+ * Light-caller provenance: records how the workflow context preflight derived
135
+ * its source-selection anchors. Sibling of {@link WorkflowContextBuilderMetadata}
136
+ * on {@link WorkflowContext} (NOT nested inside it) and NOT covered by
137
+ * `schema_version` — older persisted states simply omit it.
138
+ */
139
+ export interface LightCallerProvenance {
140
+ /** "synthesized" when seed terms were derived (no caller focus/search), else "caller". */
141
+ readonly anchor_source: "caller" | "synthesized";
142
+ /** Whether root-wide discovery was actually requested on the runner input. */
143
+ readonly root_wide_used: boolean;
144
+ /** Effective synthesized search terms (empty when caller-anchored). */
145
+ readonly synthesized_search_terms: readonly string[];
146
+ }
147
+ export interface WorkflowContext {
148
+ readonly context_builder: WorkflowContextBuilderMetadata;
149
+ readonly light_caller?: LightCallerProvenance | undefined;
150
+ }
151
+ /**
152
+ * Decode the complete persisted workflow-context completion fence.
153
+ *
154
+ * Resume must never treat mere object presence as proof that preflight
155
+ * committed. This decoder rejects missing, extra, or malformed fields and
156
+ * delegates lifecycle validation to the lifecycle contract parser.
157
+ */
158
+ export declare function parseWorkflowContext(value: unknown): WorkflowContext;
159
+ export interface PreflightContextResult extends WorkflowContextBuilderMetadata {
160
+ readonly receipt: ContextBuilderReceiptShape;
161
+ readonly observability?: PreflightContextObservabilityShape | undefined;
162
+ }
163
+ export interface ContextBuilderRunner {
164
+ runOrReuse(input: PreflightContextInput, opts: {
165
+ readonly signal?: AbortSignal | undefined;
166
+ }): Promise<PreflightContextResult>;
167
+ /**
168
+ * Eagerly validate caller-supplied context_builder `cb_roots` against the
169
+ * host source allowlist before any workflow backend dispatch can occur.
170
+ *
171
+ * The MCP tool boundary maps failures from this method to -32602
172
+ * InvalidParams. Empty roots are a no-op here because the runner validates
173
+ * its fallback source root during preflight mapping. Artifact-only
174
+ * CLINKX_ALLOWED_ROOTS entries (the `/.` marker form) are child I/O roots
175
+ * for copied artifacts/state and must never authorize context_builder source
176
+ * roots.
177
+ */
178
+ assertRootsAllowed(roots: readonly string[]): void;
179
+ /**
180
+ * Eagerly enforce the task-string secret guard BEFORE any workflow state is
181
+ * persisted. When the effective allow-secrets policy resolves false
182
+ * (cb_allow_secrets:false or CLINKX_CONTEXT_ALLOW_SECRETS=false), a
183
+ * high-confidence secret in a persisted free-text task variable (cb_task,
184
+ * user_request) is rejected here so it never lands in inputs.snapshot.json.
185
+ * Under the default allow-secrets:true this is a no-op. Failures map to
186
+ * -32602 InvalidParams at the tool boundary.
187
+ */
188
+ assertTaskSecretsAllowed(variables: Readonly<Record<string, unknown>>): void;
189
+ }
@@ -0,0 +1,91 @@
1
+ import { z } from "zod";
2
+ import { parseContextBuilderLifecycleStateV1, } from "./context-builder-lifecycle-contract.js";
3
+ const NonNegativeIntegerSchema = z.number().int().nonnegative();
4
+ const ContextBuilderMetricsSchema = z.object({
5
+ files_seen: NonNegativeIntegerSchema,
6
+ files_considered: NonNegativeIntegerSchema,
7
+ files_selected: NonNegativeIntegerSchema,
8
+ files_omitted: NonNegativeIntegerSchema,
9
+ scan_cap_hit: z.boolean(),
10
+ search_cap_hit: z.boolean(),
11
+ discovery_byte_cap_hit: z.boolean(),
12
+ discovery_candidate_cap_hit: z.boolean(),
13
+ candidate_cap_hit: z.boolean(),
14
+ bytes_read: NonNegativeIntegerSchema,
15
+ bytes_written: NonNegativeIntegerSchema,
16
+ estimated_tokens: NonNegativeIntegerSchema,
17
+ truncated: z.boolean(),
18
+ }).strict();
19
+ const ContextCoverageClassSchema = z.enum([
20
+ "review_target",
21
+ "public_entrypoint",
22
+ "reverse_consumer",
23
+ "configuration",
24
+ "dependency",
25
+ "regression_test",
26
+ ]);
27
+ const ContextCoverageSchema = z.object({
28
+ policy_id: z.enum(["review_deep_v1"]).nullable(),
29
+ status: z.enum(["satisfied", "degraded", "not_evaluated"]),
30
+ required_when_available: z.array(ContextCoverageClassSchema),
31
+ available: z.array(ContextCoverageClassSchema),
32
+ selected: z.array(ContextCoverageClassSchema),
33
+ missing_required: z.array(ContextCoverageClassSchema),
34
+ advisory_missing: z.array(ContextCoverageClassSchema),
35
+ unclassifiable: z.array(ContextCoverageClassSchema),
36
+ }).strict();
37
+ const WorkflowContextSchema = z.object({
38
+ context_builder: z.object({
39
+ source_run_id: z.string().min(1),
40
+ source_artifact_dir: z.string().min(1),
41
+ cache: z.object({
42
+ hit: z.boolean(),
43
+ write: z.boolean(),
44
+ target_id: z.string().min(1).nullable(),
45
+ key_prefix: z.string(),
46
+ }).strict(),
47
+ schema_version: z.number().int().positive(),
48
+ status: z.enum(["succeeded", "partial"]),
49
+ context_mode: z.enum(["full", "deterministic", "off", "disabled"]).optional(),
50
+ copied_paths: z.array(z.string()),
51
+ coverage: ContextCoverageSchema.optional(),
52
+ metrics: ContextBuilderMetricsSchema,
53
+ warning_count: NonNegativeIntegerSchema,
54
+ omission_count: NonNegativeIntegerSchema,
55
+ lifecycle: z.unknown().optional(),
56
+ delegate: z.object({
57
+ enabled: z.literal(true),
58
+ status: z.string(),
59
+ fallback_used: z.boolean(),
60
+ }).strict().optional(),
61
+ }).strict(),
62
+ light_caller: z.object({
63
+ anchor_source: z.enum(["caller", "synthesized"]),
64
+ root_wide_used: z.boolean(),
65
+ synthesized_search_terms: z.array(z.string()),
66
+ }).strict().optional(),
67
+ }).strict();
68
+ /**
69
+ * Decode the complete persisted workflow-context completion fence.
70
+ *
71
+ * Resume must never treat mere object presence as proof that preflight
72
+ * committed. This decoder rejects missing, extra, or malformed fields and
73
+ * delegates lifecycle validation to the lifecycle contract parser.
74
+ */
75
+ export function parseWorkflowContext(value) {
76
+ const parsed = WorkflowContextSchema.parse(value);
77
+ const lifecycle = parsed.context_builder.lifecycle === undefined
78
+ ? undefined
79
+ : parseContextBuilderLifecycleStateV1(parsed.context_builder.lifecycle);
80
+ const { lifecycle: _unparsedLifecycle, ...contextBuilder } = parsed.context_builder;
81
+ return {
82
+ context_builder: {
83
+ ...contextBuilder,
84
+ ...(lifecycle === undefined ? {} : { lifecycle }),
85
+ },
86
+ ...(parsed.light_caller === undefined
87
+ ? {}
88
+ : { light_caller: parsed.light_caller }),
89
+ };
90
+ }
91
+ //# sourceMappingURL=context-preflight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-preflight.js","sourceRoot":"","sources":["../src/context-preflight.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Runtime-only policy for the shipped generic council workflows.
3
+ *
4
+ * Keep this allow-list separate from council expansion/runtime-member lists,
5
+ * for two reasons that are NOT "plan review configures retries differently" —
6
+ * the shipped YAMLs are value-identical on every retry/timeout/validator field:
7
+ *
8
+ * (a) `plan-review-receipts` pins its dispatched prompt byte-identically under
9
+ * D9, so appending per-dispatch deadline guidance to it is forbidden, not
10
+ * merely undesirable.
11
+ * (b) Membership is a deliberate allow-list, not a derived set. A generic
12
+ * council — `council-plan-review` included — stays out until it is added
13
+ * here on purpose.
14
+ */
15
+ export declare const COUNCIL_EXECUTION_WORKFLOW_NAMES: readonly ["council-default", "council-answer", "council-code-review", "council-debug", "council-discover"];
16
+ /**
17
+ * Workflows deliberately kept OUT of the council execution policy.
18
+ *
19
+ * Every workflow shipped in `workflows/` must appear in exactly one of
20
+ * `COUNCIL_EXECUTION_WORKFLOW_NAMES` or this list. The completeness pin in
21
+ * `tests/council-execution-policy.test.ts` reads the shipped catalog directly
22
+ * and fails the suite for any newly shipped workflow until it is classified on
23
+ * purpose — exclusion is a decision, not a default.
24
+ *
25
+ * There are exactly two entries, each excluded for its own reason. Nothing
26
+ * here is excluded merely for being unreviewed — a newly shipped workflow
27
+ * must still be classified either way before the suite goes green.
28
+ *
29
+ * - `council-plan-review` is ALSO the legacy persisted name of the typed
30
+ * plan-review workflow, from before it was renamed to
31
+ * `plan-review-receipts` (see `LEGACY_PLAN_REVIEW_RECEIPTS_WORKFLOW_NAME`
32
+ * in `src/plan-review/admission.ts`). A resumed legacy typed run is
33
+ * restored with typed plan-review policy (`planReviewContextPolicy`,
34
+ * `plan_review_snapshot_text`), so admitting this name here would let such
35
+ * a run receive per-dispatch deadline guidance appended to its D9-pinned
36
+ * prompt. Admitting it requires a structural typed-run guard in
37
+ * `prepareDispatchInput` first, not just a name check.
38
+ * - `plan-review-receipts` pins its dispatched prompt byte-identically under
39
+ * D9, so appending per-dispatch deadline guidance to it is forbidden.
40
+ */
41
+ export declare const COUNCIL_EXECUTION_EXCLUDED_WORKFLOW_NAMES: readonly ["council-plan-review", "plan-review-receipts"];
42
+ /** Maximum UTF-8 size reserved for the per-dispatch advisory guidance. */
43
+ export declare const COUNCIL_DEADLINE_GUIDANCE_RESERVE_BYTES = 512;
44
+ /** Finite time kept for final serialization before the provider cutoff. */
45
+ export declare const COUNCIL_FINALIZATION_RESERVE_MS = 5000;
46
+ export declare function isCouncilExecutionWorkflow(workflowName: string): boolean;
47
+ /**
48
+ * Veto only an automatically scheduled retry after a confirmed wall timeout.
49
+ * Idle timeouts and other transient failures retain the existing retry policy.
50
+ */
51
+ export declare function shouldVetoWallTimeoutRetry(workflowName: string, terminationReason: unknown): boolean;
52
+ /**
53
+ * Build the bounded per-dispatch advisory time budget appended to council seat
54
+ * prompts.
55
+ *
56
+ * Takes DURATIONS, not epochs: the caller owns the monotonic budget arithmetic,
57
+ * and this function only projects those durations onto wall-clock timestamps at
58
+ * render time, because the model reads the rendered string against its own wall
59
+ * clock.
60
+ *
61
+ * Scope (D1): a resumed run starts a FRESH, full `timeout_seconds` budget.
62
+ * These values therefore describe the CURRENT execution only; they are not a
63
+ * total across resumes and must not be read as one.
64
+ */
65
+ export declare function buildCouncilDeadlineGuidance(input: {
66
+ readonly workflowRemainingMs: number;
67
+ readonly callRemainingMs: number;
68
+ }): string;
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Runtime-only policy for the shipped generic council workflows.
3
+ *
4
+ * Keep this allow-list separate from council expansion/runtime-member lists,
5
+ * for two reasons that are NOT "plan review configures retries differently" —
6
+ * the shipped YAMLs are value-identical on every retry/timeout/validator field:
7
+ *
8
+ * (a) `plan-review-receipts` pins its dispatched prompt byte-identically under
9
+ * D9, so appending per-dispatch deadline guidance to it is forbidden, not
10
+ * merely undesirable.
11
+ * (b) Membership is a deliberate allow-list, not a derived set. A generic
12
+ * council — `council-plan-review` included — stays out until it is added
13
+ * here on purpose.
14
+ */
15
+ export const COUNCIL_EXECUTION_WORKFLOW_NAMES = [
16
+ "council-default",
17
+ "council-answer",
18
+ "council-code-review",
19
+ "council-debug",
20
+ "council-discover",
21
+ ];
22
+ /**
23
+ * Workflows deliberately kept OUT of the council execution policy.
24
+ *
25
+ * Every workflow shipped in `workflows/` must appear in exactly one of
26
+ * `COUNCIL_EXECUTION_WORKFLOW_NAMES` or this list. The completeness pin in
27
+ * `tests/council-execution-policy.test.ts` reads the shipped catalog directly
28
+ * and fails the suite for any newly shipped workflow until it is classified on
29
+ * purpose — exclusion is a decision, not a default.
30
+ *
31
+ * There are exactly two entries, each excluded for its own reason. Nothing
32
+ * here is excluded merely for being unreviewed — a newly shipped workflow
33
+ * must still be classified either way before the suite goes green.
34
+ *
35
+ * - `council-plan-review` is ALSO the legacy persisted name of the typed
36
+ * plan-review workflow, from before it was renamed to
37
+ * `plan-review-receipts` (see `LEGACY_PLAN_REVIEW_RECEIPTS_WORKFLOW_NAME`
38
+ * in `src/plan-review/admission.ts`). A resumed legacy typed run is
39
+ * restored with typed plan-review policy (`planReviewContextPolicy`,
40
+ * `plan_review_snapshot_text`), so admitting this name here would let such
41
+ * a run receive per-dispatch deadline guidance appended to its D9-pinned
42
+ * prompt. Admitting it requires a structural typed-run guard in
43
+ * `prepareDispatchInput` first, not just a name check.
44
+ * - `plan-review-receipts` pins its dispatched prompt byte-identically under
45
+ * D9, so appending per-dispatch deadline guidance to it is forbidden.
46
+ */
47
+ export const COUNCIL_EXECUTION_EXCLUDED_WORKFLOW_NAMES = [
48
+ "council-plan-review",
49
+ "plan-review-receipts",
50
+ ];
51
+ const COUNCIL_EXECUTION_WORKFLOW_NAME_SET = new Set(COUNCIL_EXECUTION_WORKFLOW_NAMES);
52
+ /** Maximum UTF-8 size reserved for the per-dispatch advisory guidance. */
53
+ export const COUNCIL_DEADLINE_GUIDANCE_RESERVE_BYTES = 512;
54
+ /** Finite time kept for final serialization before the provider cutoff. */
55
+ export const COUNCIL_FINALIZATION_RESERVE_MS = 5_000;
56
+ export function isCouncilExecutionWorkflow(workflowName) {
57
+ return COUNCIL_EXECUTION_WORKFLOW_NAME_SET.has(workflowName);
58
+ }
59
+ /**
60
+ * Veto only an automatically scheduled retry after a confirmed wall timeout.
61
+ * Idle timeouts and other transient failures retain the existing retry policy.
62
+ */
63
+ export function shouldVetoWallTimeoutRetry(workflowName, terminationReason) {
64
+ return isCouncilExecutionWorkflow(workflowName) && terminationReason === "wall";
65
+ }
66
+ /**
67
+ * Build the bounded per-dispatch advisory time budget appended to council seat
68
+ * prompts.
69
+ *
70
+ * Takes DURATIONS, not epochs: the caller owns the monotonic budget arithmetic,
71
+ * and this function only projects those durations onto wall-clock timestamps at
72
+ * render time, because the model reads the rendered string against its own wall
73
+ * clock.
74
+ *
75
+ * Scope (D1): a resumed run starts a FRESH, full `timeout_seconds` budget.
76
+ * These values therefore describe the CURRENT execution only; they are not a
77
+ * total across resumes and must not be read as one.
78
+ */
79
+ export function buildCouncilDeadlineGuidance(input) {
80
+ // The one legitimate wall read in this module: display timestamps are
81
+ // projected forward from now so the reading model can compare them against
82
+ // its own clock. No budget decision is derived from it.
83
+ const nowMs = Date.now();
84
+ const callRemaining = Math.max(0, input.callRemainingMs);
85
+ const workflowRemaining = Math.max(0, input.workflowRemainingMs);
86
+ const analysisMs = callRemaining - COUNCIL_FINALIZATION_RESERVE_MS;
87
+ // When the call window is at or under the finalization reserve there is no
88
+ // honest analysis cutoff to state. Omit the sentence rather than clamping it
89
+ // to now: "finish analysis by <now>" reads as an already-blown deadline and
90
+ // invites the model to abandon the call.
91
+ const analysisSentence = analysisMs > 0
92
+ ? `finish analysis and begin finalization by ${new Date(nowMs + analysisMs).toISOString()}; `
93
+ : "";
94
+ const guidance = `\n\n---\n` +
95
+ `EXECUTION TIME BUDGET (advisory; applies to this call in this execution): ` +
96
+ analysisSentence +
97
+ `final serialization cutoff is ${new Date(nowMs + callRemaining).toISOString()}. ` +
98
+ `Overall workflow budget ends in ${String(Math.ceil(workflowRemaining / 1000))}s; ` +
99
+ `approximately ${String(Math.ceil(callRemaining / 1000))}s remain for this call. ` +
100
+ `Do not begin optional work you cannot finish; return the best complete answer available within this budget.\n`;
101
+ // The template is fixed-width apart from at most two ISO timestamps and two
102
+ // seconds values; the analysis sentence is conditional. These bytes ship
103
+ // inside every admitted council seat prompt, so the reserve is a hard
104
+ // invariant for future edits to the wording.
105
+ if (Buffer.byteLength(guidance, "utf8") > COUNCIL_DEADLINE_GUIDANCE_RESERVE_BYTES) {
106
+ throw new Error("Council deadline guidance exceeds its reserved prompt budget");
107
+ }
108
+ return guidance;
109
+ }
110
+ //# sourceMappingURL=council-execution-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"council-execution-policy.js","sourceRoot":"","sources":["../src/council-execution-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,iBAAiB;IACjB,gBAAgB;IAChB,qBAAqB;IACrB,eAAe;IACf,kBAAkB;CACV,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,yCAAyC,GAAG;IACvD,qBAAqB;IACrB,sBAAsB;CACd,CAAC;AAEX,MAAM,mCAAmC,GAAwB,IAAI,GAAG,CACtE,gCAAgC,CACjC,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,uCAAuC,GAAG,GAAG,CAAC;AAE3D,2EAA2E;AAC3E,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAErD,MAAM,UAAU,0BAA0B,CAAC,YAAoB;IAC7D,OAAO,mCAAmC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,YAAoB,EACpB,iBAA0B;IAE1B,OAAO,0BAA0B,CAAC,YAAY,CAAC,IAAI,iBAAiB,KAAK,MAAM,CAAC;AAClF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,4BAA4B,CAAC,KAG5C;IACC,sEAAsE;IACtE,2EAA2E;IAC3E,wDAAwD;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IACzD,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACjE,MAAM,UAAU,GAAG,aAAa,GAAG,+BAA+B,CAAC;IAEnE,2EAA2E;IAC3E,6EAA6E;IAC7E,4EAA4E;IAC5E,yCAAyC;IACzC,MAAM,gBAAgB,GACpB,UAAU,GAAG,CAAC;QACZ,CAAC,CAAC,6CAA6C,IAAI,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,WAAW,EAAE,IAAI;QAC7F,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,QAAQ,GACZ,WAAW;QACX,4EAA4E;QAC5E,gBAAgB;QAChB,iCAAiC,IAAI,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,WAAW,EAAE,IAAI;QAClF,mCAAmC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC,KAAK;QACnF,iBAAiB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,0BAA0B;QAClF,+GAA+G,CAAC;IAElH,4EAA4E;IAC5E,yEAAyE;IACzE,sEAAsE;IACtE,6CAA6C;IAC7C,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,uCAAuC,EAAE,CAAC;QAClF,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Council expander — runtime composition override.
3
3
  *
4
- * For the five council workflows, this module rewrites stages of a normalized
4
+ * For the runtime-member council workflows, this module rewrites stages of a normalized
5
5
  * workflow definition to match caller-supplied overrides:
6
6
  * - `members`: rewrites stage 0 (members) and stage 1 (reviewers) to match
7
7
  * the member count and cli_name mapping. Stances are applied to stage 0
@@ -18,6 +18,13 @@ export declare const COUNCIL_RUNTIME_MEMBER_WORKFLOWS: Set<string>;
18
18
  export declare function supportsRuntimeMembers(workflowName: string): boolean;
19
19
  /** All council workflows have exactly 4 stages: members, reviewers, ranking, chairman. */
20
20
  export declare const COUNCIL_STAGE_COUNT = 4;
21
+ /** Caller-supplied runtime composition for one council seat. */
22
+ export interface CouncilMemberInput {
23
+ readonly cli_name: string;
24
+ readonly stance?: string | undefined;
25
+ readonly model?: string | undefined;
26
+ readonly effort?: string | undefined;
27
+ }
21
28
  /**
22
29
  * Expand council workflow stages to match caller-supplied composition overrides.
23
30
  *
@@ -27,17 +34,11 @@ export declare const COUNCIL_STAGE_COUNT = 4;
27
34
  *
28
35
  * Returns a **new** `NormalizedWorkflowDefinition`; the input is never mutated.
29
36
  */
30
- export declare function expandCouncilComposition(definition: NormalizedWorkflowDefinition, members: ReadonlyArray<{
31
- cli_name: string;
32
- stance?: string;
33
- }> | undefined, workflowName: string, chairman?: string): NormalizedWorkflowDefinition;
37
+ export declare function expandCouncilComposition(definition: NormalizedWorkflowDefinition, members: ReadonlyArray<CouncilMemberInput> | undefined, workflowName: string, chairman?: string, chairmanModel?: string, chairmanEffort?: string): NormalizedWorkflowDefinition;
34
38
  /**
35
39
  * @deprecated Use `expandCouncilComposition()` instead.
36
40
  *
37
41
  * Legacy wrapper that delegates to the new composition expander with
38
42
  * members-only expansion (no chairman override).
39
43
  */
40
- export declare function expandCouncilFirstStage(definition: NormalizedWorkflowDefinition, members: ReadonlyArray<{
41
- cli_name: string;
42
- stance?: string;
43
- }>, workflowName: string): NormalizedWorkflowDefinition;
44
+ export declare function expandCouncilFirstStage(definition: NormalizedWorkflowDefinition, members: ReadonlyArray<CouncilMemberInput>, workflowName: string): NormalizedWorkflowDefinition;