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,388 @@
1
+ import { execFile } from "node:child_process";
2
+ import { constants as fsConstants } from "node:fs";
3
+ import { access, lstat, readdir, realpath, readFile, stat } from "node:fs/promises";
4
+ import { join, relative, resolve, sep } from "node:path";
5
+ import { promisify } from "node:util";
6
+ import { canonicalJson, sha256 } from "./context-cache-key.js";
7
+ import { logger } from "./logger.js";
8
+ const execFileAsync = promisify(execFile);
9
+ const MAX_SCAN_FILES = 10_000;
10
+ const GIT_MAX_BUFFER_BYTES = 100 * 1024 * 1024;
11
+ // Test-only seam: the effective scan cap is read through this mutable so tests
12
+ // can exercise the cap boundary without materializing MAX_SCAN_FILES files.
13
+ // Both untrackedContentHash and getSignatureCoveredPaths read the SAME effective
14
+ // cap, keeping covered ⊆ hashed candidates. Not part of the public API.
15
+ let currentMaxScanFiles = MAX_SCAN_FILES;
16
+ /** Test-only: override the effective scan cap. */
17
+ export function __setMaxScanFilesForTest(n) {
18
+ currentMaxScanFiles = n;
19
+ }
20
+ /** Test-only: restore the default scan cap. */
21
+ export function __resetMaxScanFilesForTest() {
22
+ currentMaxScanFiles = MAX_SCAN_FILES;
23
+ }
24
+ /**
25
+ * Lists untracked, non-ignored files under `pathspec`, sorted and capped to
26
+ * `cap`. The cap-exceeded warning is emitted here exactly once. Returned paths
27
+ * are repo-relative (as emitted by `git ls-files`). This is the single source
28
+ * of truth shared by both the untracked content hash and the covered-path set,
29
+ * so coverage can never exceed what the signature actually hashes.
30
+ */
31
+ async function listCappedUntrackedFiles(topLevel, pathspec, cap) {
32
+ const result = await git([
33
+ "-C",
34
+ topLevel,
35
+ "ls-files",
36
+ "--others",
37
+ "--exclude-standard",
38
+ "-z",
39
+ ...pathspec,
40
+ ]);
41
+ const allPaths = splitNul(result.stdout).sort();
42
+ const paths = allPaths.slice(0, cap);
43
+ if (allPaths.length > cap) {
44
+ logger.warn({ topLevel, total: allPaths.length, cap }, "untracked file list exceeded scan cap; signature computed over capped prefix");
45
+ }
46
+ return paths;
47
+ }
48
+ /**
49
+ * Computes a workspace content signature for cache invalidation.
50
+ *
51
+ * Git trees are content-sensitive for tracked changes, staged/index state,
52
+ * untracked non-ignored files, and submodule identity. Gitignored files are
53
+ * deliberately invisible: if a gitignored file is selected through
54
+ * focus_paths/search_terms, the runner's promote-on-pass realized-selection
55
+ * coverage gate must keep that run out of the cache (`cache_write=false`).
56
+ * Non-git trees are best-effort only; mtime is used as the content proxy.
57
+ */
58
+ export async function workspaceSignature(roots) {
59
+ const signature = await signatureForRoots(roots, { visitedGitTopLevels: new Set() });
60
+ return signature;
61
+ }
62
+ export async function getSignatureCoveredPaths(roots) {
63
+ const resolvedRoots = await resolveRoots(roots);
64
+ const gitRoots = [];
65
+ for (const root of resolvedRoots) {
66
+ const topLevel = await findGitTopLevel(root);
67
+ if (topLevel !== undefined) {
68
+ gitRoots.push({ root, topLevel });
69
+ }
70
+ else {
71
+ // Non-git roots intentionally add no covered paths, so they never promote.
72
+ }
73
+ }
74
+ const covered = new Set();
75
+ for (const group of groupGitRoots(gitRoots)) {
76
+ const pathspec = ["--", ...group.roots.map((root) => relativePathspec(group.topLevel, root))];
77
+ const tracked = await git([
78
+ "-C",
79
+ group.topLevel,
80
+ "ls-files",
81
+ "-z",
82
+ ...pathspec,
83
+ ]);
84
+ // Tracked files are always captured by `git diff`, so unbounded tracked
85
+ // coverage is always safe.
86
+ for (const filePath of splitNul(tracked.stdout)) {
87
+ const absolute = join(group.topLevel, filePath);
88
+ covered.add(await normalizeExistingPath(absolute));
89
+ }
90
+ // Untracked files: use the SAME capped/sorted prefix the signature hashes
91
+ // (see untrackedContentHash — both pathspecs must stay in sync; the
92
+ // covered ⊆ hashed invariant relies on git normalizing them identically).
93
+ // Mirror the isFile filter ONLY, not the readFile step: an lstat-isFile but
94
+ // unreadable path is covered-here-but-not-hashed-there. Benign/self-healing
95
+ // — context_builder already read the file's bytes, so if they change the
96
+ // hashing readFile succeeds and the signature changes → MISS.
97
+ // Fail closed — a path that fails to lstat is not added.
98
+ const untrackedPaths = await listCappedUntrackedFiles(group.topLevel, pathspec, currentMaxScanFiles);
99
+ for (const filePath of untrackedPaths) {
100
+ const absolute = join(group.topLevel, filePath);
101
+ try {
102
+ const fileStat = await lstat(absolute);
103
+ if (!fileStat.isFile())
104
+ continue;
105
+ covered.add(await normalizeExistingPath(absolute));
106
+ }
107
+ catch {
108
+ // Best-effort: a path that races away or is unreadable is not covered.
109
+ continue;
110
+ }
111
+ }
112
+ }
113
+ return covered;
114
+ }
115
+ function relativePathspec(topLevel, root) {
116
+ const rel = relative(topLevel, root);
117
+ return rel === "" ? "." : rel;
118
+ }
119
+ async function signatureForRoots(roots, options) {
120
+ const resolvedRoots = await resolveRoots(roots);
121
+ const gitRoots = [];
122
+ const nonGitRoots = [];
123
+ for (const root of resolvedRoots) {
124
+ const topLevel = await findGitTopLevel(root);
125
+ if (topLevel === undefined) {
126
+ nonGitRoots.push(root);
127
+ }
128
+ else {
129
+ gitRoots.push({ root, topLevel });
130
+ }
131
+ }
132
+ const entries = [];
133
+ for (const group of groupGitRoots(gitRoots)) {
134
+ entries.push(await gitSignature(group, options));
135
+ }
136
+ for (const root of nonGitRoots.sort()) {
137
+ entries.push(await nonGitSignature(root));
138
+ }
139
+ entries.sort((a, b) => compareCodeUnits(canonicalJson(a), canonicalJson(b)));
140
+ return sha256(canonicalJson(entries));
141
+ }
142
+ async function resolveRoots(roots) {
143
+ const inputRoots = roots.length === 0 ? [process.cwd()] : roots;
144
+ const resolved = [];
145
+ for (const root of inputRoots) {
146
+ const absolute = resolve(root);
147
+ try {
148
+ resolved.push(await realpath(absolute));
149
+ }
150
+ catch {
151
+ resolved.push(absolute);
152
+ }
153
+ }
154
+ return Array.from(new Set(resolved)).sort();
155
+ }
156
+ async function normalizeExistingPath(path) {
157
+ const absolute = resolve(path);
158
+ try {
159
+ return await realpath(absolute);
160
+ }
161
+ catch {
162
+ return absolute;
163
+ }
164
+ }
165
+ async function findGitTopLevel(root) {
166
+ try {
167
+ const inside = await git(["-C", root, "rev-parse", "--is-inside-work-tree"]);
168
+ if (inside.stdout.toString("utf8").trim() !== "true")
169
+ return undefined;
170
+ const topLevel = await git(["-C", root, "rev-parse", "--show-toplevel"]);
171
+ return (await realpath(topLevel.stdout.toString("utf8").trim()));
172
+ }
173
+ catch {
174
+ return undefined;
175
+ }
176
+ }
177
+ function groupGitRoots(gitRoots) {
178
+ const groups = new Map();
179
+ for (const gitRoot of gitRoots) {
180
+ const roots = groups.get(gitRoot.topLevel) ?? [];
181
+ roots.push(gitRoot.root);
182
+ groups.set(gitRoot.topLevel, roots);
183
+ }
184
+ return Array.from(groups.entries())
185
+ .sort(([a], [b]) => compareCodeUnits(a, b))
186
+ .map(([topLevel, roots]) => ({ topLevel, roots: Array.from(new Set(roots)).sort() }));
187
+ }
188
+ function compareCodeUnits(a, b) {
189
+ return a < b ? -1 : a > b ? 1 : 0;
190
+ }
191
+ async function gitSignature(group, options) {
192
+ if (options.visitedGitTopLevels.has(group.topLevel)) {
193
+ return { kind: "git", recursive: true };
194
+ }
195
+ const visitedGitTopLevels = new Set(options.visitedGitTopLevels);
196
+ visitedGitTopLevels.add(group.topLevel);
197
+ const pathspec = ["--", ...group.roots];
198
+ const head = await gitHead(group.topLevel);
199
+ const trackedDiff = await git(["-C", group.topLevel, "diff", "--binary", ...pathspec]);
200
+ const cachedDiff = await git(["-C", group.topLevel, "diff", "--cached", "--binary", ...pathspec]);
201
+ const untracked = await untrackedContentHash(group.topLevel, pathspec);
202
+ const submodules = await submoduleSignatures(group, { visitedGitTopLevels });
203
+ return {
204
+ kind: "git",
205
+ signature: sha256(canonicalJson([
206
+ head,
207
+ sha256(trackedDiff.stdout),
208
+ sha256(cachedDiff.stdout),
209
+ untracked,
210
+ submodules,
211
+ ])),
212
+ };
213
+ }
214
+ async function gitHead(topLevel) {
215
+ try {
216
+ const result = await git(["-C", topLevel, "rev-parse", "HEAD"]);
217
+ return result.stdout.toString("utf8").trim();
218
+ }
219
+ catch {
220
+ return "";
221
+ }
222
+ }
223
+ async function untrackedContentHash(topLevel, pathspec) {
224
+ // Must use the SAME capped/sorted prefix via listCappedUntrackedFiles as
225
+ // getSignatureCoveredPaths; the covered ⊆ hashed invariant depends on git
226
+ // normalizing this pathspec identically on both sides — keep them in sync.
227
+ const paths = await listCappedUntrackedFiles(topLevel, pathspec, currentMaxScanFiles);
228
+ const records = [];
229
+ for (const filePath of paths) {
230
+ const absolute = join(topLevel, filePath);
231
+ try {
232
+ const fileStat = await lstat(absolute);
233
+ if (!fileStat.isFile())
234
+ continue;
235
+ records.push({ path: filePath, content_hash: sha256(await readFile(absolute)) });
236
+ }
237
+ catch {
238
+ // Best-effort: an untracked file that races away or is unreadable
239
+ // (EACCES/ENOENT) is skipped rather than crashing the signature.
240
+ continue;
241
+ }
242
+ }
243
+ records.sort((a, b) => compareCodeUnits(a.path, b.path));
244
+ return sha256(canonicalJson(records));
245
+ }
246
+ async function submoduleSignatures(group, options) {
247
+ const gitmodulesPath = join(group.topLevel, ".gitmodules");
248
+ try {
249
+ await access(gitmodulesPath, fsConstants.R_OK);
250
+ }
251
+ catch {
252
+ return [];
253
+ }
254
+ const result = await git([
255
+ "-C",
256
+ group.topLevel,
257
+ "config",
258
+ "-z",
259
+ "--file",
260
+ gitmodulesPath,
261
+ "--get-regexp",
262
+ "^submodule\\..*\\.path$",
263
+ ], { allowFailure: true });
264
+ if (result.exitCode !== 0)
265
+ return [];
266
+ const entries = splitNul(result.stdout);
267
+ const submodulePaths = [];
268
+ for (const entry of entries) {
269
+ const newlineIndex = entry.indexOf("\n");
270
+ if (newlineIndex === -1)
271
+ continue;
272
+ submodulePaths.push(entry.slice(newlineIndex + 1));
273
+ }
274
+ const signatures = [];
275
+ for (const submodulePath of submodulePaths.sort()) {
276
+ const absolute = resolve(group.topLevel, submodulePath);
277
+ if (!isUnderAnyRoot(absolute, group.roots))
278
+ continue;
279
+ try {
280
+ const submoduleStat = await stat(absolute);
281
+ if (!submoduleStat.isDirectory()) {
282
+ // Uninitialized submodules have no working tree to recurse into; the
283
+ // parent HEAD/diff still covers the gitlink identity.
284
+ signatures.push({ path: submodulePath, present: false });
285
+ continue;
286
+ }
287
+ signatures.push({
288
+ path: submodulePath,
289
+ signature: await signatureForRoots([absolute], options),
290
+ });
291
+ }
292
+ catch {
293
+ signatures.push({ path: submodulePath, present: false });
294
+ }
295
+ }
296
+ return signatures;
297
+ }
298
+ function isUnderAnyRoot(path, roots) {
299
+ return roots.some((root) => path === root || path.startsWith(`${root}${sep}`));
300
+ }
301
+ async function nonGitSignature(root) {
302
+ const entries = [];
303
+ await walkNonGit(root, root, entries);
304
+ entries.sort();
305
+ return {
306
+ kind: "non-git",
307
+ // Best-effort only: mtime is a content proxy, not a correctness-first
308
+ // signal. Correctness-critical non-git trees should use content hashing
309
+ // or bypass the cache until a stronger scanner is available.
310
+ signature: sha256(canonicalJson(entries)),
311
+ capped: entries.length >= currentMaxScanFiles,
312
+ };
313
+ }
314
+ async function walkNonGit(root, current, entries) {
315
+ if (entries.length >= currentMaxScanFiles)
316
+ return;
317
+ let currentStat;
318
+ try {
319
+ currentStat = await lstat(current);
320
+ }
321
+ catch {
322
+ // Best-effort: an unreadable or raced entry (EACCES/ENOENT) is skipped
323
+ // rather than crashing the walk. This also covers an unreadable child,
324
+ // since each child is processed by a recursive call starting here.
325
+ return;
326
+ }
327
+ if (currentStat.isSymbolicLink())
328
+ return;
329
+ if (currentStat.isFile()) {
330
+ entries.push(`${relative(root, current)}:${currentStat.size}:${currentStat.mtimeMs}`);
331
+ return;
332
+ }
333
+ if (!currentStat.isDirectory())
334
+ return;
335
+ let children;
336
+ try {
337
+ children = (await readdir(current)).sort();
338
+ }
339
+ catch {
340
+ // Unreadable directory (EACCES) — skip its subtree rather than crash.
341
+ return;
342
+ }
343
+ for (const child of children) {
344
+ if (entries.length >= currentMaxScanFiles)
345
+ return;
346
+ await walkNonGit(root, join(current, child), entries);
347
+ }
348
+ }
349
+ async function git(args, options = {}) {
350
+ try {
351
+ const result = await execFileAsync("git", args, {
352
+ encoding: "buffer",
353
+ maxBuffer: GIT_MAX_BUFFER_BYTES,
354
+ shell: false,
355
+ });
356
+ return {
357
+ stdout: result.stdout,
358
+ stderr: result.stderr,
359
+ exitCode: 0,
360
+ };
361
+ }
362
+ catch (err) {
363
+ const error = err;
364
+ const exitCode = typeof error.code === "number" ? error.code : 1;
365
+ const failure = {
366
+ stdout: toBuffer(error.stdout),
367
+ stderr: toBuffer(error.stderr),
368
+ exitCode,
369
+ };
370
+ if (options.allowFailure === true)
371
+ return failure;
372
+ throw err;
373
+ }
374
+ }
375
+ function splitNul(buffer) {
376
+ return buffer
377
+ .toString("utf8")
378
+ .split("\0")
379
+ .filter((entry) => entry.length > 0);
380
+ }
381
+ function toBuffer(value) {
382
+ if (Buffer.isBuffer(value))
383
+ return value;
384
+ if (typeof value === "string")
385
+ return Buffer.from(value, "utf8");
386
+ return Buffer.alloc(0);
387
+ }
388
+ //# sourceMappingURL=workspace-signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-signature.js","sourceRoot":"","sources":["../src/workspace-signature.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,9 @@ You are the council chairman synthesizing the final answer.
9
9
  ## Rubric
