harnery 0.36.0 → 0.38.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 (432) hide show
  1. package/dist/commander.d.ts +9 -0
  2. package/dist/commander.d.ts.map +1 -1
  3. package/dist/commander.js +10 -1
  4. package/dist/commands/admission.d.ts +21 -0
  5. package/dist/commands/admission.d.ts.map +1 -0
  6. package/dist/commands/admission.js +565 -0
  7. package/dist/commands/agents.d.ts +7 -0
  8. package/dist/commands/agents.d.ts.map +1 -1
  9. package/dist/commands/agents.js +148 -47
  10. package/dist/commands/artifacts.d.ts.map +1 -1
  11. package/dist/commands/artifacts.js +73 -2
  12. package/dist/commands/browse-ai.d.ts +2 -2
  13. package/dist/commands/browse-ai.d.ts.map +1 -1
  14. package/dist/commands/browse-ai.js +6 -4
  15. package/dist/commands/browse.d.ts.map +1 -1
  16. package/dist/commands/browse.js +360 -21
  17. package/dist/commands/diagnostics.d.ts +4 -0
  18. package/dist/commands/diagnostics.d.ts.map +1 -0
  19. package/dist/commands/diagnostics.js +229 -0
  20. package/dist/commands/fetch.js +1 -0
  21. package/dist/commands/files.d.ts +12 -0
  22. package/dist/commands/files.d.ts.map +1 -1
  23. package/dist/commands/files.js +54 -1
  24. package/dist/commands/governor.d.ts.map +1 -1
  25. package/dist/commands/governor.js +4 -0
  26. package/dist/commands/ledger-v3.d.ts.map +1 -1
  27. package/dist/commands/ledger-v3.js +71 -2
  28. package/dist/commands/qa-record.d.ts +144 -0
  29. package/dist/commands/qa-record.d.ts.map +1 -0
  30. package/dist/commands/qa-record.js +0 -0
  31. package/dist/commands/qa-run.d.ts +8 -0
  32. package/dist/commands/qa-run.d.ts.map +1 -0
  33. package/dist/commands/qa-run.js +396 -0
  34. package/dist/commands/qa-status.d.ts +71 -0
  35. package/dist/commands/qa-status.d.ts.map +1 -0
  36. package/dist/commands/qa-status.js +490 -0
  37. package/dist/commands/qa-verify.d.ts +40 -0
  38. package/dist/commands/qa-verify.d.ts.map +1 -0
  39. package/dist/commands/qa-verify.js +180 -0
  40. package/dist/commands/resources.d.ts +4 -0
  41. package/dist/commands/resources.d.ts.map +1 -0
  42. package/dist/commands/resources.js +29 -0
  43. package/dist/commands/review-pack.d.ts +4 -0
  44. package/dist/commands/review-pack.d.ts.map +1 -0
  45. package/dist/commands/review-pack.js +1001 -0
  46. package/dist/commands/supervisor.d.ts +4 -0
  47. package/dist/commands/supervisor.d.ts.map +1 -0
  48. package/dist/commands/supervisor.js +101 -0
  49. package/dist/commands/web.d.ts.map +1 -1
  50. package/dist/commands/web.js +17 -0
  51. package/dist/commands/workflow.d.ts.map +1 -1
  52. package/dist/commands/workflow.js +4 -0
  53. package/dist/core/agents/cli.js +7 -3
  54. package/dist/core/agents/health.d.ts +17 -0
  55. package/dist/core/agents/health.d.ts.map +1 -0
  56. package/dist/core/agents/health.js +109 -0
  57. package/dist/core/agents/mailbox.d.ts +92 -0
  58. package/dist/core/agents/mailbox.d.ts.map +1 -0
  59. package/dist/core/agents/mailbox.js +325 -0
  60. package/dist/core/agents/qa-signal.d.ts +111 -0
  61. package/dist/core/agents/qa-signal.d.ts.map +1 -0
  62. package/dist/core/agents/qa-signal.js +231 -0
  63. package/dist/core/agents/reconcile-coordination-v3.d.ts +44 -0
  64. package/dist/core/agents/reconcile-coordination-v3.d.ts.map +1 -0
  65. package/dist/core/agents/reconcile-coordination-v3.js +58 -0
  66. package/dist/core/agents/render/prompt-context.d.ts +5 -0
  67. package/dist/core/agents/render/prompt-context.d.ts.map +1 -1
  68. package/dist/core/agents/render/prompt-context.js +34 -13
  69. package/dist/core/agents/render/session-context.d.ts +8 -0
  70. package/dist/core/agents/render/session-context.d.ts.map +1 -1
  71. package/dist/core/agents/render/session-context.js +34 -3
  72. package/dist/core/agents/rules/commit-conflict.d.ts.map +1 -1
  73. package/dist/core/agents/rules/commit-conflict.js +50 -1
  74. package/dist/core/agents/rules/stop-hook.d.ts.map +1 -1
  75. package/dist/core/agents/rules/stop-hook.js +6 -10
  76. package/dist/core/agents/session-finalizer-v3.js +4 -1
  77. package/dist/core/agents/session-name-display.d.ts +20 -5
  78. package/dist/core/agents/session-name-display.d.ts.map +1 -1
  79. package/dist/core/agents/session-name-display.js +67 -7
  80. package/dist/core/agents/state/heartbeat-reader.d.ts +7 -0
  81. package/dist/core/agents/state/heartbeat-reader.d.ts.map +1 -1
  82. package/dist/core/agents/state/heartbeat-writer.d.ts +11 -0
  83. package/dist/core/agents/state/heartbeat-writer.d.ts.map +1 -1
  84. package/dist/core/agents/state/heartbeat-writer.js +17 -0
  85. package/dist/core/agents/state/live-coordination-view.d.ts.map +1 -1
  86. package/dist/core/agents/state/live-coordination-view.js +1 -0
  87. package/dist/core/agents/state/live-coordination-writer.js +5 -0
  88. package/dist/core/artifacts/constants.d.ts +1 -1
  89. package/dist/core/artifacts/constants.js +1 -1
  90. package/dist/core/artifacts/index.d.ts +82 -6
  91. package/dist/core/artifacts/index.d.ts.map +1 -1
  92. package/dist/core/artifacts/index.js +410 -15
  93. package/dist/core/config.d.ts +20 -0
  94. package/dist/core/config.d.ts.map +1 -1
  95. package/dist/core/config.js +59 -0
  96. package/dist/core/diagnostics/advice.d.ts +9 -0
  97. package/dist/core/diagnostics/advice.d.ts.map +1 -0
  98. package/dist/core/diagnostics/advice.js +112 -0
  99. package/dist/core/diagnostics/bundle.d.ts +51 -0
  100. package/dist/core/diagnostics/bundle.d.ts.map +1 -0
  101. package/dist/core/diagnostics/bundle.js +968 -0
  102. package/dist/core/diagnostics/comparison.d.ts +5 -0
  103. package/dist/core/diagnostics/comparison.d.ts.map +1 -0
  104. package/dist/core/diagnostics/comparison.js +444 -0
  105. package/dist/core/diagnostics/contract.d.ts +245 -0
  106. package/dist/core/diagnostics/contract.d.ts.map +1 -0
  107. package/dist/core/diagnostics/contract.js +18 -0
  108. package/dist/core/diagnostics/identity.d.ts +3 -0
  109. package/dist/core/diagnostics/identity.d.ts.map +1 -0
  110. package/dist/core/diagnostics/identity.js +10 -0
  111. package/dist/core/diagnostics/index.d.ts +8 -0
  112. package/dist/core/diagnostics/index.d.ts.map +1 -0
  113. package/dist/core/diagnostics/index.js +7 -0
  114. package/dist/core/diagnostics/replay.d.ts +8 -0
  115. package/dist/core/diagnostics/replay.d.ts.map +1 -0
  116. package/dist/core/diagnostics/replay.js +213 -0
  117. package/dist/core/diagnostics/sanitize.d.ts +9 -0
  118. package/dist/core/diagnostics/sanitize.d.ts.map +1 -0
  119. package/dist/core/diagnostics/sanitize.js +84 -0
  120. package/dist/core/events/legacy-storage/compression.d.ts +13 -0
  121. package/dist/core/events/legacy-storage/compression.d.ts.map +1 -0
  122. package/dist/core/events/legacy-storage/compression.js +107 -0
  123. package/dist/core/events/legacy-storage/index.d.ts +1 -0
  124. package/dist/core/events/legacy-storage/index.d.ts.map +1 -1
  125. package/dist/core/events/legacy-storage/index.js +1 -0
  126. package/dist/core/events/v3/archive-retention.d.ts +33 -0
  127. package/dist/core/events/v3/archive-retention.d.ts.map +1 -0
  128. package/dist/core/events/v3/archive-retention.js +195 -0
  129. package/dist/core/events/v3/bootstrap.d.ts.map +1 -1
  130. package/dist/core/events/v3/bootstrap.js +10 -0
  131. package/dist/core/events/v3/capabilities.d.ts +1 -1
  132. package/dist/core/events/v3/capabilities.d.ts.map +1 -1
  133. package/dist/core/events/v3/capabilities.js +1 -0
  134. package/dist/core/events/v3/coordination-view.d.ts +3 -0
  135. package/dist/core/events/v3/coordination-view.d.ts.map +1 -1
  136. package/dist/core/events/v3/coordination-view.js +69 -8
  137. package/dist/core/events/v3/index.d.ts +1 -0
  138. package/dist/core/events/v3/index.d.ts.map +1 -1
  139. package/dist/core/events/v3/index.js +1 -0
  140. package/dist/core/events/v3/live-routing.d.ts.map +1 -1
  141. package/dist/core/events/v3/live-routing.js +1 -0
  142. package/dist/core/events/v3/producers/hook-base.d.ts +1 -1
  143. package/dist/core/events/v3/producers/hook-base.d.ts.map +1 -1
  144. package/dist/core/events/v3/producers/hook-base.js +13 -2
  145. package/dist/core/events/v3/producers/intake.d.ts.map +1 -1
  146. package/dist/core/events/v3/producers/intake.js +10 -2
  147. package/dist/core/events/v3/producers/recorder.d.ts +39 -0
  148. package/dist/core/events/v3/producers/recorder.d.ts.map +1 -1
  149. package/dist/core/events/v3/producers/recorder.js +350 -17
  150. package/dist/core/hooks/adapter/output.d.ts +8 -0
  151. package/dist/core/hooks/adapter/output.d.ts.map +1 -1
  152. package/dist/core/hooks/adapter/output.js +11 -1
  153. package/dist/core/hooks/cli.js +303 -219
  154. package/dist/core/hooks/health.d.ts +59 -0
  155. package/dist/core/hooks/health.d.ts.map +1 -0
  156. package/dist/core/hooks/health.js +84 -0
  157. package/dist/core/hooks/resolve/transcript.d.ts.map +1 -1
  158. package/dist/core/hooks/resolve/transcript.js +10 -3
  159. package/dist/core/hooks/session-name-presence.d.ts.map +1 -1
  160. package/dist/core/hooks/session-name-presence.js +4 -1
  161. package/dist/core/qa-artifacts.d.ts +20 -0
  162. package/dist/core/qa-artifacts.d.ts.map +1 -0
  163. package/dist/core/qa-artifacts.js +110 -0
  164. package/dist/core/resources/contract.d.ts +96 -0
  165. package/dist/core/resources/contract.d.ts.map +1 -0
  166. package/dist/core/resources/contract.js +2 -0
  167. package/dist/core/resources/index.d.ts +6 -0
  168. package/dist/core/resources/index.d.ts.map +1 -0
  169. package/dist/core/resources/index.js +5 -0
  170. package/dist/core/resources/sampler.d.ts +34 -0
  171. package/dist/core/resources/sampler.d.ts.map +1 -0
  172. package/dist/core/resources/sampler.js +458 -0
  173. package/dist/core/resources/service-status.d.ts +3 -0
  174. package/dist/core/resources/service-status.d.ts.map +1 -0
  175. package/dist/core/resources/service-status.js +48 -0
  176. package/dist/core/resources/service.d.ts +26 -0
  177. package/dist/core/resources/service.d.ts.map +1 -0
  178. package/dist/core/resources/service.js +292 -0
  179. package/dist/core/resources/storage.d.ts +13 -0
  180. package/dist/core/resources/storage.d.ts.map +1 -0
  181. package/dist/core/resources/storage.js +30 -0
  182. package/dist/core/storage/atomic-json.d.ts +3 -0
  183. package/dist/core/storage/atomic-json.d.ts.map +1 -0
  184. package/dist/core/storage/atomic-json.js +15 -0
  185. package/dist/core/storage/builtins.d.ts.map +1 -1
  186. package/dist/core/storage/builtins.js +45 -6
  187. package/dist/core/storage/logger.d.ts +2 -0
  188. package/dist/core/storage/logger.d.ts.map +1 -1
  189. package/dist/core/storage/logger.js +2 -0
  190. package/dist/core/storage/query.d.ts +14 -0
  191. package/dist/core/storage/query.d.ts.map +1 -1
  192. package/dist/core/storage/query.js +51 -0
  193. package/dist/core/supervisor/activity.d.ts +4 -0
  194. package/dist/core/supervisor/activity.d.ts.map +1 -0
  195. package/dist/core/supervisor/activity.js +141 -0
  196. package/dist/core/supervisor/contract.d.ts +268 -0
  197. package/dist/core/supervisor/contract.d.ts.map +1 -0
  198. package/dist/core/supervisor/contract.js +35 -0
  199. package/dist/core/supervisor/explanations.d.ts +4 -0
  200. package/dist/core/supervisor/explanations.d.ts.map +1 -0
  201. package/dist/core/supervisor/explanations.js +71 -0
  202. package/dist/core/supervisor/findings.d.ts +20 -0
  203. package/dist/core/supervisor/findings.d.ts.map +1 -0
  204. package/dist/core/supervisor/findings.js +399 -0
  205. package/dist/core/supervisor/history.d.ts +9 -0
  206. package/dist/core/supervisor/history.d.ts.map +1 -0
  207. package/dist/core/supervisor/history.js +46 -0
  208. package/dist/core/supervisor/hook-health-alerts.d.ts +14 -0
  209. package/dist/core/supervisor/hook-health-alerts.d.ts.map +1 -0
  210. package/dist/core/supervisor/hook-health-alerts.js +70 -0
  211. package/dist/core/supervisor/hook-health-storage.d.ts +5 -0
  212. package/dist/core/supervisor/hook-health-storage.d.ts.map +1 -0
  213. package/dist/core/supervisor/hook-health-storage.js +24 -0
  214. package/dist/core/supervisor/hook-health.d.ts +72 -0
  215. package/dist/core/supervisor/hook-health.d.ts.map +1 -0
  216. package/dist/core/supervisor/hook-health.js +203 -0
  217. package/dist/core/supervisor/hooks.d.ts +10 -0
  218. package/dist/core/supervisor/hooks.d.ts.map +1 -0
  219. package/dist/core/supervisor/hooks.js +28 -0
  220. package/dist/core/supervisor/index.d.ts +15 -0
  221. package/dist/core/supervisor/index.d.ts.map +1 -0
  222. package/dist/core/supervisor/index.js +14 -0
  223. package/dist/core/supervisor/log-feed.d.ts +9 -0
  224. package/dist/core/supervisor/log-feed.d.ts.map +1 -0
  225. package/dist/core/supervisor/log-feed.js +103 -0
  226. package/dist/core/supervisor/service.d.ts +29 -0
  227. package/dist/core/supervisor/service.d.ts.map +1 -0
  228. package/dist/core/supervisor/service.js +450 -0
  229. package/dist/core/supervisor/services.d.ts +11 -0
  230. package/dist/core/supervisor/services.d.ts.map +1 -0
  231. package/dist/core/supervisor/services.js +155 -0
  232. package/dist/core/supervisor/status.d.ts +3 -0
  233. package/dist/core/supervisor/status.d.ts.map +1 -0
  234. package/dist/core/supervisor/status.js +48 -0
  235. package/dist/core/supervisor/storage.d.ts +30 -0
  236. package/dist/core/supervisor/storage.d.ts.map +1 -0
  237. package/dist/core/supervisor/storage.js +73 -0
  238. package/dist/core/supervisor/timeline.d.ts +3 -0
  239. package/dist/core/supervisor/timeline.d.ts.map +1 -0
  240. package/dist/core/supervisor/timeline.js +87 -0
  241. package/dist/core/workflow/admission.d.ts +23 -0
  242. package/dist/core/workflow/admission.d.ts.map +1 -0
  243. package/dist/core/workflow/admission.js +136 -0
  244. package/dist/core/workflow/engine.d.ts.map +1 -1
  245. package/dist/core/workflow/engine.js +77 -2
  246. package/dist/core/workflow/index.d.ts +3 -2
  247. package/dist/core/workflow/index.d.ts.map +1 -1
  248. package/dist/core/workflow/index.js +2 -1
  249. package/dist/core/workflow/proof.d.ts +2 -1
  250. package/dist/core/workflow/proof.d.ts.map +1 -1
  251. package/dist/core/workflow/proof.js +39 -1
  252. package/dist/core/workflow/run-state.d.ts +3 -2
  253. package/dist/core/workflow/run-state.d.ts.map +1 -1
  254. package/dist/core/workflow/run-state.js +8 -1
  255. package/dist/core/workflow/types.d.ts +33 -1
  256. package/dist/core/workflow/types.d.ts.map +1 -1
  257. package/dist/core/workflow/types.js +2 -1
  258. package/dist/lib/admission.d.ts +71 -0
  259. package/dist/lib/admission.d.ts.map +1 -0
  260. package/dist/lib/admission.js +264 -0
  261. package/dist/lib/agent-browser/client.d.ts +1 -1
  262. package/dist/lib/agent-browser/client.d.ts.map +1 -1
  263. package/dist/lib/agent-browser/client.js +1 -5
  264. package/dist/lib/browser/capture-fidelity.d.ts +39 -0
  265. package/dist/lib/browser/capture-fidelity.d.ts.map +1 -0
  266. package/dist/lib/browser/capture-fidelity.js +84 -0
  267. package/dist/lib/browser/client.d.ts +46 -1
  268. package/dist/lib/browser/client.d.ts.map +1 -1
  269. package/dist/lib/browser/client.js +168 -9
  270. package/dist/lib/browser/critique.d.ts +38 -1
  271. package/dist/lib/browser/critique.d.ts.map +1 -1
  272. package/dist/lib/browser/critique.js +34 -6
  273. package/dist/lib/browser/index.d.ts +5 -1
  274. package/dist/lib/browser/index.d.ts.map +1 -1
  275. package/dist/lib/browser/index.js +4 -0
  276. package/dist/lib/browser/page-review-judge.d.ts +64 -0
  277. package/dist/lib/browser/page-review-judge.d.ts.map +1 -0
  278. package/dist/lib/browser/page-review-judge.js +270 -0
  279. package/dist/lib/browser/page-review-pack.d.ts +613 -0
  280. package/dist/lib/browser/page-review-pack.d.ts.map +1 -0
  281. package/dist/lib/browser/page-review-pack.js +1751 -0
  282. package/dist/lib/browser/qa-run-contracts.d.ts +377 -0
  283. package/dist/lib/browser/qa-run-contracts.d.ts.map +1 -0
  284. package/dist/lib/browser/qa-run-contracts.js +361 -0
  285. package/dist/lib/browser/qa-run.d.ts +141 -0
  286. package/dist/lib/browser/qa-run.d.ts.map +1 -0
  287. package/dist/lib/browser/qa-run.js +1283 -0
  288. package/dist/lib/browser/request-diagnostics.d.ts +13 -0
  289. package/dist/lib/browser/request-diagnostics.d.ts.map +1 -0
  290. package/dist/lib/browser/request-diagnostics.js +18 -0
  291. package/dist/lib/browser/tiling.d.ts +19 -0
  292. package/dist/lib/browser/tiling.d.ts.map +1 -1
  293. package/dist/lib/browser/tiling.js +28 -0
  294. package/dist/lib/cookies/client.d.ts +9 -0
  295. package/dist/lib/cookies/client.d.ts.map +1 -1
  296. package/dist/lib/cookies/client.js +197 -44
  297. package/dist/lib/cookies/extra.d.ts +18 -0
  298. package/dist/lib/cookies/extra.d.ts.map +1 -0
  299. package/dist/lib/cookies/extra.js +14 -0
  300. package/dist/lib/cookies/index.d.ts +2 -1
  301. package/dist/lib/cookies/index.d.ts.map +1 -1
  302. package/dist/lib/cookies/index.js +2 -1
  303. package/dist/lib/coord-root-id.d.ts +9 -0
  304. package/dist/lib/coord-root-id.d.ts.map +1 -0
  305. package/dist/lib/coord-root-id.js +17 -0
  306. package/dist/lib/durable-job.d.ts +124 -0
  307. package/dist/lib/durable-job.d.ts.map +1 -0
  308. package/dist/lib/durable-job.js +296 -0
  309. package/dist/lib/http/client.d.ts +7 -1
  310. package/dist/lib/http/client.d.ts.map +1 -1
  311. package/dist/lib/http/client.js +2 -0
  312. package/dist/lib/instructions/apply.d.ts +3 -1
  313. package/dist/lib/instructions/apply.d.ts.map +1 -1
  314. package/dist/lib/instructions/apply.js +74 -3
  315. package/dist/lib/instructions/templates.d.ts.map +1 -1
  316. package/dist/lib/instructions/templates.js +11 -2
  317. package/package.json +19 -2
  318. package/src/commander.ts +75 -1
  319. package/src/commands/admission.ts +699 -0
  320. package/src/commands/agents.ts +189 -50
  321. package/src/commands/artifacts.ts +132 -18
  322. package/src/commands/browse-ai.ts +10 -5
  323. package/src/commands/browse.ts +496 -20
  324. package/src/commands/diagnostics.ts +271 -0
  325. package/src/commands/fetch.ts +1 -0
  326. package/src/commands/files.ts +102 -2
  327. package/src/commands/governor.ts +8 -0
  328. package/src/commands/ledger-v3.ts +82 -0
  329. package/src/commands/qa-record.ts +682 -0
  330. package/src/commands/qa-run.ts +503 -0
  331. package/src/commands/qa-status.ts +608 -0
  332. package/src/commands/qa-verify.ts +238 -0
  333. package/src/commands/resources.ts +38 -0
  334. package/src/commands/review-pack.ts +1281 -0
  335. package/src/commands/supervisor.ts +141 -0
  336. package/src/commands/web.ts +19 -0
  337. package/src/commands/workflow.ts +8 -0
  338. package/src/core/agents/cli.ts +7 -3
  339. package/src/core/agents/health.ts +142 -0
  340. package/src/core/agents/mailbox.ts +373 -0
  341. package/src/core/agents/qa-signal.ts +261 -0
  342. package/src/core/agents/reconcile-coordination-v3.ts +77 -0
  343. package/src/core/agents/render/prompt-context.ts +42 -12
  344. package/src/core/agents/render/session-context.ts +37 -3
  345. package/src/core/agents/rules/commit-conflict.ts +58 -1
  346. package/src/core/agents/rules/stop-hook.ts +6 -12
  347. package/src/core/agents/session-finalizer-v3.ts +4 -1
  348. package/src/core/agents/session-name-display.ts +78 -7
  349. package/src/core/agents/state/heartbeat-reader.ts +7 -0
  350. package/src/core/agents/state/heartbeat-writer.ts +23 -0
  351. package/src/core/agents/state/live-coordination-view.ts +1 -0
  352. package/src/core/agents/state/live-coordination-writer.ts +5 -0
  353. package/src/core/artifacts/constants.ts +1 -1
  354. package/src/core/artifacts/index.ts +565 -30
  355. package/src/core/config.ts +134 -2
  356. package/src/core/diagnostics/advice.ts +147 -0
  357. package/src/core/diagnostics/bundle.ts +1250 -0
  358. package/src/core/diagnostics/comparison.ts +565 -0
  359. package/src/core/diagnostics/contract.ts +311 -0
  360. package/src/core/diagnostics/identity.ts +11 -0
  361. package/src/core/diagnostics/index.ts +7 -0
  362. package/src/core/diagnostics/replay.ts +314 -0
  363. package/src/core/diagnostics/sanitize.ts +97 -0
  364. package/src/core/events/legacy-storage/compression.ts +130 -0
  365. package/src/core/events/legacy-storage/index.ts +1 -0
  366. package/src/core/events/v3/archive-retention.ts +251 -0
  367. package/src/core/events/v3/bootstrap.ts +10 -0
  368. package/src/core/events/v3/capabilities.ts +2 -0
  369. package/src/core/events/v3/coordination-view.ts +100 -11
  370. package/src/core/events/v3/index.ts +9 -0
  371. package/src/core/events/v3/live-routing.ts +1 -0
  372. package/src/core/events/v3/producers/hook-base.ts +14 -2
  373. package/src/core/events/v3/producers/intake.ts +10 -2
  374. package/src/core/events/v3/producers/recorder.ts +420 -17
  375. package/src/core/hooks/adapter/output.ts +12 -1
  376. package/src/core/hooks/cli.ts +332 -247
  377. package/src/core/hooks/health.ts +146 -0
  378. package/src/core/hooks/resolve/transcript.ts +10 -3
  379. package/src/core/hooks/session-name-presence.ts +6 -1
  380. package/src/core/qa-artifacts.ts +126 -0
  381. package/src/core/resources/contract.ts +105 -0
  382. package/src/core/resources/index.ts +5 -0
  383. package/src/core/resources/sampler.ts +590 -0
  384. package/src/core/resources/service-status.ts +62 -0
  385. package/src/core/resources/service.ts +337 -0
  386. package/src/core/resources/storage.ts +44 -0
  387. package/src/core/storage/atomic-json.ts +15 -0
  388. package/src/core/storage/builtins.ts +62 -6
  389. package/src/core/storage/logger.ts +2 -0
  390. package/src/core/storage/query.ts +58 -0
  391. package/src/core/supervisor/activity.ts +193 -0
  392. package/src/core/supervisor/contract.ts +312 -0
  393. package/src/core/supervisor/explanations.ts +104 -0
  394. package/src/core/supervisor/findings.ts +788 -0
  395. package/src/core/supervisor/history.ts +61 -0
  396. package/src/core/supervisor/hook-health-alerts.ts +108 -0
  397. package/src/core/supervisor/hook-health-storage.ts +25 -0
  398. package/src/core/supervisor/hook-health.ts +301 -0
  399. package/src/core/supervisor/hooks.ts +35 -0
  400. package/src/core/supervisor/index.ts +14 -0
  401. package/src/core/supervisor/log-feed.ts +131 -0
  402. package/src/core/supervisor/service.ts +511 -0
  403. package/src/core/supervisor/services.ts +203 -0
  404. package/src/core/supervisor/status.ts +59 -0
  405. package/src/core/supervisor/storage.ts +126 -0
  406. package/src/core/supervisor/timeline.ts +133 -0
  407. package/src/core/workflow/admission.ts +215 -0
  408. package/src/core/workflow/engine.ts +93 -1
  409. package/src/core/workflow/index.ts +10 -0
  410. package/src/core/workflow/proof.ts +54 -1
  411. package/src/core/workflow/run-state.ts +13 -1
  412. package/src/core/workflow/types.ts +39 -1
  413. package/src/lib/admission.ts +347 -0
  414. package/src/lib/agent-browser/client.ts +2 -10
  415. package/src/lib/browser/capture-fidelity.ts +98 -0
  416. package/src/lib/browser/client.ts +212 -10
  417. package/src/lib/browser/critique.ts +62 -7
  418. package/src/lib/browser/index.ts +65 -0
  419. package/src/lib/browser/page-review-judge.ts +360 -0
  420. package/src/lib/browser/page-review-pack.ts +2384 -0
  421. package/src/lib/browser/qa-run-contracts.ts +743 -0
  422. package/src/lib/browser/qa-run.ts +1462 -0
  423. package/src/lib/browser/request-diagnostics.ts +27 -0
  424. package/src/lib/browser/tiling.ts +32 -0
  425. package/src/lib/cookies/client.ts +228 -42
  426. package/src/lib/cookies/extra.ts +28 -0
  427. package/src/lib/cookies/index.ts +2 -0
  428. package/src/lib/coord-root-id.ts +23 -0
  429. package/src/lib/durable-job.ts +407 -0
  430. package/src/lib/http/client.ts +13 -1
  431. package/src/lib/instructions/apply.ts +81 -2
  432. package/src/lib/instructions/templates.ts +11 -2
