clinkx 1.0.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 (331) hide show
  1. package/CHANGELOG.md +86 -0
  2. package/README.md +72 -0
  3. package/clinkx-workflows/dist/chairman-knobs.d.ts +24 -0
  4. package/clinkx-workflows/dist/chairman-knobs.js +27 -0
  5. package/clinkx-workflows/dist/chairman-knobs.js.map +1 -0
  6. package/clinkx-workflows/dist/clink-client.d.ts +10 -0
  7. package/clinkx-workflows/dist/clink-client.js +39 -1
  8. package/clinkx-workflows/dist/clink-client.js.map +1 -1
  9. package/clinkx-workflows/dist/config.d.ts +29 -1
  10. package/clinkx-workflows/dist/config.js +35 -2
  11. package/clinkx-workflows/dist/config.js.map +1 -1
  12. package/clinkx-workflows/dist/context-preflight.d.ts +5 -0
  13. package/clinkx-workflows/dist/context-preflight.js.map +1 -1
  14. package/clinkx-workflows/dist/council-execution-policy.d.ts +68 -0
  15. package/clinkx-workflows/dist/council-execution-policy.js +110 -0
  16. package/clinkx-workflows/dist/council-execution-policy.js.map +1 -0
  17. package/clinkx-workflows/dist/council-expander.d.ts +9 -8
  18. package/clinkx-workflows/dist/council-expander.js +18 -9
  19. package/clinkx-workflows/dist/council-expander.js.map +1 -1
  20. package/clinkx-workflows/dist/dashboard/activity-contract.d.ts +5557 -4
  21. package/clinkx-workflows/dist/dashboard/activity-contract.js +55 -3
  22. package/clinkx-workflows/dist/dashboard/activity-contract.js.map +1 -1
  23. package/clinkx-workflows/dist/dashboard/activity-reader.d.ts +9 -5
  24. package/clinkx-workflows/dist/dashboard/activity-reader.js +15 -2
  25. package/clinkx-workflows/dist/dashboard/activity-reader.js.map +1 -1
  26. package/clinkx-workflows/dist/dashboard/api-routes.d.ts +4 -0
  27. package/clinkx-workflows/dist/dashboard/api-routes.js +133 -25
  28. package/clinkx-workflows/dist/dashboard/api-routes.js.map +1 -1
  29. package/clinkx-workflows/dist/dashboard/context-builder-invocation-contract.d.ts +3865 -0
  30. package/clinkx-workflows/dist/dashboard/context-builder-invocation-contract.js +69 -0
  31. package/clinkx-workflows/dist/dashboard/context-builder-invocation-contract.js.map +1 -0
  32. package/clinkx-workflows/dist/dashboard/context-run-reader.d.ts +36 -2
  33. package/clinkx-workflows/dist/dashboard/context-run-reader.js +142 -19
  34. package/clinkx-workflows/dist/dashboard/context-run-reader.js.map +1 -1
  35. package/clinkx-workflows/dist/dashboard/contracts.d.ts +20027 -480
  36. package/clinkx-workflows/dist/dashboard/contracts.js +133 -6
  37. package/clinkx-workflows/dist/dashboard/contracts.js.map +1 -1
  38. package/clinkx-workflows/dist/dashboard/index.d.ts +4 -0
  39. package/clinkx-workflows/dist/dashboard/index.js +4 -0
  40. package/clinkx-workflows/dist/dashboard/index.js.map +1 -1
  41. package/clinkx-workflows/dist/dashboard/invocation-contract.d.ts +786 -0
  42. package/clinkx-workflows/dist/dashboard/invocation-contract.js +201 -0
  43. package/clinkx-workflows/dist/dashboard/invocation-contract.js.map +1 -0
  44. package/clinkx-workflows/dist/dashboard/lazy-content.d.ts +14 -1
  45. package/clinkx-workflows/dist/dashboard/lazy-content.js +53 -2
  46. package/clinkx-workflows/dist/dashboard/lazy-content.js.map +1 -1
  47. package/clinkx-workflows/dist/dashboard/native-transcript/contract.d.ts +90 -0
  48. package/clinkx-workflows/dist/dashboard/native-transcript/contract.js +31 -0
  49. package/clinkx-workflows/dist/dashboard/native-transcript/contract.js.map +1 -0
  50. package/clinkx-workflows/dist/dashboard/native-transcript/projection.d.ts +12 -0
  51. package/clinkx-workflows/dist/dashboard/native-transcript/projection.js +286 -0
  52. package/clinkx-workflows/dist/dashboard/native-transcript/projection.js.map +1 -0
  53. package/clinkx-workflows/dist/dashboard/progress-report-contract.d.ts +147 -4
  54. package/clinkx-workflows/dist/dashboard/progress-report-contract.js +11 -11
  55. package/clinkx-workflows/dist/dashboard/progress-report-contract.js.map +1 -1
  56. package/clinkx-workflows/dist/dashboard/progress-report-reader.js +4 -56
  57. package/clinkx-workflows/dist/dashboard/progress-report-reader.js.map +1 -1
  58. package/clinkx-workflows/dist/dashboard/progress-report-status-store.d.ts +2 -1
  59. package/clinkx-workflows/dist/dashboard/progress-report-status-store.js +6 -5
  60. package/clinkx-workflows/dist/dashboard/progress-report-status-store.js.map +1 -1
  61. package/clinkx-workflows/dist/dashboard/prompt-builder-library-contract.d.ts +194 -0
  62. package/clinkx-workflows/dist/dashboard/prompt-builder-library-contract.js +89 -0
  63. package/clinkx-workflows/dist/dashboard/prompt-builder-library-contract.js.map +1 -0
  64. package/clinkx-workflows/dist/dashboard/prompt-builder-library-store.d.ts +26 -0
  65. package/clinkx-workflows/dist/dashboard/prompt-builder-library-store.js +102 -0
  66. package/clinkx-workflows/dist/dashboard/prompt-builder-library-store.js.map +1 -0
  67. package/clinkx-workflows/dist/dashboard/request-admission.js +4 -0
  68. package/clinkx-workflows/dist/dashboard/request-admission.js.map +1 -1
  69. package/clinkx-workflows/dist/dashboard/scanner.d.ts +3 -0
  70. package/clinkx-workflows/dist/dashboard/scanner.js +52 -8
  71. package/clinkx-workflows/dist/dashboard/scanner.js.map +1 -1
  72. package/clinkx-workflows/dist/dashboard/server-factory.d.ts +14 -1
  73. package/clinkx-workflows/dist/dashboard/server-factory.js +73 -21
  74. package/clinkx-workflows/dist/dashboard/server-factory.js.map +1 -1
  75. package/clinkx-workflows/dist/dashboard/session-log-contract.d.ts +223 -56
  76. package/clinkx-workflows/dist/dashboard/session-log-contract.js +26 -0
  77. package/clinkx-workflows/dist/dashboard/session-log-contract.js.map +1 -1
  78. package/clinkx-workflows/dist/dashboard/session-log-journal.js +10 -3
  79. package/clinkx-workflows/dist/dashboard/session-log-journal.js.map +1 -1
  80. package/clinkx-workflows/dist/dashboard/session-log-redaction.d.ts +9 -1
  81. package/clinkx-workflows/dist/dashboard/session-log-redaction.js +793 -59
  82. package/clinkx-workflows/dist/dashboard/session-log-redaction.js.map +1 -1
  83. package/clinkx-workflows/dist/dashboard-ui/assets/index-JPHQVtn9.js +106 -0
  84. package/clinkx-workflows/dist/dashboard-ui/assets/style-DOMHk-j6.css +1 -0
  85. package/clinkx-workflows/dist/dashboard-ui/index.html +2 -2
  86. package/clinkx-workflows/dist/delegate-finalizer-policy.d.ts +26 -0
  87. package/clinkx-workflows/dist/delegate-finalizer-policy.js +72 -0
  88. package/clinkx-workflows/dist/delegate-finalizer-policy.js.map +1 -0
  89. package/clinkx-workflows/dist/delegate-signature.d.ts +14 -0
  90. package/clinkx-workflows/dist/delegate-signature.js +14 -0
  91. package/clinkx-workflows/dist/delegate-signature.js.map +1 -0
  92. package/clinkx-workflows/dist/delegate-validate.d.ts +32 -2
  93. package/clinkx-workflows/dist/delegate-validate.js +51 -0
  94. package/clinkx-workflows/dist/delegate-validate.js.map +1 -1
  95. package/clinkx-workflows/dist/engine.d.ts +113 -3
  96. package/clinkx-workflows/dist/engine.js +476 -80
  97. package/clinkx-workflows/dist/engine.js.map +1 -1
  98. package/clinkx-workflows/dist/errors.d.ts +22 -2
  99. package/clinkx-workflows/dist/errors.js +30 -2
  100. package/clinkx-workflows/dist/errors.js.map +1 -1
  101. package/clinkx-workflows/dist/fidelity.d.ts +47 -1
  102. package/clinkx-workflows/dist/fidelity.js +54 -1
  103. package/clinkx-workflows/dist/fidelity.js.map +1 -1
  104. package/clinkx-workflows/dist/fingerprint.d.ts +24 -6
  105. package/clinkx-workflows/dist/fingerprint.js +32 -9
  106. package/clinkx-workflows/dist/fingerprint.js.map +1 -1
  107. package/clinkx-workflows/dist/index.js +53 -1
  108. package/clinkx-workflows/dist/index.js.map +1 -1
  109. package/clinkx-workflows/dist/logger.d.ts +1 -1
  110. package/clinkx-workflows/dist/logger.js +17 -3
  111. package/clinkx-workflows/dist/logger.js.map +1 -1
  112. package/clinkx-workflows/dist/monotonic-clock.d.ts +19 -0
  113. package/clinkx-workflows/dist/monotonic-clock.js +22 -0
  114. package/clinkx-workflows/dist/monotonic-clock.js.map +1 -0
  115. package/clinkx-workflows/dist/plan-review/contract.d.ts +52 -52
  116. package/clinkx-workflows/dist/plan-review/publication.d.ts +4 -4
  117. package/clinkx-workflows/dist/plan-review/run-state.d.ts +16 -16
  118. package/clinkx-workflows/dist/roster-contract.d.ts +889 -0
  119. package/clinkx-workflows/dist/roster-contract.js +180 -0
  120. package/clinkx-workflows/dist/roster-contract.js.map +1 -0
  121. package/clinkx-workflows/dist/rosters.d.ts +14 -0
  122. package/clinkx-workflows/dist/rosters.js +169 -0
  123. package/clinkx-workflows/dist/rosters.js.map +1 -0
  124. package/clinkx-workflows/dist/run-health.d.ts +7 -0
  125. package/clinkx-workflows/dist/run-health.js +25 -0
  126. package/clinkx-workflows/dist/run-health.js.map +1 -0
  127. package/clinkx-workflows/dist/schema.d.ts +64 -0
  128. package/clinkx-workflows/dist/schema.js +24 -0
  129. package/clinkx-workflows/dist/schema.js.map +1 -1
  130. package/clinkx-workflows/dist/server.js +2 -0
  131. package/clinkx-workflows/dist/server.js.map +1 -1
  132. package/clinkx-workflows/dist/shutdown.d.ts +15 -2
  133. package/clinkx-workflows/dist/shutdown.js +60 -16
  134. package/clinkx-workflows/dist/shutdown.js.map +1 -1
  135. package/clinkx-workflows/dist/state-schema.d.ts +23 -0
  136. package/clinkx-workflows/dist/state.d.ts +5 -0
  137. package/clinkx-workflows/dist/state.js +128 -21
  138. package/clinkx-workflows/dist/state.js.map +1 -1
  139. package/clinkx-workflows/dist/stdio-watchdog.d.ts +52 -0
  140. package/clinkx-workflows/dist/stdio-watchdog.js +212 -0
  141. package/clinkx-workflows/dist/stdio-watchdog.js.map +1 -0
  142. package/clinkx-workflows/dist/types.d.ts +6 -0
  143. package/clinkx-workflows/dist/validators/council.d.ts +50 -50
  144. package/clinkx-workflows/dist/validators/plan-review.d.ts +3 -3
  145. package/clinkx-workflows/dist/workflow-tools.d.ts +70 -0
  146. package/clinkx-workflows/dist/workflow-tools.js +760 -168
  147. package/clinkx-workflows/dist/workflow-tools.js.map +1 -1
  148. package/clinkx-workflows/templates/council/answer-chairman.txt +3 -0
  149. package/clinkx-workflows/templates/council/answer-cross-reviewer.txt +3 -0
  150. package/clinkx-workflows/templates/council/answer-specialist.txt +3 -0
  151. package/clinkx-workflows/templates/council/chairman.txt +3 -0
  152. package/clinkx-workflows/templates/council/code-review-chairman.txt +3 -0
  153. package/clinkx-workflows/templates/council/code-review-cross-reviewer.txt +3 -0
  154. package/clinkx-workflows/templates/council/code-review-reviewer.txt +3 -0
  155. package/clinkx-workflows/templates/council/debug-chairman.txt +3 -0
  156. package/clinkx-workflows/templates/council/debug-cross-reviewer.txt +3 -0
  157. package/clinkx-workflows/templates/council/debug-debugger.txt +3 -0
  158. package/clinkx-workflows/templates/council/discover-analyst.txt +3 -0
  159. package/clinkx-workflows/templates/council/discover-chairman.txt +3 -0
  160. package/clinkx-workflows/templates/council/discover-cross-reviewer.txt +3 -0
  161. package/clinkx-workflows/templates/council/member.txt +3 -0
  162. package/clinkx-workflows/templates/council/plan-review-chairman.txt +3 -0
  163. package/clinkx-workflows/templates/council/plan-review-cross-reviewer.txt +3 -0
  164. package/clinkx-workflows/templates/council/plan-review-reviewer.txt +3 -0
  165. package/clinkx-workflows/templates/council/reviewer.txt +3 -0
  166. package/clinkx-workflows/workflows/council-answer.yaml +3 -0
  167. package/clinkx-workflows/workflows/council-code-review.yaml +3 -0
  168. package/clinkx-workflows/workflows/council-debug.yaml +3 -0
  169. package/clinkx-workflows/workflows/council-default.yaml +7 -0
  170. package/clinkx-workflows/workflows/council-discover.yaml +3 -0
  171. package/clinkx-workflows/workflows/council-plan-review.yaml +3 -0
  172. package/conf/adapters/agy.json +9 -2
  173. package/conf/adapters/claude.json +7 -0
  174. package/conf/adapters/codex.json +7 -0
  175. package/conf/adapters/glm.json +19 -3
  176. package/conf/adapters/grok.json +9 -2
  177. package/conf/adapters/hapi/agy.json +9 -2
  178. package/conf/adapters/hapi/claude.json +7 -0
  179. package/conf/adapters/hapi/codex.json +7 -0
  180. package/conf/adapters/hapi/glm.json +20 -4
  181. package/conf/rosters/default-council.json +21 -0
  182. package/dist/activity-journal.d.ts +17 -3
  183. package/dist/activity-journal.js +404 -79
  184. package/dist/activity-journal.js.map +1 -1
  185. package/dist/codex/agent-tools.js +36 -0
  186. package/dist/codex/agent-tools.js.map +1 -1
  187. package/dist/codex/app-server-client.d.ts +3 -0
  188. package/dist/codex/app-server-client.js +11 -0
  189. package/dist/codex/app-server-client.js.map +1 -1
  190. package/dist/codex/app-server-registry.d.ts +18 -0
  191. package/dist/codex/app-server-registry.js +88 -2
  192. package/dist/codex/app-server-registry.js.map +1 -1
  193. package/dist/codex/client-types.d.ts +7 -1
  194. package/dist/codex/protocol.d.ts +4 -4
  195. package/dist/config.d.ts +220 -23
  196. package/dist/config.js +104 -1
  197. package/dist/config.js.map +1 -1
  198. package/dist/context-builder/bundle.d.ts +13 -0
  199. package/dist/context-builder/bundle.js +46 -0
  200. package/dist/context-builder/bundle.js.map +1 -1
  201. package/dist/context-builder/delegate-finalizer-effective.d.ts +33 -0
  202. package/dist/context-builder/delegate-finalizer-effective.js +82 -0
  203. package/dist/context-builder/delegate-finalizer-effective.js.map +1 -0
  204. package/dist/context-builder/delegate-packet.d.ts +18 -0
  205. package/dist/context-builder/delegate-packet.js +73 -9
  206. package/dist/context-builder/delegate-packet.js.map +1 -1
  207. package/dist/context-builder/delegate-reconstruction.d.ts +29 -0
  208. package/dist/context-builder/delegate-reconstruction.js +110 -41
  209. package/dist/context-builder/delegate-reconstruction.js.map +1 -1
  210. package/dist/context-builder/delegate-validation.d.ts +31 -0
  211. package/dist/context-builder/delegate-validation.js +87 -10
  212. package/dist/context-builder/delegate-validation.js.map +1 -1
  213. package/dist/context-builder/delegate.d.ts +9 -0
  214. package/dist/context-builder/delegate.js +210 -59
  215. package/dist/context-builder/delegate.js.map +1 -1
  216. package/dist/context-builder/diagnostics.d.ts +1 -1
  217. package/dist/context-builder/diagnostics.js.map +1 -1
  218. package/dist/context-builder/discovery-progress.d.ts +25 -0
  219. package/dist/context-builder/discovery-progress.js +64 -0
  220. package/dist/context-builder/discovery-progress.js.map +1 -0
  221. package/dist/context-builder/discovery-watchdog.d.ts +15 -0
  222. package/dist/context-builder/discovery-watchdog.js +39 -0
  223. package/dist/context-builder/discovery-watchdog.js.map +1 -0
  224. package/dist/context-builder/discovery.d.ts +7 -0
  225. package/dist/context-builder/discovery.js +119 -7
  226. package/dist/context-builder/discovery.js.map +1 -1
  227. package/dist/context-builder/external-gaps.d.ts +73 -0
  228. package/dist/context-builder/external-gaps.js +248 -0
  229. package/dist/context-builder/external-gaps.js.map +1 -0
  230. package/dist/context-builder/globs.d.ts +1 -0
  231. package/dist/context-builder/globs.js +15 -0
  232. package/dist/context-builder/globs.js.map +1 -1
  233. package/dist/context-builder/handler.d.ts +42 -1
  234. package/dist/context-builder/handler.js +690 -62
  235. package/dist/context-builder/handler.js.map +1 -1
  236. package/dist/context-builder/invocation-sidecar.d.ts +41 -0
  237. package/dist/context-builder/invocation-sidecar.js +189 -0
  238. package/dist/context-builder/invocation-sidecar.js.map +1 -0
  239. package/dist/context-builder/lifecycle-contract.d.ts +51 -51
  240. package/dist/context-builder/mutation-lock.d.ts +32 -0
  241. package/dist/context-builder/mutation-lock.js +321 -0
  242. package/dist/context-builder/mutation-lock.js.map +1 -0
  243. package/dist/context-builder/review-coverage.d.ts +32 -0
  244. package/dist/context-builder/review-coverage.js +130 -23
  245. package/dist/context-builder/review-coverage.js.map +1 -1
  246. package/dist/context-builder/schema.d.ts +76 -1
  247. package/dist/context-builder/schema.js +21 -1
  248. package/dist/context-builder/schema.js.map +1 -1
  249. package/dist/context-builder/secrets.d.ts +31 -0
  250. package/dist/context-builder/secrets.js +865 -83
  251. package/dist/context-builder/secrets.js.map +1 -1
  252. package/dist/context-builder/status.d.ts +1 -1
  253. package/dist/context-builder/status.js +1 -0
  254. package/dist/context-builder/status.js.map +1 -1
  255. package/dist/context-builder/storage.d.ts +29 -5
  256. package/dist/context-builder/storage.js +311 -236
  257. package/dist/context-builder/storage.js.map +1 -1
  258. package/dist/context-builder/versions.d.ts +19 -4
  259. package/dist/context-builder/versions.js +19 -4
  260. package/dist/context-builder/versions.js.map +1 -1
  261. package/dist/context-builder/workflow-runner.d.ts +6 -0
  262. package/dist/context-builder/workflow-runner.js +363 -173
  263. package/dist/context-builder/workflow-runner.js.map +1 -1
  264. package/dist/dashboard-adapter-catalog.js +7 -0
  265. package/dist/dashboard-adapter-catalog.js.map +1 -1
  266. package/dist/dashboard-cli.d.ts +2 -0
  267. package/dist/dashboard-cli.js +40 -2
  268. package/dist/dashboard-cli.js.map +1 -1
  269. package/dist/dashboard-companion/client.d.ts +1 -0
  270. package/dist/dashboard-companion/client.js +22 -3
  271. package/dist/dashboard-companion/client.js.map +1 -1
  272. package/dist/dashboard-companion/protocol.js +4 -1
  273. package/dist/dashboard-companion/protocol.js.map +1 -1
  274. package/dist/dashboard-gateway/index.d.ts +1 -0
  275. package/dist/dashboard-gateway/index.js +33 -2
  276. package/dist/dashboard-gateway/index.js.map +1 -1
  277. package/dist/handler.js +5 -1
  278. package/dist/handler.js.map +1 -1
  279. package/dist/index.d.ts +18 -1
  280. package/dist/index.js +145 -7
  281. package/dist/index.js.map +1 -1
  282. package/dist/logger.d.ts +1 -1
  283. package/dist/logger.js +18 -3
  284. package/dist/logger.js.map +1 -1
  285. package/dist/parsers/agy-stream-json.d.ts +14 -0
  286. package/dist/parsers/agy-stream-json.js +172 -0
  287. package/dist/parsers/agy-stream-json.js.map +1 -0
  288. package/dist/parsers/extract.js +5 -1
  289. package/dist/parsers/extract.js.map +1 -1
  290. package/dist/parsers/observed-invocation.d.ts +20 -0
  291. package/dist/parsers/observed-invocation.js +42 -0
  292. package/dist/parsers/observed-invocation.js.map +1 -0
  293. package/dist/pipeline.d.ts +13 -0
  294. package/dist/pipeline.js +60 -10
  295. package/dist/pipeline.js.map +1 -1
  296. package/dist/progress-report/lock.d.ts +74 -0
  297. package/dist/progress-report/lock.js +343 -0
  298. package/dist/progress-report/lock.js.map +1 -0
  299. package/dist/progress-report/schema.d.ts +808 -0
  300. package/dist/progress-report/schema.js +119 -0
  301. package/dist/progress-report/schema.js.map +1 -0
  302. package/dist/progress-report/store.d.ts +66 -0
  303. package/dist/progress-report/store.js +766 -0
  304. package/dist/progress-report/store.js.map +1 -0
  305. package/dist/progress-report/tools.d.ts +20 -0
  306. package/dist/progress-report/tools.js +141 -0
  307. package/dist/progress-report/tools.js.map +1 -0
  308. package/dist/prompt-mode.d.ts +1 -1
  309. package/dist/prompt-mode.js +7 -2
  310. package/dist/prompt-mode.js.map +1 -1
  311. package/dist/runner.d.ts +7 -0
  312. package/dist/runner.js +10 -3
  313. package/dist/runner.js.map +1 -1
  314. package/dist/safety.d.ts +50 -0
  315. package/dist/safety.js +182 -1
  316. package/dist/safety.js.map +1 -1
  317. package/dist/schema.d.ts +8 -0
  318. package/dist/schema.js +20 -0
  319. package/dist/schema.js.map +1 -1
  320. package/dist/server.d.ts +6 -1
  321. package/dist/server.js +94 -8
  322. package/dist/server.js.map +1 -1
  323. package/dist/session-log-stream.d.ts +1 -1
  324. package/dist/session-log-stream.js +280 -33
  325. package/dist/session-log-stream.js.map +1 -1
  326. package/dist/stdio-activity.d.ts +28 -0
  327. package/dist/stdio-activity.js +72 -0
  328. package/dist/stdio-activity.js.map +1 -0
  329. package/package.json +2 -1
  330. package/clinkx-workflows/dist/dashboard-ui/assets/index-DOkMXTfB.js +0 -25
  331. package/clinkx-workflows/dist/dashboard-ui/assets/style-ChJsn0KD.css +0 -1
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { InvocationAuditV1Schema, InvocationAuditV2Schema, ObservedInvocationV1Schema, } from "./invocation-contract.js";
2
3
  export const ACTIVITY_STATE_FILENAME = "state.json";