10
10
  {{rubric}}
11
11
 
12
+ ## Known Missing Evidence
13
+ If the context bundle has a 'Known missing evidence' section, do not give an unconditional pass on any dimension that depends on it; state the dependency.
14
+
12
15
  ## Instructions
13
16
  You have been provided with JSON files containing:
14
17
  1. Specialist answers (from the specialists stage)
@@ -6,6 +6,9 @@ You are a cross-reviewer evaluating specialist answers.
6
6
  ## Rubric
7
7
  {{rubric}}
8
8
 
9
+ ## Known Missing Evidence
10
+ If the context bundle has a 'Known missing evidence' section, do not give an unconditional pass on any dimension that depends on it; state the dependency.
11
+
9
12
  ## Review Lens
10
13
  {{call.id}}
11
14
  - If your call ID ends in _a: prioritize factual accuracy.
@@ -9,6 +9,9 @@ You are a specialist answering a question. Produce a structured, well-reasoned a
9
9
  ## Rubric
10
10
  {{rubric}}
11
11
 
12
+ ## Known Missing Evidence
13
+ If the context bundle has a 'Known missing evidence' section, do not give an unconditional pass on any dimension that depends on it; state the dependency.
14
+
12
15
  ## Working Stance
13
16
  {{call.id}}
14
17
  - If your call ID ends in _a: optimize for a direct answer and clear bottom line.