@@ -39,6 +39,13 @@ interface TurnHarnessTimingV3 {
39
39
  slowest_hook?: string;
40
40
  slowest_hook_ms: number;
41
41
  }
42
+ interface CursorResponseRitualV3 {
43
+ turn_id: `tid_${string}`;
44
+ native_turn_id?: string;
45
+ observed_at: string;
46
+ status_box_present: boolean;
47
+ status_box_present_strict: boolean;
48
+ }
42
49
  interface PendingEventV3 {
43
50
  source_id?: `hid_${string}`;
44
51
  event: EventV3;
@@ -94,6 +101,10 @@ export interface HookProducerStateV3 {
94
101
  current_turn_id?: `tid_${string}`;
95
102
  /** Native turn identity retained owner-only for transcript attribution. */
96
103
  current_native_turn_id?: string;
104
+ /** Latest completed assistant response for Cursor's open turn. The response
105
+ * body is discarded by agent-hook; only these booleans survive until Stop
106
+ * copies them into the authoritative turn.completed ritual observation. */
107
+ cursor_response_ritual?: CursorResponseRitualV3;
97
108
  tool_call_count: number;
98
109
  tool_call_count_turn_id?: `tid_${string}`;
99
110
  last_event_id?: `evt_${string}`;
@@ -195,6 +206,11 @@ export type RecordHookSignalV3Result = {
195
206
  reason: "closed_span";
196
207
  } | {
197
208
  state: "ignored";
209
+ } | {
210
+ state: "observed";
211
+ generation_id: `gen_${string}`;
212
+ turn_id: `tid_${string}`;
213
+ observed_at: string;
198
214
  }
199
215
  /** Durably queued in the intake spool; a lease holder or drain hook records it. */
200
216
  | {
@@ -309,6 +325,29 @@ export declare function salvageOpenSpansV3(input: SalvageOpenSpansV3Input): Salv
309
325
  export declare function listHookProducerStateRecordsV3(coordRoot: string, options?: {
310
326
  includeTerminal?: boolean;
311
327
  }): HookProducerStateRecordV3[];
328
+ export interface ReanchorArchivedHookProducersV3Input {
329
+ coordRoot: string;
330
+ archivedEpoch: string;
331
+ mode: EventV3WriteMode;
332
+ build_id: `build_${string}`;
333
+ platform: "linux" | "windows" | "macos" | "unknown";
334
+ observed_at?: string;
335
+ }
336
+ export interface ReanchorArchivedHookProducersV3Result {
337
+ sessions: number;
338
+ turns: number;
339
+ }
340
+ /**
341
+ * Re-anchor every live archived hook producer into a newly activated epoch.
342
+ *
343
+ * The archive rename is the rotation's atomic snapshot: it includes every
344
+ * state published before the boundary without copying any old boot sequence
345
+ * or causal link into the successor. Each live session gets a fresh
346
+ * generation and attestation. Only a turn that was open at the boundary is
347
+ * reopened, which makes command telemetry joinable before another adapter
348
+ * hook fires while preserving the between-turn state for idle sessions.
349
+ */
350
+ export declare function reanchorArchivedHookProducersV3(input: ReanchorArchivedHookProducersV3Input): ReanchorArchivedHookProducersV3Result;
312
351
  export declare function readHookProducerStateV3(coordRoot: string, adapter: Adapter, nativeSessionId: string): HookProducerStateV3 | undefined;
313
352
  export interface ReconcilePendingRuntimeContextV3Input {
314
353
  coordRoot: string;
@@ -1 +1 @@
1
- {"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../../../../src/core/events/v3/producers/recorder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../../../../src/core/events/v3/producers/recorder.ts"],"names":[],"mappings":"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"}
@@ -329,7 +329,7 @@ function processHookSignalLocked(control, input, sessionHash, path) {
329
329
  const durability = writeEventV3(input.coordRoot, pendingEvent, input.writerOptions);
330
330
  applyCommittedEvent(state, pendingEvent);
331
331
  state.pending = undefined;
332
- publishProducerState(path, state);
332
+ publishProducerState(input.coordRoot, path, state);
333
333
  if (pendingSource && incomingSource === pendingSource) {
334
334
  recovered = { state: "recorded", event: pendingEvent, durability, recovered: true };
335
335
  }
@@ -373,7 +373,16 @@ function processHookSignalLocked(control, input, sessionHash, path) {
373
373
  state = newProducerState(input, sessionId, epochId, boundaryEventId, genesisId);
374
374
  const cursorPromptBootstrap = isCursorPromptBootstrap(input);
375
375
  const onboarding = buildMidFlightSessionStart(input, state, rootId, cursorPromptBootstrap);
376
- commitEventLocked(input, state, path, onboarding);
376
+ // Onboarding commits eagerly even when the triggering hook defers its
377
+ // drain. The coordination view reads committed history only, so a
378
+ // spooled session.started leaves the session invisible to every
379
+ // authority command (set-task, status --end-turn, heal) until some other
380
+ // writer happens to drain the spool.
381
+ const onboardingInput = withEagerDrain(input);
382
+ commitEventLocked(onboardingInput, state, path, onboarding);
383
+ if (midFlightSignalImpliesOpenTurn(input.signal)) {
384
+ commitMidFlightTurnStart(onboardingInput, state, path, rootId);
385
+ }
377
386
  if (!cursorPromptBootstrap) {
378
387
  writeProducerDiagnosticV3(input.coordRoot, "mid_flight_onboarding", {
379
388
  adapter: input.adapter,
@@ -460,13 +469,56 @@ function processHookSignalLocked(control, input, sessionHash, path) {
460
469
  span_id: state.current_turn_span?.span_id,
461
470
  payload: input.payload,
462
471
  });
463
- publishProducerState(path, state);
472
+ publishProducerState(input.coordRoot, path, state);
464
473
  return { state: "ignored" };
465
474
  }
466
475
  // Every event derived before the native signal has now been committed.
467
476
  // Sample once for the native event and every span it opens or closes so
468
477
  // their self-contained timing cannot drift by a millisecond.
469
478
  const eventClock = signalClock(input);
479
+ if (input.signal === "after-agent-response") {
480
+ if (input.adapter !== "cursor" ||
481
+ !state.current_turn_id ||
482
+ !state.current_turn_span ||
483
+ !input.turn_ritual) {
484
+ writeProducerDiagnosticV3(input.coordRoot, "cursor_response_ritual_unbound", {
485
+ adapter: input.adapter,
486
+ instance_id: input.instance_id,
487
+ generation_id: state.generation_id,
488
+ signal: input.signal,
489
+ reason: !state.current_turn_id
490
+ ? "no_open_turn"
491
+ : !state.current_turn_span
492
+ ? "no_open_turn_span"
493
+ : "ritual_observation_missing",
494
+ });
495
+ publishProducerState(input.coordRoot, path, state);
496
+ return { state: "ignored" };
497
+ }
498
+ const observation = {
499
+ turn_id: state.current_turn_id,
500
+ ...(input.payload.turn_id ? { native_turn_id: input.payload.turn_id } : {}),
501
+ observed_at: eventClock.observed_at,
502
+ status_box_present: input.turn_ritual.status_box_present,
503
+ status_box_present_strict: input.turn_ritual.status_box_present_strict,
504
+ };
505
+ state.cursor_response_ritual = observation;
506
+ publishProducerState(input.coordRoot, path, state);
507
+ writeProducerDiagnosticV3(input.coordRoot, "cursor_response_ritual_observed", {
508
+ instance_id: state.instance_id,
509
+ generation_id: state.generation_id,
510
+ turn_id: observation.turn_id,
511
+ ...(observation.native_turn_id ? { native_turn_id: observation.native_turn_id } : {}),
512
+ response_observed_at: observation.observed_at,
513
+ status_box_present_strict: observation.status_box_present_strict,
514
+ });
515
+ return {
516
+ state: "observed",
517
+ generation_id: state.generation_id,
518
+ turn_id: observation.turn_id,
519
+ observed_at: observation.observed_at,
520
+ };
521
+ }
470
522
  if (input.signal === "user-prompt-submit" && !state.current_turn_span) {
471
523
  state.current_turn_span = openSpanStateV3({
472
524
  span_id: spanIdV3(),
@@ -685,6 +737,36 @@ function processHookSignalLocked(control, input, sessionHash, path) {
685
737
  // Before the signal's own event: the tool call or turn that carries the
686
738
  // new effort already ran under it, so it must ride the new attestation.
687
739
  maybeAttestTuningChange(input, state, path, rootId);
740
+ const cursorResponseRitual = input.adapter === "cursor" &&
741
+ (input.signal === "stop" || input.signal === "stop-failure") &&
742
+ state.current_turn_id &&
743
+ state.cursor_response_ritual?.turn_id === state.current_turn_id
744
+ ? state.cursor_response_ritual
745
+ : undefined;
746
+ const terminalTurnRitual = input.adapter === "cursor" && (input.signal === "stop" || input.signal === "stop-failure")
747
+ ? cursorResponseRitual
748
+ ? {
749
+ status_box_present: cursorResponseRitual.status_box_present,
750
+ status_box_present_strict: cursorResponseRitual.status_box_present_strict,
751
+ session_name_required: false,
752
+ session_name_present: false,
753
+ }
754
+ : undefined
755
+ : input.turn_ritual;
756
+ if (cursorResponseRitual) {
757
+ writeProducerDiagnosticV3(input.coordRoot, "cursor_response_ritual_consumed", {
758
+ instance_id: state.instance_id,
759
+ generation_id: state.generation_id,
760
+ turn_id: cursorResponseRitual.turn_id,
761
+ ...(cursorResponseRitual.native_turn_id
762
+ ? { response_native_turn_id: cursorResponseRitual.native_turn_id }
763
+ : {}),
764
+ ...(input.payload.turn_id ? { stop_native_turn_id: input.payload.turn_id } : {}),
765
+ response_observed_at: cursorResponseRitual.observed_at,
766
+ stop_observed_at: eventClock.observed_at,
767
+ status_box_present_strict: cursorResponseRitual.status_box_present_strict,
768
+ });
769
+ }
688
770
  const event = normalizeHookEventV3(input.signal, eventInput.payload, {
689
771
  coordRoot: input.coordRoot,
690
772
  adapter: input.adapter,
@@ -742,7 +824,7 @@ function processHookSignalLocked(control, input, sessionHash, path) {
742
824
  child_generation_id: delegation?.child_generation_id,
743
825
  agent_role: delegation?.role,
744
826
  stop_remediation: input.stop_remediation,
745
- turn_ritual: input.turn_ritual,
827
+ turn_ritual: terminalTurnRitual,
746
828
  });
747
829
  if (!event)
748
830
  return { state: "ignored" };
@@ -1186,16 +1268,107 @@ function commitRecoveredToolTurnStart(input, state, path, rootId, fingerprintCon
1186
1268
  assertEventV3(event);
1187
1269
  commitEventLocked(input, state, path, event);
1188
1270
  }
1271
+ /**
1272
+ * Signals an adapter can only deliver while a turn is executing. A session
1273
+ * onboarded mid-flight by one of these is provably inside a turn, so the
1274
+ * generation opens with one instead of waiting for the next native prompt.
1275
+ * The native prompt path opens its own turn, session boundaries carry no
1276
+ * turn, and compaction can run between turns.
1277
+ */
1278
+ function midFlightSignalImpliesOpenTurn(signal) {
1279
+ switch (signal) {
1280
+ case "session-start":
1281
+ case "session-end":
1282
+ case "user-prompt-submit":
1283
+ case "pre-compact":
1284
+ case "post-compact":
1285
+ return false;
1286
+ default:
1287
+ return true;
1288
+ }
1289
+ }
1290
+ /** Commit through the append path even when the hook asked to defer its drain. */
1291
+ function withEagerDrain(input) {
1292
+ if (!input.writerOptions?.deferDrain)
1293
+ return input;
1294
+ return { ...input, writerOptions: { ...input.writerOptions, deferDrain: false } };
1295
+ }
1296
+ /**
1297
+ * Open a derived turn for a session onboarded mid-flight (ADR 0078) by a
1298
+ * signal that only an executing turn can deliver. Without it the fresh
1299
+ * generation has no current turn: command telemetry refuses to join
1300
+ * (`turn_not_started`), tool spans nest under the session span, and after an
1301
+ * epoch rotation (ADR 0137) the live session cannot satisfy its end-of-turn
1302
+ * gate until a human submits the next prompt. The payload's native turn id
1303
+ * is kept when the adapter supplies one, so the turn already running keeps
1304
+ * its identity across the boundary and later signals join it directly.
1305
+ */
1306
+ function commitMidFlightTurnStart(input, state, path, rootId, recovery) {
1307
+ const fingerprintContext = fingerprintContextV3(input.coordRoot, rootId, state.generation_id, state.privacy_epoch_id);
1308
+ const clock = signalClock(input);
1309
+ const span = openSpanStateV3({
1310
+ span_id: spanIdV3(),
1311
+ parent_span_id: state.session_span.span_id,
1312
+ boot_id: state.boot_id,
1313
+ clock,
1314
+ });
1315
+ state.current_turn_span = span;
1316
+ const nativeTurnId = input.payload.turn_id;
1317
+ state.current_native_turn_id = nativeTurnId;
1318
+ const event = normalizeHookEventV3("user-prompt-submit", recoveryBoundaryPayload(input.payload), {
1319
+ coordRoot: input.coordRoot,
1320
+ adapter: input.adapter,
1321
+ adapterVersion: input.adapterVersion,
1322
+ harnessVersion: input.harnessVersion,
1323
+ root_id: rootId,
1324
+ run_id: input.run_id,
1325
+ workflow_id: input.workflow_id,
1326
+ workflow_agent_id: input.workflow_agent_id,
1327
+ instance_id: state.instance_id,
1328
+ generation_id: state.generation_id,
1329
+ attestation_id: state.attestation_id,
1330
+ producer_id: input.producer_id,
1331
+ boot_id: state.boot_id,
1332
+ sequence: state.next_sequence,
1333
+ build_id: input.build_id,
1334
+ platform: input.platform,
1335
+ bridge: input.bridge,
1336
+ capability_profile: state.capability_profile,
1337
+ fingerprintContext,
1338
+ turn_native_id: nativeTurnId ?? `mid-flight:${state.generation_id}:${state.turn_ordinal + 1}`,
1339
+ span_id: span.span_id,
1340
+ caused_by: state.last_event_id ? [state.last_event_id] : [],
1341
+ observed_at: clock.observed_at,
1342
+ monotonic_ns: orderedEventMonotonic(state, input.monotonic_ns),
1343
+ clock_id: state.clock_id,
1344
+ });
1345
+ if (event?.event_type !== "turn.started") {
1346
+ throw new Error("mid-flight turn start could not be normalized");
1347
+ }
1348
+ event.provenance = {
1349
+ ...event.provenance,
1350
+ source_event: recovery?.source_event ?? `${input.adapter}.recovery`,
1351
+ attestation: "derived",
1352
+ confidence: recovery?.confidence ?? (nativeTurnId ? "medium" : "low"),
1353
+ attribution: {
1354
+ method: recovery?.attribution_method ?? (nativeTurnId ? "native_payload" : "session_env"),
1355
+ state: "verified",
1356
+ subject_instance_id: state.instance_id,
1357
+ },
1358
+ };
1359
+ assertEventV3(event);
1360
+ commitEventLocked(input, state, path, event);
1361
+ }
1189
1362
  /** The single pending-publish/write/apply/publish cycle every locked event commit uses. */
1190
1363
  function commitEventLocked(input, state, path, event, sourceId) {
1191
1364
  markObservedClockRegressionV3(event, state.last_observed_at);
1192
1365
  assertEventV3(event);
1193
1366
  state.pending = { ...(sourceId ? { source_id: sourceId } : {}), event };
1194
- publishProducerState(path, state);
1367
+ publishProducerState(input.coordRoot, path, state);
1195
1368
  const durability = writeEventV3(input.coordRoot, event, input.writerOptions);
1196
1369
  applyCommittedEvent(state, event);
1197
1370
  state.pending = undefined;
1198
- publishProducerState(path, state);
1371
+ publishProducerState(input.coordRoot, path, state);
1199
1372
  return durability;
1200
1373
  }
1201
1374
  function commitTurnContextObservation(input, state, path, rootId, fingerprintContext, target, measurement, contextProvenance, observedAt) {
@@ -1214,7 +1387,7 @@ function commitContextObservation(input, state, path, rootId, fingerprintContext
1214
1387
  if (measurement.state === "observed" &&
1215
1388
  contextProvenance?.source_witness &&
1216
1389
  state.last_context_source_witness === contextProvenance.source_witness) {
1217
- publishProducerState(path, state);
1390
+ publishProducerState(input.coordRoot, path, state);
1218
1391
  return;
1219
1392
  }
1220
1393
  if (measurement.state === "observed" && contextProvenance?.source_witness) {
@@ -1314,12 +1487,12 @@ function maybeCommitActiveRuntimeContextObservation(input, state, path, rootId,
1314
1487
  return;
1315
1488
  }
1316
1489
  if (input.adapter === "cursor" && state.cursor_mode === "cloud") {
1317
- publishProducerState(path, state);
1490
+ publishProducerState(input.coordRoot, path, state);
1318
1491
  return;
1319
1492
  }
1320
1493
  const transcriptPath = runtimeTranscriptPath(input, state);
1321
1494
  if (!transcriptPath && input.adapter !== "cursor") {
1322
- publishProducerState(path, state);
1495
+ publishProducerState(input.coordRoot, path, state);
1323
1496
  return;
1324
1497
  }
1325
1498
  const runtime = readRuntimeContextTelemetry({
@@ -1336,7 +1509,7 @@ function maybeCommitActiveRuntimeContextObservation(input, state, path, rootId,
1336
1509
  if (runtime.bytes_read > 0)
1337
1510
  recordRuntimeTelemetryTiming(state, runtime.io_duration_ms);
1338
1511
  if (runtime.state !== "observed") {
1339
- publishProducerState(path, state);
1512
+ publishProducerState(input.coordRoot, path, state);
1340
1513
  return;
1341
1514
  }
1342
1515
  commitActiveContextObservation(input, state, path, rootId, fingerprintContext, sourceEvent, runtimeContextObservation(runtime), {
@@ -1505,7 +1678,7 @@ function reconcilePendingRuntimeContexts(input, state, path, rootId, fingerprint
1505
1678
  if (state.pending_runtime_contexts?.length === 0) {
1506
1679
  state.pending_runtime_contexts = undefined;
1507
1680
  }
1508
- publishProducerState(path, state);
1681
+ publishProducerState(input.coordRoot, path, state);
1509
1682
  }
1510
1683
  function reconcilePendingRuntimeContextsBeforeApprovedEnd(input, state, path, rootId, fingerprintContext) {
1511
1684
  if (state.adapter !== "codex" || !state.pending_runtime_contexts?.length)
@@ -2161,7 +2334,7 @@ export function recordApprovedSessionEndV3(input) {
2161
2334
  const durability = writeEventV3(input.coordRoot, pending, input.writerOptions);
2162
2335
  applyCommittedEvent(state, pending);
2163
2336
  state.pending = undefined;
2164
- publishProducerState(record.path, state);
2337
+ publishProducerState(input.coordRoot, record.path, state);
2165
2338
  recovered = true;
2166
2339
  if (pending.event_type === "session.ended") {
2167
2340
  return { state: "recorded", event: pending, durability, recovered };
@@ -2244,11 +2417,11 @@ export function recordApprovedSessionEndV3(input) {
2244
2417
  markObservedClockRegressionV3(event, state.last_observed_at);
2245
2418
  assertEventV3(event);
2246
2419
  state.pending = { event };
2247
- publishProducerState(record.path, state);
2420
+ publishProducerState(input.coordRoot, record.path, state);
2248
2421
  const durability = writeEventV3(input.coordRoot, event, input.writerOptions);
2249
2422
  applyCommittedEvent(state, event);
2250
2423
  state.pending = undefined;
2251
- publishProducerState(record.path, state);
2424
+ publishProducerState(input.coordRoot, record.path, state);
2252
2425
  return { state: "recorded", event, durability, recovered };
2253
2426
  }
2254
2427
  finally {
@@ -2310,7 +2483,7 @@ export function salvageOpenSpansV3(input) {
2310
2483
  writeEventV3(input.coordRoot, pendingEvent, input.writerOptions);
2311
2484
  applyCommittedEvent(state, pendingEvent);
2312
2485
  state.pending = undefined;
2313
- publishProducerState(record.path, state);
2486
+ publishProducerState(input.coordRoot, record.path, state);
2314
2487
  }
2315
2488
  const allowed = new Set(input.allowed_span_ids);
2316
2489
  const fingerprintContext = fingerprintContextV3(input.coordRoot, rootId, state.generation_id, state.privacy_epoch_id);
@@ -2372,6 +2545,126 @@ export function listHookProducerStateRecordsV3(coordRoot, options = {}) {
2372
2545
  return records.sort((left, right) => left.state.generation_id.localeCompare(right.state.generation_id) ||
2373
2546
  left.path.localeCompare(right.path));
2374
2547
  }
2548
+ /**
2549
+ * Re-anchor every live archived hook producer into a newly activated epoch.
2550
+ *
2551
+ * The archive rename is the rotation's atomic snapshot: it includes every
2552
+ * state published before the boundary without copying any old boot sequence
2553
+ * or causal link into the successor. Each live session gets a fresh
2554
+ * generation and attestation. Only a turn that was open at the boundary is
2555
+ * reopened, which makes command telemetry joinable before another adapter
2556
+ * hook fires while preserving the between-turn state for idle sessions.
2557
+ */
2558
+ export function reanchorArchivedHookProducersV3(input) {
2559
+ const control = readEventV3ControlState(input.coordRoot);
2560
+ if (control.state !== input.mode) {
2561
+ throw new Error(`event_v3_rotation_reanchor_gate_closed:${control.state}`);
2562
+ }
2563
+ const rootId = control.genesis.event.scope.root_id;
2564
+ const epochId = control.genesis.profile.privacy_key_epoch;
2565
+ const genesisId = control.genesis.event.payload.genesis_id;
2566
+ const boundaryEventId = control.state === "candidate"
2567
+ ? control.genesis.event.event_id
2568
+ : control.activation.event.event_id;
2569
+ const observedAt = input.observed_at ?? new Date().toISOString();
2570
+ let sessions = 0;
2571
+ let turns = 0;
2572
+ for (const archived of listArchivedHookProducerStatesV3(input.archivedEpoch)) {
2573
+ const previous = archived.state;
2574
+ if (previous.terminal || !previous.started_event_id)
2575
+ continue;
2576
+ const path = producerStatePath(input.coordRoot, previous.adapter, archived.sessionHash);
2577
+ const lease = acquireStateLeaseWithRetry(input.coordRoot, path, 40);
2578
+ if (!lease) {
2579
+ throw new Error(`event_v3_rotation_reanchor_busy:${previous.instance_id}`);
2580
+ }
2581
+ try {
2582
+ if (existsSync(path)) {
2583
+ const current = readProducerState(path);
2584
+ if (current.epoch_genesis_id === genesisId)
2585
+ continue;
2586
+ }
2587
+ const sourceEvent = `${previous.adapter}.epoch-rotation-reanchor`;
2588
+ const rotationInput = {
2589
+ coordRoot: input.coordRoot,
2590
+ mode: input.mode,
2591
+ signal: "session-start",
2592
+ payload: {
2593
+ raw: {},
2594
+ ...(previous.current_native_turn_id ? { turn_id: previous.current_native_turn_id } : {}),
2595
+ ...(previous.adapter === "cursor" && previous.cursor_mode
2596
+ ? { cursor_mode: previous.cursor_mode }
2597
+ : {}),
2598
+ },
2599
+ adapter: previous.adapter,
2600
+ instance_id: previous.instance_id,
2601
+ producer_id: "prd_agent-hook",
2602
+ build_id: input.build_id,
2603
+ platform: input.platform,
2604
+ observed_at: observedAt,
2605
+ writerOptions: { expectedGenesisId: genesisId },
2606
+ };
2607
+ const state = newProducerState(rotationInput, previous.session_id, epochId, boundaryEventId, genesisId);
2608
+ const sessionStart = buildMidFlightSessionStart(rotationInput, state, rootId);
2609
+ if (sessionStart.event_type !== "session.started") {
2610
+ throw new Error("rotation re-anchor session start could not be normalized");
2611
+ }
2612
+ sessionStart.provenance = {
2613
+ ...sessionStart.provenance,
2614
+ source_event: sourceEvent,
2615
+ attestation: "derived",
2616
+ confidence: "high",
2617
+ attribution: {
2618
+ method: "session_env",
2619
+ state: "verified",
2620
+ subject_instance_id: state.instance_id,
2621
+ },
2622
+ };
2623
+ sessionStart.payload.resume = {
2624
+ state: "unknown",
2625
+ reason: "epoch_rotation_reanchor",
2626
+ };
2627
+ assertEventV3(sessionStart);
2628
+ commitEventLocked(rotationInput, state, path, sessionStart);
2629
+ sessions += 1;
2630
+ if (previous.current_turn_id && previous.current_turn_span) {
2631
+ commitMidFlightTurnStart(rotationInput, state, path, rootId, {
2632
+ source_event: sourceEvent,
2633
+ confidence: "high",
2634
+ attribution_method: "session_env",
2635
+ });
2636
+ turns += 1;
2637
+ }
2638
+ }
2639
+ finally {
2640
+ lease.release();
2641
+ }
2642
+ }
2643
+ return { sessions, turns };
2644
+ }
2645
+ function listArchivedHookProducerStatesV3(archivedEpoch) {
2646
+ const producerRoot = join(resolve(archivedEpoch), "private-producers");
2647
+ if (!existsSync(producerRoot))
2648
+ return [];
2649
+ const records = [];
2650
+ for (const adapter of ["claude-code", "codex", "cursor"]) {
2651
+ const directory = join(producerRoot, adapter);
2652
+ if (!existsSync(directory))
2653
+ continue;
2654
+ const metadata = lstatSync(directory);
2655
+ if (!metadata.isDirectory() || metadata.isSymbolicLink()) {
2656
+ throw new Error("V3 archived producer state directory is unsafe");
2657
+ }
2658
+ for (const name of readdirSync(directory).filter((entry) => /^hid_[a-f0-9]{64}\.json$/.test(entry))) {
2659
+ records.push({
2660
+ sessionHash: name.slice(0, -".json".length),
2661
+ state: readProducerState(join(directory, name)),
2662
+ });
2663
+ }
2664
+ }
2665
+ return records.sort((left, right) => left.state.generation_id.localeCompare(right.state.generation_id) ||
2666
+ left.sessionHash.localeCompare(right.sessionHash));
2667
+ }
2375
2668
  function hookSignalCapability(signal) {
2376
2669
  switch (signal) {
2377
2670
  case "session-start":
@@ -2380,6 +2673,8 @@ function hookSignalCapability(signal) {
2380
2673
  return "session_end";
2381
2674
  case "user-prompt-submit":
2382
2675
  return "prompt";
2676
+ case "after-agent-response":
2677
+ return "assistant_reply_text";
2383
2678
  case "stop":
2384
2679
  case "stop-failure":
2385
2680
  return "turn_completion";
@@ -2573,6 +2868,7 @@ function applyCommittedEvent(state, event) {
2573
2868
  if (event.event_type === "turn.started") {
2574
2869
  const nextTurnId = event.scope.turn_id;
2575
2870
  state.current_turn_id = nextTurnId;
2871
+ state.cursor_response_ritual = undefined;
2576
2872
  state.session_start_derivation = undefined;
2577
2873
  if (state.tool_call_count_turn_id !== nextTurnId) {
2578
2874
  state.tool_call_count = 0;
@@ -2650,6 +2946,7 @@ function applyCommittedEvent(state, event) {
2650
2946
  }
2651
2947
  state.current_turn_id = undefined;
2652
2948
  state.current_native_turn_id = undefined;
2949
+ state.cursor_response_ritual = undefined;
2653
2950
  state.current_turn_span = undefined;
2654
2951
  state.tool_call_count = 0;
2655
2952
  state.tool_call_count_turn_id = undefined;
@@ -2818,7 +3115,11 @@ function acquireStateLease(coordRoot, statePath) {
2818
3115
  mkdirSync(directory, { recursive: true, mode: 0o700 });
2819
3116
  chmodSync(producerRoot, 0o700);
2820
3117
  chmodSync(directory, 0o700);
2821
- return acquireNoClobberLease({
3118
+ const acquiredControl = readEventV3ControlState(coordRoot);
3119
+ const acquiredGenesis = acquiredControl.state === "candidate" || acquiredControl.state === "active"
3120
+ ? acquiredControl.genesis.event.payload.genesis_id
3121
+ : undefined;
3122
+ const lease = acquireNoClobberLease({
2822
3123
  path: `${statePath}.lease`,
2823
3124
  scope: "event-v3-hook-producer",
2824
3125
  authoritySha256: createHash("sha256")
@@ -2829,8 +3130,30 @@ function acquireStateLease(coordRoot, statePath) {
2829
3130
  staleAfterMs: 5_000,
2830
3131
  validateStaleOwner: (owner) => owner.host === hostname() && !pidIsAlive(owner.pid),
2831
3132
  });
3133
+ return {
3134
+ ...lease,
3135
+ release() {
3136
+ try {
3137
+ lease.release();
3138
+ }
3139
+ catch (error) {
3140
+ const current = readEventV3ControlState(coordRoot);
3141
+ const epochReplaced = acquiredGenesis !== undefined &&
3142
+ (current.state === "candidate" || current.state === "active") &&
3143
+ current.genesis.event.payload.genesis_id !== acquiredGenesis;
3144
+ if (error.code === "ENOENT" && epochReplaced)
3145
+ return;
3146
+ throw error;
3147
+ }
3148
+ },
3149
+ };
2832
3150
  }
2833
- function publishProducerState(path, state) {
3151
+ function publishProducerState(coordRoot, path, state) {
3152
+ const control = readEventV3ControlState(coordRoot);
3153
+ if ((control.state === "candidate" || control.state === "active") &&
3154
+ state.epoch_genesis_id !== control.genesis.event.payload.genesis_id) {
3155
+ return;
3156
+ }
2834
3157
  const temporary = `${path}.tmp-${process.pid}-${randomUUID()}`;
2835
3158
  let fd;
2836
3159
  try {
@@ -2900,6 +3223,7 @@ function readProducerState(path) {
2900
3223
  "current_native_turn_id",
2901
3224
  "current_turn_span",
2902
3225
  "cursor_mode",
3226
+ "cursor_response_ritual",
2903
3227
  "delegations",
2904
3228
  "epoch_genesis_id",
2905
3229
  "format",
@@ -3004,6 +3328,15 @@ function readProducerState(path) {
3004
3328
  (typeof state.current_native_turn_id !== "string" ||
3005
3329
  state.current_native_turn_id.length === 0 ||
3006
3330
  state.current_native_turn_id.length > 512)) ||
3331
+ (state.cursor_response_ritual !== undefined &&
3332
+ (!/^tid_[a-f0-9]{64}$/.test(state.cursor_response_ritual.turn_id) ||
3333
+ (state.cursor_response_ritual.native_turn_id !== undefined &&
3334
+ (typeof state.cursor_response_ritual.native_turn_id !== "string" ||
3335
+ state.cursor_response_ritual.native_turn_id.length === 0 ||
3336
+ state.cursor_response_ritual.native_turn_id.length > 512)) ||
3337
+ !Number.isFinite(Date.parse(state.cursor_response_ritual.observed_at)) ||
3338
+ typeof state.cursor_response_ritual.status_box_present !== "boolean" ||
3339
+ typeof state.cursor_response_ritual.status_box_present_strict !== "boolean")) ||
3007
3340
  (state.last_event_id !== undefined && !/^evt_[0-9a-f-]{36}$/.test(state.last_event_id)) ||
3008
3341
  (state.last_monotonic_ns !== undefined && !/^\d+$/.test(state.last_monotonic_ns)) ||
3009
3342
  (state.last_observed_at !== undefined &&
@@ -21,6 +21,14 @@
21
21
  */
22
22
  import type { Adapter } from "../../adapter.js";
23
23
  export type SystemEvent = "SessionStart" | "UserPromptSubmit" | "SubagentStart" | "PreToolUse" | "PostToolUse";
24
+ /**
25
+ * Whether this adapter can actually receive injected context for an event.
26
+ * Cursor's beforeSubmitPrompt hook can allow or block a turn but cannot inject
27
+ * model context, so anything rendered for that event is discarded. A caller
28
+ * that consumes state to build the text (draining a mailbox, for instance)
29
+ * must check this first, or the state is spent on output nobody reads.
30
+ */
31
+ export declare function canReceiveContext(adapter: Adapter, event: SystemEvent): boolean;
24
32
  /** Emit a context-injection (peer table, wiring check, council pending, …). */
25
33
  export declare function emitContext(adapter: Adapter, event: SystemEvent, text: string): void;
26
34
  /** Emit a PreToolUse deny: blocks the tool call with `reason` shown to the model. */
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/adapter/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIhD,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,kBAAkB,GAClB,eAAe,GACf,YAAY,GACZ,aAAa,CAAC;AAElB,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAKpF;AAED,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI/D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC1C,SAAS,CAAC,EAAE,MAAM,GACjB,CAAC,GAAG,CAAC,CA4BP"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../../src/core/hooks/adapter/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAIhD,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,kBAAkB,GAClB,eAAe,GACf,YAAY,GACZ,aAAa,CAAC;AAElB;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAE/E;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAKpF;AAED,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAI/D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC1C,SAAS,CAAC,EAAE,MAAM,GACjB,CAAC,GAAG,CAAC,CA4BP"}