3
4
  export const ACTIVITY_RESULT_FILENAME = "result.txt";
4
5
  export const DEFAULT_MAX_ACTIVITY_RESULT_BYTES = 64 * 1_024;
@@ -36,8 +37,7 @@ export const ActivityResultReferenceSchema = z.object({
36
37
  sha256: z.string().length(64).regex(/^[0-9a-f]+$/),
37
38
  truncated: z.boolean(),
38
39
  }).strict();
39
- export const ActivityStateV1Schema = z.object({
40
- schemaVersion: z.literal("clinkx-dashboard-activity-v1"),
40
+ const ActivityStateCommonShape = {
41
41
  activityId: ActivityIdSchema,
42
42
  kind: ActivityKindSchema,
43
43
  phase: ActivityPhaseSchema,
@@ -58,7 +58,9 @@ export const ActivityStateV1Schema = z.object({
58
58
  * dashboard reader caps and defends the array defensively on projection.
59
59
  */
60
60
  projectFolders: z.array(z.string()).optional(),
61
- }).strict().superRefine((state, context) => {
61
+ };
62
+ const ActivityStateCommonSchema = z.object(ActivityStateCommonShape).strict();
63
+ function refineActivityState(state, context) {
62
64
  const terminal = state.phase === "terminal";
63
65
  if (terminal !== (state.status !== "running")) {
64
66
  context.addIssue({
@@ -101,5 +103,55 @@ export const ActivityStateV1Schema = z.object({
101
103
  path: ["outcome"],
102
104
  });
103
105
  }
106
+ }
107
+ /** Canonical legacy shape. Its strict decoder intentionally has no invocation. */
108
+ export const ActivityStateV1Schema = z.object({
109
+ schemaVersion: z.literal("clinkx-dashboard-activity-v1"),
110
+ ...ActivityStateCommonShape,
111
+ }).strict().superRefine(refineActivityState);
112
+ /**
113
+ * Read-only bridge for PR-era bytes that added `invocation` without bumping
114
+ * the outer activity version. Canonical writers must never target this schema.
115
+ */
116
+ export const TransitionalActivityStateV1WithInvocationReadSchema = z.object({
117
+ schemaVersion: z.literal("clinkx-dashboard-activity-v1"),
118
+ ...ActivityStateCommonShape,
119
+ invocation: InvocationAuditV1Schema,
120
+ }).strict().superRefine(refineActivityState);
121
+ /** Canonical new shape. V2 records carry the versioned invocation audit. */
122
+ export const ActivityStateV2Schema = z.object({
123
+ schemaVersion: z.literal("clinkx-dashboard-activity-v2"),
124
+ ...ActivityStateCommonShape,
125
+ invocation: InvocationAuditV2Schema,
126
+ }).strict().superRefine(refineActivityState);
127
+ /**
128
+ * Observed-invocation shape. `invocation` remains the pre-dispatch audit when
129
+ * one exists (begin-time V2); `observedInvocation` carries what the provider
130
+ * actually reported. At least one of the two must be present — a V3 record
131
+ * exists precisely to carry invocation evidence.
132
+ */
133
+ export const ActivityStateV3Schema = z.object({
134
+ schemaVersion: z.literal("clinkx-dashboard-activity-v3"),
135
+ ...ActivityStateCommonShape,
136
+ invocation: InvocationAuditV2Schema.optional(),
137
+ observedInvocation: ObservedInvocationV1Schema.optional(),
138
+ }).strict()
139
+ .superRefine(refineActivityState)
140
+ .superRefine((state, context) => {
141
+ if (state.invocation === undefined &&
142
+ state.observedInvocation === undefined) {
143
+ context.addIssue({
144
+ code: z.ZodIssueCode.custom,
145
+ message: "V3 activity state requires invocation or observedInvocation",
146
+ path: ["observedInvocation"],
147
+ });
148
+ }
104
149
  });
150
+ /** Reader-first rollout union for V3, V2, transitional PR bytes, and canonical V1. */
151
+ export const ActivityStateReadSchema = z.union([
152
+ ActivityStateV3Schema,
153
+ ActivityStateV2Schema,
154
+ TransitionalActivityStateV1WithInvocationReadSchema,
155
+ ActivityStateV1Schema,
156
+ ]);
105
157
  //# sourceMappingURL=activity-contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"activity-contract.js","sourceRoot":"","sources":["../../src/dashboard/activity-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activity-contract.js","sourceRoot":"","sources":["../../src/dashboard/activity-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAElC,MAAM,CAAC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AACpD,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,CAAC;AACrD,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,GAAG,KAAK,CAAC;AAC5D,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,GAAG,KAAK,CAAC;AACnD,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAClD,MAAM,CAAC,MAAM,gCAAgC,GAAG,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AAChE,MAAM,CAAC,MAAM,sCAAsC,GAAG,MAAM,CAAC;AAE7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,CAAC;KACN,GAAG,CAAC,GAAG,CAAC;KACR,KAAK,CAAC,kBAAkB,CAAC,CAAC;AAC7B,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAEtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC;IACxC,WAAW;IACX,SAAS;IACT,SAAS;IACT,UAAU;CACX,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,IAAI,CAAC;IACjD,WAAW;IACX,QAAQ;IACR,WAAW;CACZ,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC9C,SAAS;IACT,OAAO;IACP,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACpD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,iCAAiC,CAAC;IACrE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;IAClD,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;CACvB,CAAC,CAAC,MAAM,EAAE,CAAC;AAEZ,MAAM,wBAAwB,GAAG;IAC/B,UAAU,EAAE,gBAAgB;IAC5B,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,mBAAmB;IAC1B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC/D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,SAAS,EAAE,uBAAuB;IAClC,cAAc,EAAE,uBAAuB;IACvC,cAAc,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IAClD,WAAW,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IAC/C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,IAAI,EAAE,yBAAyB;KAChC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACtB,MAAM,EAAE,6BAA6B,CAAC,QAAQ,EAAE;IAChD;;;;OAIG;IACH,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC/C,CAAC;AACF,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,MAAM,EAAE,CAAC;AAE9E,SAAS,mBAAmB,CAC1B,KAAgD,EAChD,OAAwB;IAExB,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,KAAK,UAAU,CAAC;IAC5C,IAAI,QAAQ,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,EAAE,CAAC;QAC9C,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,sCAAsC;YAC/C,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,KAAK,CACf,KAAK,CAAC,WAAW,KAAK,SAAS;QAC/B,KAAK,CAAC,OAAO,KAAK,SAAS,CAC5B,EAAE,CAAC;QACF,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,8CAA8C;YACvD,IAAI,EAAE,CAAC,aAAa,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;IACD,IACE,KAAK,CAAC,IAAI,KAAK,iBAAiB;QAChC,KAAK,CAAC,MAAM,KAAK,SAAS,EAC1B,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,wCAAwC;YACjD,IAAI,EAAE,CAAC,QAAQ,CAAC;SACjB,CAAC,CAAC;IACL,CAAC;IACD,IACE,KAAK,CAAC,IAAI,KAAK,iBAAiB;QAChC,KAAK,CAAC,KAAK,KAAK,SAAS,EACzB,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,4CAA4C;YACrD,IAAI,EAAE,CAAC,OAAO,CAAC;SAChB,CAAC,CAAC;IACL,CAAC;IACD,IACE,QAAQ;QACR,CACE,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,SAAS,CAAC;YACnE,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,OAAO,CAAC;YAC9D,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,WAAW,CAAC,CACtE,EACD,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,wCAAwC;YACjD,IAAI,EAAE,CAAC,SAAS,CAAC;SAClB,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC;IACxD,GAAG,wBAAwB;CAC5B,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AAE7C;;;GAGG;AACH,MAAM,CAAC,MAAM,mDAAmD,GAC9D,CAAC,CAAC,MAAM,CAAC;IACP,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC;IACxD,GAAG,wBAAwB;IAC3B,UAAU,EAAE,uBAAuB;CACpC,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AAE/C,4EAA4E;AAC5E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC;IACxD,GAAG,wBAAwB;IAC3B,UAAU,EAAE,uBAAuB;CACpC,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC;IACxD,GAAG,wBAAwB;IAC3B,UAAU,EAAE,uBAAuB,CAAC,QAAQ,EAAE;IAC9C,kBAAkB,EAAE,0BAA0B,CAAC,QAAQ,EAAE;CAC1D,CAAC,CAAC,MAAM,EAAE;KACR,WAAW,CAAC,mBAAmB,CAAC;KAChC,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IAC9B,IACE,KAAK,CAAC,UAAU,KAAK,SAAS;QAC9B,KAAK,CAAC,kBAAkB,KAAK,SAAS,EACtC,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,MAAM;YAC3B,OAAO,EAAE,6DAA6D;YACtE,IAAI,EAAE,CAAC,oBAAoB,CAAC;SAC7B,CAAC,CAAC;IACL,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,sFAAsF;AACtF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC;IAC7C,qBAAqB;IACrB,qBAAqB;IACrB,mDAAmD;IACnD,qBAAqB;CACtB,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { readContainedRelativeFile } from "../contained-file.js";
2
- import { type ActivityStateV1 } from "./activity-contract.js";
2
+ import { type ActivityStateRead } from "./activity-contract.js";
3
+ import type { InvocationAuditRead, ObservedInvocationV1 } from "./invocation-contract.js";
3
4
  import { type ActivityLeaseObservation } from "./activity-lease.js";
4
5
  export interface DashboardActivityIdentity {
5
6
  readonly activityId: string;
@@ -7,9 +8,9 @@ export interface DashboardActivityIdentity {
7
8
  readonly stateRevision: string;
8
9
  }
9
10
  export interface DashboardActivityListItem extends DashboardActivityIdentity {
10
- readonly kind: ActivityStateV1["kind"];
11
- readonly phase: ActivityStateV1["phase"];
12
- readonly status: ActivityStateV1["status"];
11
+ readonly kind: ActivityStateRead["kind"];
12
+ readonly phase: ActivityStateRead["phase"];
13
+ readonly status: ActivityStateRead["status"];
13
14
  readonly adapter: string;
14
15
  readonly role: string;
15
16
  readonly startedAt: string;
@@ -25,8 +26,11 @@ export interface DashboardActivityListItem extends DashboardActivityIdentity {
25
26
  readonly leaseObservation: ActivityLeaseObservation;
26
27
  }
27
28
  export interface DashboardActivityDetail extends DashboardActivityListItem {
28
- readonly outcome?: ActivityStateV1["outcome"];
29
+ readonly outcome?: ActivityStateRead["outcome"];
29
30
  readonly resultTruncated?: boolean;
31
+ readonly invocation?: InvocationAuditRead;
32
+ /** Detail only — runtime-observed knobs; list rows omit observedInvocation. */
33
+ readonly observedInvocation?: ObservedInvocationV1;
30
34
  }
31
35
  export interface DashboardActivityListResponse {
32
36
  readonly activities: readonly DashboardActivityListItem[];
@@ -3,7 +3,7 @@ import { lstat, opendir } from "node:fs/promises";
3
3
  import { resolve } from "node:path";
4
4
  import { ContainedFileTooLargeError, containedFileFingerprintsEqual, readContainedRelativeFile, } from "../contained-file.js";
5
5
  import { DashboardInvalidCursorError } from "./artifact-index.js";
6
- import { ACTIVITY_RESULT_FILENAME, ACTIVITY_STATE_FILENAME, ActivityIdSchema, ActivityStateV1Schema, MAX_ACTIVITY_STATE_BYTES, } from "./activity-contract.js";
6
+ import { ACTIVITY_RESULT_FILENAME, ACTIVITY_STATE_FILENAME, ActivityIdSchema, ActivityStateReadSchema, MAX_ACTIVITY_STATE_BYTES, } from "./activity-contract.js";
7
7
  import { MAX_DASHBOARD_ROOTS } from "./contracts.js";
8
8
  import { deriveActivityGeneration } from "./generation.js";
9
9
  import { classifyActivityLease, isActivityLivePin, } from "./activity-lease.js";
@@ -102,6 +102,13 @@ function listItem(admitted) {
102
102
  };
103
103
  }
104
104
  function detailFor(admitted) {
105
+ const invocation = "invocation" in admitted.state
106
+ ? admitted.state.invocation
107
+ : undefined;
108
+ // Only the V3 member of the read union declares this key; `in` narrows.
109
+ const observedInvocation = "observedInvocation" in admitted.state
110
+ ? admitted.state.observedInvocation
111
+ : undefined;
105
112
  return {
106
113
  ...listItem(admitted),
107
114
  ...(admitted.state.outcome === undefined
@@ -110,6 +117,12 @@ function detailFor(admitted) {
110
117
  ...(admitted.state.result === undefined
111
118
  ? {}
112
119
  : { resultTruncated: admitted.state.result.truncated }),
120
+ ...(invocation === undefined
121
+ ? {}
122
+ : { invocation }),
123
+ ...(observedInvocation === undefined
124
+ ? {}
125
+ : { observedInvocation }),
113
126
  };
114
127
  }
115
128
  function overlayListItem(item, leaseUpdatedAt, nowMs) {
@@ -163,7 +176,7 @@ async function admit(activitiesRoot, activityId, readStateFile, expectedGenerati
163
176
  return undefined;
164
177
  let parsed;
165
178
  try {
166
- const result = ActivityStateV1Schema.safeParse(JSON.parse(stateRead.content));
179
+ const result = ActivityStateReadSchema.safeParse(JSON.parse(stateRead.content));
167
180
  if (result.success)
168
181
  parsed = result.data;
169
182
  }
@@ -1 +1 @@
1
- {"version":3,"file":"activity-reader.js","sourceRoot":"","sources":["../../src/dashboard/activity-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activity-reader.js","sourceRoot":"","sources":["../../src/dashboard/activity-reader.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { type ContextRunReader } from "./context-run-reader.js";
7
7
  import { type SessionLogReader } from "./session-log-reader.js";
8
8
  import { type DashboardProgressReportReader } from "./progress-report-reader.js";
9
9
  import { type ProgressReportStatusOverrideStore } from "./progress-report-status-store.js";
10
+ import { type PromptBuilderLibraryStore } from "./prompt-builder-library-store.js";
10
11
  type WorkflowLoader = (workflowsPath?: string) => ReadonlyMap<string, WorkflowDefinition>;
11
12
  export interface DashboardApiOptions {
12
13
  readonly runsRoot: string;
@@ -14,6 +15,8 @@ export interface DashboardApiOptions {
14
15
  readonly contextRunsRoot?: string | undefined;
15
16
  readonly sessionLogsRoot?: string | undefined;
16
17
  readonly progressReportsRoot?: string | undefined;
18
+ /** Parent directory for dashboard-private sidecars. Defaults to dirname(progressReportsRoot). */
19
+ readonly progressReportOverrideParent?: string | undefined;
17
20
  readonly workflowsPath: string;
18
21
  readonly environment: DashboardEnvironment;
19
22
  readonly scanner?: DashboardRunScanner | undefined;
@@ -22,6 +25,7 @@ export interface DashboardApiOptions {
22
25
  readonly sessionLogReader?: SessionLogReader | undefined;
23
26
  readonly progressReportReader?: DashboardProgressReportReader | undefined;
24
27
  readonly progressReportOverrideStore?: ProgressReportStatusOverrideStore | undefined;
28
+ readonly promptBuilderLibraryStore?: PromptBuilderLibraryStore | undefined;
25
29
  readonly maxStateBytes?: number | undefined;
26
30
  /** Server-injected process identity used by the authenticated connection route. */
27
31
  readonly agentInstanceId?: string | undefined;
@@ -3,7 +3,7 @@ import { dirname, join } from "node:path";
3
3
  import { listWorkflows } from "../loader.js";
4
4
  import { logger } from "../logger.js";
5
5
  import { CONTEXT_BUILDER_LIFECYCLE_DIRECTORY } from "../context-builder-lifecycle-contract.js";
6
- import { AdaptersResponseSchema, ActivityDetailSchema, ActivityListResponseSchema, ActivityRouteParamsSchema, CallRouteParamsSchema, ContextRunArtifactRouteParamsSchema, ContextRunListQuerySchema, ContextRunListResponseSchema, ContextRunRouteParamsSchema, ContextRunRowSchema, DashboardAgentInstanceIdSchema, DashboardConnectionResponseSchema, EnvironmentResponseSchema, EmptyQuerySchema, GenerationQuerySchema, PaginationQuerySchema, ProgressReportDetailResponseSchema, ProgressReportListResponseSchema, RunRouteParamsSchema, SessionLogLaneIndexQuerySchema, SessionLogLaneIndexResponseSchema, SessionLogLaneRouteParamsSchema, SessionLogPageQuerySchema, SessionLogWorkflowRouteParamsSchema, StructuredDetailQuerySchema, WorkflowDescriptorSchema, WorkflowsResponseSchema, MAX_DASHBOARD_ADAPTERS, SafeAdapterDescriptorSchema, } from "./contracts.js";
6
+ import { AdaptersResponseSchema, ActivityDetailSchema, ActivityListResponseSchema, ActivityRouteParamsSchema, CallRouteParamsSchema, ContextRunArtifactRouteParamsSchema, ContextRunListQuerySchema, ContextRunListResponseSchema, ContextRunRouteParamsSchema, ContextRunDetailSchema, ContextRunRowSchema, DashboardAgentInstanceIdSchema, DashboardConnectionResponseSchema, EnvironmentResponseSchema, EmptyQuerySchema, GenerationQuerySchema, PaginationQuerySchema, ProgressReportDetailResponseSchema, ProgressReportListResponseSchema, RunRouteParamsSchema, SessionLogLaneIndexQuerySchema, SessionLogLaneIndexResponseSchema, SessionLogLaneRouteParamsSchema, SessionLogPageQuerySchema, SessionLogWorkflowRouteParamsSchema, StructuredDetailQuerySchema, WorkflowDescriptorSchema, WorkflowsResponseSchema, MAX_DASHBOARD_ADAPTERS, SafeAdapterDescriptorSchema, } from "./contracts.js";
7
7
  import { DashboardInvalidCursorError } from "./artifact-index.js";
8
8
  import { createDashboardRunScanner, DashboardReadModelError, } from "./scanner.js";
9
9
  import { createDashboardActivityReader, } from "./activity-reader.js";
@@ -14,6 +14,8 @@ import { ProgressReportSessionIdSchema } from "./progress-report-contract.js";
14
14
  import { createDashboardProgressReportReader, } from "./progress-report-reader.js";
15
15
  import { isProgressReportStatusOverrideSegments, ProgressReportStatusOverrideRequestSchema, } from "./progress-report-status-overlay.js";
16
16
  import { createProgressReportStatusOverrideStore, } from "./progress-report-status-store.js";
17
+ import { isPromptBuilderLibraryReadSegments, isPromptBuilderLibrarySaveSegments, MAX_PROMPT_BUILDER_LIBRARY_BODY_BYTES, PROMPT_BUILDER_LIBRARY_RESPONSE_SCHEMA_VERSION, PromptBuilderLibraryGetResponseSchema, PromptBuilderLibrarySaveRequestSchema, } from "./prompt-builder-library-contract.js";
18
+ import { createPromptBuilderLibraryStore, } from "./prompt-builder-library-store.js";
17
19
  function queryMultimap(query) {
18
20
  const values = Object.create(null);
19
21
  for (const [key, value] of query) {
@@ -73,12 +75,12 @@ function sendError(request, response, status, code, headers = {}) {
73
75
  sendJson(request, response, status, { error: { code } }, headers);
74
76
  }
75
77
  const PROGRESS_REPORT_STATUS_OVERRIDE_BODY_MAX_BYTES = 4 * 1024;
76
- class ProgressReportStatusOverrideBodyError extends Error {
78
+ class DashboardJsonBodyError extends Error {
77
79
  status;
78
80
  code;
79
81
  constructor(status, code) {
80
82
  super(code);
81
- this.name = "ProgressReportStatusOverrideBodyError";
83
+ this.name = "DashboardJsonBodyError";
82
84
  this.status = status;
83
85
  this.code = code;
84
86
  }
@@ -87,39 +89,39 @@ function singleDistinctHeader(request, name) {
87
89
  const values = request.headersDistinct[name];
88
90
  return values?.length === 1 ? values[0] : undefined;
89
91
  }
90
- function parseProgressReportStatusOverrideContentLength(request) {
92
+ function parseJsonContentLength(request, maxBytes) {
91
93
  const values = request.headersDistinct["content-length"];
92
94
  if (values != null && values.length !== 1) {
93
- throw new ProgressReportStatusOverrideBodyError(400, "invalid_request");
95
+ throw new DashboardJsonBodyError(400, "invalid_request");
94
96
  }
95
97
  const raw = values?.[0];
96
98
  if (raw == null)
97
99
  return;
98
100
  if (!/^(0|[1-9]\d*)$/.test(raw)) {
99
- throw new ProgressReportStatusOverrideBodyError(400, "invalid_request");
101
+ throw new DashboardJsonBodyError(400, "invalid_request");
100
102
  }
101
103
  const length = Number(raw);
102
104
  if (!Number.isSafeInteger(length)) {
103
- throw new ProgressReportStatusOverrideBodyError(400, "invalid_request");
105
+ throw new DashboardJsonBodyError(400, "invalid_request");
104
106
  }
105
- if (length > PROGRESS_REPORT_STATUS_OVERRIDE_BODY_MAX_BYTES) {
106
- throw new ProgressReportStatusOverrideBodyError(413, "content_too_large_for_dashboard");
107
+ if (length > maxBytes) {
108
+ throw new DashboardJsonBodyError(413, "content_too_large_for_dashboard");
107
109
  }
108
110
  }
109
- async function readProgressReportStatusOverrideJsonBody(request) {
111
+ async function readDashboardJsonBody(request, maxBytes) {
110
112
  const contentType = singleDistinctHeader(request, "content-type");
111
113
  if (contentType == null || contentType.toLowerCase() !== "application/json") {
112
- throw new ProgressReportStatusOverrideBodyError(400, "invalid_request");
114
+ throw new DashboardJsonBodyError(400, "invalid_request");
113
115
  }
114
- parseProgressReportStatusOverrideContentLength(request);
116
+ parseJsonContentLength(request, maxBytes);
115
117
  const chunks = [];
116
118
  let total = 0;
117
119
  for await (const chunk of request) {
118
120
  const bytes = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
119
121
  total += bytes.byteLength;
120
- if (total > PROGRESS_REPORT_STATUS_OVERRIDE_BODY_MAX_BYTES) {
122
+ if (total > maxBytes) {
121
123
  request.resume();
122
- throw new ProgressReportStatusOverrideBodyError(413, "content_too_large_for_dashboard");
124
+ throw new DashboardJsonBodyError(413, "content_too_large_for_dashboard");
123
125
  }
124
126
  chunks.push(bytes);
125
127
  }
@@ -128,18 +130,28 @@ async function readProgressReportStatusOverrideJsonBody(request) {
128
130
  text = new TextDecoder("utf-8", { fatal: true }).decode(Buffer.concat(chunks));
129
131
  }
130
132
  catch {
131
- throw new ProgressReportStatusOverrideBodyError(400, "invalid_request");
133
+ throw new DashboardJsonBodyError(400, "invalid_request");
132
134
  }
133
- let value;
134
135
  try {
135
- value = JSON.parse(text);
136
+ return JSON.parse(text);
136
137
  }
137
138
  catch {
138
- throw new ProgressReportStatusOverrideBodyError(400, "invalid_request");
139
+ throw new DashboardJsonBodyError(400, "invalid_request");
139
140
  }
141
+ }
142
+ async function readProgressReportStatusOverrideJsonBody(request) {
143
+ const value = await readDashboardJsonBody(request, PROGRESS_REPORT_STATUS_OVERRIDE_BODY_MAX_BYTES);
140
144
  const parsed = ProgressReportStatusOverrideRequestSchema.safeParse(value);
141
145
  if (!parsed.success) {
142
- throw new ProgressReportStatusOverrideBodyError(400, "invalid_request");
146
+ throw new DashboardJsonBodyError(400, "invalid_request");
147
+ }
148
+ return parsed.data;
149
+ }
150
+ async function readPromptBuilderLibrarySaveBody(request) {
151
+ const value = await readDashboardJsonBody(request, MAX_PROMPT_BUILDER_LIBRARY_BODY_BYTES);
152
+ const parsed = PromptBuilderLibrarySaveRequestSchema.safeParse(value);
153
+ if (!parsed.success) {
154
+ throw new DashboardJsonBodyError(400, "invalid_request");
143
155
  }
144
156
  return parsed.data;
145
157
  }
@@ -173,11 +185,39 @@ function serializeContextRunList(rows, truncated) {
173
185
  truncated: true,
174
186
  });
175
187
  }
188
+ /**
189
+ * Plan-review seed stages the isolated expander clones once per admitted
190
+ * roster seat (`src/plan-review/expander.ts`). The dashboard draws these as
191
+ * seed calls, not as a plain call count.
192
+ */
193
+ const PLAN_REVIEW_SEED_STAGE_IDS = new Set([
194
+ "reviewers",
195
+ "cross_review",
196
+ ]);
176
197
  function projectWorkflow(definition) {
177
198
  const descriptor = {
178
199
  name: definition.name,
179
200
  version: definition.version,
180
201
  description: definition.description.slice(0, 4_096),
202
+ timeoutSeconds: definition.settings.timeout_seconds,
203
+ stages: definition.stages.map((stage) => ({
204
+ id: stage.id,
205
+ parallel: stage.parallel,
206
+ onFailure: stage.on_failure,
207
+ maxRetries: stage.retry.max_retries,
208
+ contextFrom: [...new Set(stage.calls.flatMap((call) => call.context_from ?? []))],
209
+ anonymizeContext: stage.calls.some((call) => call.anonymize_context === true),
210
+ ...(definition.name === "plan-review-receipts" &&
211
+ PLAN_REVIEW_SEED_STAGE_IDS.has(stage.id)
212
+ ? { expands: "per_roster_seat" }
213
+ : {}),
214
+ calls: stage.calls.map((call) => ({
215
+ id: call.id,
216
+ ...(call.cli_name === undefined ? {} : { cliName: call.cli_name }),
217
+ ...(call.role === undefined ? {} : { role: call.role }),
218
+ ...(call.reducer === undefined ? {} : { reducer: call.reducer }),
219
+ })),
220
+ })),
181
221
  stageCount: definition.stages.length,
182
222
  callCount: definition.stages.reduce((count, stage) => count + stage.calls.length, 0),
183
223
  variables: Object.entries(definition.variables)
@@ -186,6 +226,9 @@ function projectWorkflow(definition) {
186
226
  name,
187
227
  type: variable.type,
188
228
  required: variable.required,
229
+ ...(variable.description === undefined
230
+ ? {}
231
+ : { description: variable.description.slice(0, 4_096) }),
189
232
  })),
190
233
  };
191
234
  return WorkflowDescriptorSchema.parse(descriptor);
@@ -251,19 +294,28 @@ function handleActivityResult(request, response, result) {
251
294
  */
252
295
  export function createDashboardApiHandler(adapterCatalog, options) {
253
296
  const agentInstanceId = DashboardAgentInstanceIdSchema.parse(options.agentInstanceId ?? randomBytes(16).toString("base64url"));
254
- const scanner = options.scanner ?? createDashboardRunScanner({
255
- maxStateBytes: options.maxStateBytes,
256
- });
257
297
  const activityReader = options.activityReader ?? createDashboardActivityReader();
258
298
  const activitiesRoot = options.activitiesRoot ?? join(dirname(options.runsRoot), "activities");
259
299
  const contextRunsRoot = options.contextRunsRoot;
260
300
  const contextRunReader = options.contextRunReader ?? createContextRunReader();
301
+ const scanner = options.scanner ?? createDashboardRunScanner({
302
+ maxStateBytes: options.maxStateBytes,
303
+ contextRunsRoot,
304
+ contextRunReader,
305
+ });
261
306
  const sessionLogsRoot = options.sessionLogsRoot ?? join(dirname(options.runsRoot), "session-logs");
262
307
  const sessionLogReader = options.sessionLogReader ?? createSessionLogReader({
263
308
  rootDir: sessionLogsRoot,
264
309
  });
265
310
  const progressReportsRoot = options.progressReportsRoot ?? join(dirname(options.runsRoot), "progress-reports");
266
- const progressReportOverrideStore = options.progressReportOverrideStore ?? createProgressReportStatusOverrideStore();
311
+ const progressReportOverrideStore = options.progressReportOverrideStore ??
312
+ createProgressReportStatusOverrideStore({
313
+ ...(options.progressReportOverrideParent === undefined
314
+ ? {}
315
+ : { parentDir: options.progressReportOverrideParent }),
316
+ });
317
+ const promptBuilderLibraryStore = options.promptBuilderLibraryStore ?? createPromptBuilderLibraryStore();
318
+ const promptBuilderLibraryParent = options.progressReportOverrideParent ?? dirname(progressReportsRoot);
267
319
  const progressReportReader = options.progressReportReader ??
268
320
  createDashboardProgressReportReader({
269
321
  overrideStore: progressReportOverrideStore,
@@ -533,7 +585,7 @@ export function createDashboardApiHandler(adapterCatalog, options) {
533
585
  sendError(request, response, 503, "context_runs_unavailable");
534
586
  return;
535
587
  }
536
- const detail = ContextRunRowSchema.safeParse(result.row);
588
+ const detail = ContextRunDetailSchema.safeParse(result.row);
537
589
  if (!detail.success) {
538
590
  logger.error({ issues: detail.error.issues.slice(0, 8), id: result.row.id }, "context run detail schema rejected");
539
591
  sendError(request, response, 500, "internal_error");
@@ -620,7 +672,7 @@ export function createDashboardApiHandler(adapterCatalog, options) {
620
672
  overrideRequest = await readProgressReportStatusOverrideJsonBody(request);
621
673
  }
622
674
  catch (error) {
623
- if (error instanceof ProgressReportStatusOverrideBodyError) {
675
+ if (error instanceof DashboardJsonBodyError) {
624
676
  sendError(request, response, error.status, error.code);
625
677
  return;
626
678
  }
@@ -657,6 +709,62 @@ export function createDashboardApiHandler(adapterCatalog, options) {
657
709
  response.end();
658
710
  return;
659
711
  }
712
+ if (isPromptBuilderLibraryReadSegments(segments)) {
713
+ if (!EmptyQuerySchema.safeParse(query).success) {
714
+ sendError(request, response, 400, "invalid_request");
715
+ return;
716
+ }
717
+ const result = await promptBuilderLibraryStore.read(promptBuilderLibraryParent);
718
+ const serverNow = new Date().toISOString();
719
+ if (result.kind === "present") {
720
+ sendJson(request, response, 200, PromptBuilderLibraryGetResponseSchema.parse({
721
+ schemaVersion: PROMPT_BUILDER_LIBRARY_RESPONSE_SCHEMA_VERSION,
722
+ state: "present",
723
+ serverNow,
724
+ library: result.document,
725
+ }));
726
+ return;
727
+ }
728
+ sendJson(request, response, 200, PromptBuilderLibraryGetResponseSchema.parse({
729
+ schemaVersion: PROMPT_BUILDER_LIBRARY_RESPONSE_SCHEMA_VERSION,
730
+ state: result.kind === "unreadable" ? "unreadable" : "absent",
731
+ serverNow,
732
+ }));
733
+ return;
734
+ }
735
+ if (isPromptBuilderLibrarySaveSegments(segments)) {
736
+ if (request.method !== "POST") {
737
+ sendError(request, response, 405, "method_not_allowed", { Allow: "POST" });
738
+ return;
739
+ }
740
+ if (!EmptyQuerySchema.safeParse(query).success) {
741
+ sendError(request, response, 400, "invalid_request");
742
+ return;
743
+ }
744
+ let saveRequest;
745
+ try {
746
+ saveRequest = await readPromptBuilderLibrarySaveBody(request);
747
+ }
748
+ catch (error) {
749
+ if (error instanceof DashboardJsonBodyError) {
750
+ sendError(request, response, error.status, error.code);
751
+ return;
752
+ }
753
+ throw error;
754
+ }
755
+ const outcome = await promptBuilderLibraryStore.write(promptBuilderLibraryParent, saveRequest);
756
+ if (outcome.kind === "unwritable") {
757
+ sendError(request, response, 503, "prompt_builder_library_unavailable");
758
+ return;
759
+ }
760
+ if (outcome.kind === "too_large") {
761
+ sendError(request, response, 413, "content_too_large_for_dashboard");
762
+ return;
763
+ }
764
+ response.writeHead(204, { "Cache-Control": "no-store" });
765
+ response.end();
766
+ return;
767
+ }
660
768
  if (segments.length === 2 && segments[1] === "runs") {
661
769
  const parsed = PaginationQuerySchema.safeParse(query);
662
770
  if (!parsed.success) {