@@ -19,7 +22,8 @@ You are a specialist answering a question. Produce a structured, well-reasoned a
19
22
  Answer the question thoroughly. Provide reasoning, note caveats, and cite sources where possible.
20
23
  - Set your ID from your call ID (e.g., member_a, specialist_b).
21
24
  - Return exactly one JSON object matching the schema below.
22
- - Return a single valid JSON object. Be thorough within the fields; brevity is not a goal.
25
+ - Return a single valid JSON object. Be thorough within the fields.
26
+ - The measured artifact is the final result file the runtime extracts — not a shorter chat recap. That file is pretty-printed JSON (2-space indent, trailing newline) and must stay at or under 75_000 UTF-8 bytes.
23
27
  - Do not wrap the JSON in markdown fences.
24
28
  - Do not output prose before or after the JSON.
25
29
  - Use empty arrays instead of placeholder strings.
@@ -9,6 +9,9 @@ You are the council chairman making the final decision.
9
9
  ## Evaluation Rubric
10
10
  {{rubric}}
11
11
 
12
+ ## Known Missing Evidence
13
+ If the context bundle has a 'Known missing evidence' section, do not give an unconditional pass on any dimension that depends on it; state the dependency.
14
+
12
15
  ## Instructions
13
16
  You have been provided with JSON files containing:
14
17
  1. Member recommendations (from the members stage)
@@ -12,6 +12,9 @@ You are the council chairman synthesizing the final code review verdict.
12
12
  ## Rubric
13
13
  {{rubric}}
14
14
 
15
+ ## Known Missing Evidence
16
+ If the context bundle has a 'Known missing evidence' section, do not give an unconditional pass on any dimension that depends on it; state the dependency.
17
+
15
18
  ## Instructions
16
19
  You have been provided with JSON files containing:
17
20
  1. Reviewer assessments (from the reviewers stage)
@@ -30,6 +33,19 @@ Use `reviewers` and `cross_review` as the JSON key names inside `considered_arti
30
33
  - Cross-review and ranking artifacts reference candidates by alias letters (A, B, C, ...) assigned in definition order of the upstream reviewer artifacts. Map A to the first reviewer, B to the second, and so on. Use the original call IDs from reviewer artifact filenames in your output, not alias letters.
31
34
  - considered_artifacts must count only artifacts actually read, not expected counts.
32
35
  - status must be one of: approved, revise, reject. Use revise when credible unresolved blocking issues remain.
36
+
37
+ ## Verdict Rules
38
+ - D2 SEVERITY → VERDICT PROMOTION:
39
+ - Any unwaived `critical` correctness/security issue — or an unwaived `high` correctness/security issue with a concrete exploit, data-loss, or breaking-change consequence — maps to `reject`.
40
+ - Otherwise, credible unresolved blocking issues map to `revise`.
41
+ - No credible blocking issues map to `approved`.
42
+ - D3 STRUCTURAL CAP:
43
+ - A structural / reuse / duplication / naming / layering smell CANNOT by itself drive `reject`; on its own it caps at `revise`.
44
+ - It reaches `reject` ONLY when bridge-reclassified: it demonstrably causes or masks a correctness, security, API-stability, or data-loss defect. In that case, treat it as that defect (D2 applies to the underlying defect, not the smell).
45
+ - D1 UNKNOWN ON ABSENCE:
46
+ - If reviewers report `structural_findings` with status `not_assessed_due_to_context`, or any reviewer reports `context_available` is false, treat the ABSENCE of structural findings as UNKNOWN, not as evidence the code is "structurally clean".
47
+ - Do not upgrade the verdict (e.g. toward `approved`) on the basis of that absence.
48
+
33
49
  - Return exactly one JSON object matching the schema below.
34
50
  - Do not wrap the JSON in markdown fences.
35
51
  - Do not output prose before or after the JSON.
@@ -9,6 +9,9 @@ You are a cross-reviewer evaluating other code reviewers' assessments.
9
9
  ## Rubric
10
10
  {{rubric}}
11
11
 
12
+ ## Known Missing Evidence
13
+ If the context bundle has a 'Known missing evidence' section, do not give an unconditional pass on any dimension that depends on it; state the dependency.
14
+
12
15
  ## Review Lens
13
16
  {{call.id}}
14
17
  - If your call ID ends in _a: missed correctness issues and false positives.
@@ -31,12 +34,15 @@ Evaluate each reviewer's assessment: identify agreement/disagreement, missed iss
31
34
  - Do not wrap the JSON in markdown fences.
32
35
  - Do not output prose before or after the JSON.
33
36
  - Use empty arrays instead of placeholder strings.
37
+ - Score each candidate BEFORE producing the ranking; the ranking must follow from the scores. A deterministic reducer downstream depends on both `ranking` and each candidate's `overall_score_100`, so always populate both.
38
+ - Each `per_review_feedback[]` entry MAY ALSO include optional structured `missed_issue_refs` and `false_positive_refs` arrays ALONGSIDE — not replacing — the existing `missed_issues` and `false_positives` string arrays. Keep the string arrays populated as before; the `*_refs` arrays add structured detail.
39
+ - EVIDENCE BREVITY for refs: each ref may carry at most 2 `evidence` entries; each `observation` quotes 1-2 lines and stays at or under ~240 characters; each `location` uses `path:line` form at or under 120 characters and MUST cite a file present in the diff or attached context (fabricated citations are stripped downstream).
34
40
 
35
41
  IMPORTANT: For enum fields, use ONLY the exact values shown (separated by | in the schema below). Do not use synonyms, variations, or alternative phrasings.
36
42
  Return a single valid JSON object. Be thorough within the fields; brevity is not a goal. Match this schema:
37
43
  {
38
44
  "independent_baseline": "Your concise independent code review produced in Phase 1",
39
- "per_review_feedback": [{"candidate_id": "A", "agreement_level": "agree|partial|disagree", "missed_issues": ["..."], "false_positives": ["..."], "comments": "...", "overall_score_100": 80}],
45
+ "per_review_feedback": [{"candidate_id": "A", "agreement_level": "agree|partial|disagree", "missed_issues": ["..."], "false_positives": ["..."], "missed_issue_refs": [{"description": "...", "file": "path", "evidence": [{"location": "path:line", "observation": "1-2 quoted lines"}], "confidence": 0}], "false_positive_refs": [{"description": "...", "file": "path", "evidence": [{"location": "path:line", "observation": "1-2 quoted lines"}], "confidence": 0}], "comments": "...", "overall_score_100": 80}],
40
46
  "extra_blocking_issues": ["Any additional blocking issues not covered by other reviewers"],
41
47
  "extra_tests": ["Any additional tests that should be added"],
42
48
  "ranking": [{"candidate_id": "A", "rank": 1, "rationale": "..."}]
@@ -12,6 +12,12 @@ You are a code reviewer. Review the code changes for correctness, security, perf
12
12
  ## Rubric
13
13
  {{rubric}}
14
14
 
15
+ ## Repository Context Availability
16
+ context_available = {{context_available}}
17
+
18
+ ## Known Missing Evidence
19
+ If the context bundle has a 'Known missing evidence' section, do not give an unconditional pass on any dimension that depends on it; state the dependency.
20
+
15
21
  ## Review Lens
16
22
  {{call.id}}
17
23
  - If your call ID ends in _a: correctness and regressions first.
@@ -28,12 +34,25 @@ Analyze the code changes above. Identify blocking issues and non-blocking sugges
28
34
  - If the exact line is unknown, omit the line field entirely. Never use placeholder values like 0.
29
35
  - Do not mention your call ID, model name, or any self-identifying information in free-text fields (deliverable, evidence, reasoning, etc.). Only use your ID in the designated ID field.
30
36
 
31
- Return a single valid JSON object. Be thorough within the fields; brevity is not a goal. Match this schema:
37
+ ## Review Rules
38
+ - D1 STRUCTURAL GATING (driven by context_available = {{context_available}}):
39
+ - If {{context_available}} is false, you lack repository context beyond the diff and attached files. Do NOT make reuse, duplication, or layering claims as if verified. Emitting `structural_findings: []` and asserting the code is structurally clean is WRONG. Instead, if you observed a *possible* structural concern but cannot verify it without the wider repository, emit it in `structural_findings` with status `not_assessed_due_to_context` and a low `confidence`; otherwise emit an empty array. Never assert the code is structurally clean.
40
+ - If {{context_available}} is true, assess the five lenses (reuse, duplication, layering, naming, maintainability) against the available context and use status `assessed`.
41
+ - D4 EVIDENCE BREVITY: each finding may carry at most 2 `evidence` entries. Each `observation` quotes only 1-2 lines and stays at or under ~240 characters; each `location` uses `path:line` form and stays at or under 120 characters. Every evidence `location` MUST cite a file present in the diff or attached context — fabricated citations are stripped downstream, so do not invent paths or lines.
42
+ - MINIMALITY COUNTERWEIGHT: prefer the smallest correct fix. Do not inflate nits or style preferences into blocking issues.
43
+ - SEVERITY: `severity` is strictly one of critical|high|medium. No other values.
44
+ - CONTEXT FLAG: set the top-level `context_available` boolean equal to the {{context_available}} value (true when {{context_available}} is true, false when it is false).
45
+
46
+ Return a single valid JSON object. Match this schema:
32
47
  {
33
48
  "summary": "Brief review summary",
34
- "blocking_issues": [{"file": "path", "severity": "critical|high|medium", "description": "issue", "suggestion": "fix"}],
49
+ "blocking_issues": [{"file": "path", "severity": "critical|high|medium", "description": "issue", "suggestion": "fix", "evidence": [{"location": "path:line", "observation": "1-2 quoted lines"}], "confidence": 0}],
35
50
  "non_blocking_suggestions": [{"file": "path", "category": "style|naming|docs", "description": "suggestion"}],
36
- "rubric_scores": {"correctness": 0, "security": 0, "performance": 0, "readability": 0, "test_coverage": 0, "api_stability": 0},
51
+ "structural_findings": [{"file": "path", "lens": "reuse|duplication|layering|naming|maintainability", "description": "finding", "evidence": [{"location": "path:line", "observation": "1-2 quoted lines"}], "confidence": 0, "status": "assessed|not_assessed_due_to_context"}],
52
+ "rubric_scores": [{"criterion": "correctness", "score": 0, "reason": "why"}, {"criterion": "security", "score": 0, "reason": "why"}, {"criterion": "performance", "score": 0, "reason": "why"}, {"criterion": "readability", "score": 0, "reason": "why"}, {"criterion": "test_coverage", "score": 0, "reason": "why"}, {"criterion": "api_stability", "score": 0, "reason": "why"}],
53
+ "context_available": {{context_available}},
37
54
  "overall_score_100": 0,
38
55
  "tests_to_add_or_update": ["Test description"]
39
56
  }
57
+
58
+ The measured artifact is the final result file the runtime extracts — not a shorter chat recap. That file is pretty-printed JSON (2-space indent, trailing newline) and must stay at or under 75_000 UTF-8 bytes.
@@ -12,6 +12,9 @@ You are the council chairman synthesizing the final debugging verdict.
12
12
  ## Rubric
13
13
  {{rubric}}
14
14
 
15
+ ## Known Missing Evidence
16
+ If the context bundle has a 'Known missing evidence' section, do not give an unconditional pass on any dimension that depends on it; state the dependency.
17
+
15
18
  ## Instructions
16
19
  You have been provided with JSON files containing:
17
20
  1. Debugger analyses (from the debuggers stage)
@@ -9,6 +9,9 @@ You are a cross-reviewer evaluating debugger analyses.
9
9
  ## Rubric
10
10
  {{rubric}}
11
11
 
12
+ ## Known Missing Evidence
13
+ If the context bundle has a 'Known missing evidence' section, do not give an unconditional pass on any dimension that depends on it; state the dependency.
14
+
12
15
  ## Review Lens
13
16
  {{call.id}}
14
17
  - If your call ID ends in _a: validate causal chains and evidence quality.
@@ -12,6 +12,9 @@ You are a debugger analyzing an error or bug. Produce a structured debugging ana
12
12
  ## Rubric
13
13
  {{rubric}}
14
14
 
15
+ ## Known Missing Evidence
16
+ If the context bundle has a 'Known missing evidence' section, do not give an unconditional pass on any dimension that depends on it; state the dependency.
17
+
15
18
  ## Working Stance
16
19
  {{call.id}}
17
20
  - If your call ID ends in _a: prioritize the most likely root cause.
@@ -24,7 +27,8 @@ Analyze the error. Identify the most likely explanations with evidence, propose
24
27
  - List hypotheses ranked by likelihood. The first hypothesis is your leading candidate.
25
28
  - Use diagnostic_steps for concrete tests or checks to confirm/rule out each hypothesis.
26
29
  - Return exactly one JSON object matching the schema below.
27
- - Return a single valid JSON object. Be thorough within the fields; brevity is not a goal.
30
+ - Return a single valid JSON object. Be thorough within the fields.
31
+ - The measured artifact is the final result file the runtime extracts — not a shorter chat recap. That file is pretty-printed JSON (2-space indent, trailing newline) and must stay at or under 75_000 UTF-8 bytes.
28
32
  - Do not wrap the JSON in markdown fences.
29
33
  - Do not output prose before or after the JSON.
30
34
  - Use empty arrays instead of placeholder strings.
@@ -9,6 +9,9 @@ You are a research analyst investigating a topic. Produce structured findings.
9
9
  ## Rubric
10
10
  {{rubric}}
11
11
 
12
+ ## Known Missing Evidence
13
+ If the context bundle has a 'Known missing evidence' section, do not give an unconditional pass on any dimension that depends on it; state the dependency.
14
+
12
15
  ## Working Stance
13
16
  {{call.id}}
14
17
  - If your call ID ends in _a: prioritize factual mapping and key findings.
@@ -19,7 +22,8 @@ You are a research analyst investigating a topic. Produce structured findings.
19
22
  Analyze the request. Identify key findings with confidence levels and sources. Synthesize your analysis and note open questions.
20
23
  - Set your ID from your call ID (e.g., member_a, specialist_b).
21
24
  - Return exactly one JSON object matching the schema below.
22
- - Return a single valid JSON object. Be thorough within the fields; brevity is not a goal.
25
+ - Return a single valid JSON object. Be thorough within the fields.
26
+ - The measured artifact is the final result file the runtime extracts — not a shorter chat recap. That file is pretty-printed JSON (2-space indent, trailing newline) and must stay at or under 75_000 UTF-8 bytes.
23
27
  - Do not wrap the JSON in markdown fences.
24
28
  - Do not output prose before or after the JSON.
25
29
  - Use empty arrays instead of placeholder strings.
@@ -9,6 +9,9 @@ You are the council chairman synthesizing the final discovery verdict.
9
9
  ## Rubric
10
10
  {{rubric}}
11
11
 
12
+ ## Known Missing Evidence
13
+ If the context bundle has a 'Known missing evidence' section, do not give an unconditional pass on any dimension that depends on it; state the dependency.
14
+
12
15
  ## Instructions
13
16
  You have been provided with JSON files containing:
14
17
  1. Analyst findings (from the analysts stage)
@@ -6,6 +6,9 @@ You are a cross-reviewer evaluating analyst findings.
6
6
  ## Rubric
7
7
  {{rubric}}
8
8
 
9
+ ## Known Missing Evidence
10
+ If the context bundle has a 'Known missing evidence' section, do not give an unconditional pass on any dimension that depends on it; state the dependency.
11
+
9
12
  ## Review Lens
10
13
  {{call.id}}
11
14
  - If your call ID ends in _a: prioritize factual accuracy.