harnery 0.32.0 → 0.34.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 (665) hide show
  1. package/README.md +2 -0
  2. package/dist/commander.d.ts.map +1 -1
  3. package/dist/commander.js +7 -1
  4. package/dist/commands/adapter.js +2 -2
  5. package/dist/commands/agents.d.ts +144 -1
  6. package/dist/commands/agents.d.ts.map +1 -1
  7. package/dist/commands/agents.js +1408 -565
  8. package/dist/commands/artifacts.d.ts.map +1 -1
  9. package/dist/commands/artifacts.js +7 -6
  10. package/dist/commands/backup.d.ts +1 -1
  11. package/dist/commands/backup.d.ts.map +1 -1
  12. package/dist/commands/backup.js +29 -16
  13. package/dist/commands/browse.d.ts.map +1 -1
  14. package/dist/commands/browse.js +234 -12
  15. package/dist/commands/checkpoint.d.ts.map +1 -1
  16. package/dist/commands/checkpoint.js +3 -2
  17. package/dist/commands/claude-desktop.d.ts +2 -2
  18. package/dist/commands/claude-desktop.d.ts.map +1 -1
  19. package/dist/commands/claude-desktop.js +2 -2
  20. package/dist/commands/context.js +1 -6
  21. package/dist/commands/decision.d.ts.map +1 -1
  22. package/dist/commands/decision.js +22 -38
  23. package/dist/commands/docs.d.ts.map +1 -1
  24. package/dist/commands/docs.js +91 -28
  25. package/dist/commands/doctor.d.ts +4 -2
  26. package/dist/commands/doctor.d.ts.map +1 -1
  27. package/dist/commands/doctor.js +55 -7
  28. package/dist/commands/events.d.ts +5 -0
  29. package/dist/commands/events.d.ts.map +1 -0
  30. package/dist/commands/events.js +189 -0
  31. package/dist/commands/governor.d.ts.map +1 -1
  32. package/dist/commands/governor.js +13 -4
  33. package/dist/commands/init.d.ts +10 -2
  34. package/dist/commands/init.d.ts.map +1 -1
  35. package/dist/commands/init.js +233 -51
  36. package/dist/commands/instructions.d.ts +4 -0
  37. package/dist/commands/instructions.d.ts.map +1 -0
  38. package/dist/commands/instructions.js +100 -0
  39. package/dist/commands/journal.d.ts.map +1 -1
  40. package/dist/commands/journal.js +4 -13
  41. package/dist/commands/ledger-v3.d.ts +5 -0
  42. package/dist/commands/ledger-v3.d.ts.map +1 -0
  43. package/dist/commands/ledger-v3.js +91 -0
  44. package/dist/commands/presence.d.ts.map +1 -1
  45. package/dist/commands/presence.js +15 -6
  46. package/dist/commands/sync.d.ts +1 -1
  47. package/dist/commands/sync.js +1 -1
  48. package/dist/commands/web.d.ts +6 -0
  49. package/dist/commands/web.d.ts.map +1 -1
  50. package/dist/commands/web.js +67 -7
  51. package/dist/commands/work.d.ts.map +1 -1
  52. package/dist/commands/work.js +22 -5
  53. package/dist/core/adapter.d.ts +5 -0
  54. package/dist/core/adapter.d.ts.map +1 -0
  55. package/dist/core/adapter.js +1 -0
  56. package/dist/core/adapters/attest.d.ts +5 -2
  57. package/dist/core/adapters/attest.d.ts.map +1 -1
  58. package/dist/core/adapters/attest.js +8 -3
  59. package/dist/core/adapters/profiles.d.ts +6 -6
  60. package/dist/core/adapters/profiles.d.ts.map +1 -1
  61. package/dist/core/adapters/profiles.js +4 -4
  62. package/dist/core/agents/canonical-emit.d.ts +17 -15
  63. package/dist/core/agents/canonical-emit.d.ts.map +1 -1
  64. package/dist/core/agents/canonical-emit.js +27 -25
  65. package/dist/core/agents/cli.js +212 -235
  66. package/dist/core/agents/codex-archive-v3.d.ts +14 -0
  67. package/dist/core/agents/codex-archive-v3.d.ts.map +1 -0
  68. package/dist/core/agents/codex-archive-v3.js +110 -0
  69. package/dist/core/agents/coord-client.d.ts +19 -70
  70. package/dist/core/agents/coord-client.d.ts.map +1 -1
  71. package/dist/core/agents/coord-client.js +65 -155
  72. package/dist/core/agents/finalization.d.ts +4 -1
  73. package/dist/core/agents/finalization.d.ts.map +1 -1
  74. package/dist/core/agents/finalization.js +89 -32
  75. package/dist/core/agents/index.d.ts +5 -5
  76. package/dist/core/agents/index.d.ts.map +1 -1
  77. package/dist/core/agents/index.js +5 -5
  78. package/dist/core/agents/live-authority-v3.d.ts +59 -0
  79. package/dist/core/agents/live-authority-v3.d.ts.map +1 -0
  80. package/dist/core/agents/live-authority-v3.js +233 -0
  81. package/dist/core/agents/live-lifecycle-v3.d.ts +20 -0
  82. package/dist/core/agents/live-lifecycle-v3.d.ts.map +1 -0
  83. package/dist/core/agents/live-lifecycle-v3.js +91 -0
  84. package/dist/core/agents/live-observation-v3.d.ts +25 -0
  85. package/dist/core/agents/live-observation-v3.d.ts.map +1 -0
  86. package/dist/core/agents/live-observation-v3.js +157 -0
  87. package/dist/core/agents/render/prompt-context.d.ts +10 -4
  88. package/dist/core/agents/render/prompt-context.d.ts.map +1 -1
  89. package/dist/core/agents/render/prompt-context.js +61 -55
  90. package/dist/core/agents/render/session-context.d.ts +1 -1
  91. package/dist/core/agents/render/session-context.d.ts.map +1 -1
  92. package/dist/core/agents/render/session-context.js +15 -33
  93. package/dist/core/agents/rules/claim-conflict.d.ts +3 -3
  94. package/dist/core/agents/rules/claim-conflict.d.ts.map +1 -1
  95. package/dist/core/agents/rules/claim-conflict.js +79 -127
  96. package/dist/core/agents/rules/commit-conflict.d.ts.map +1 -1
  97. package/dist/core/agents/rules/commit-conflict.js +3 -18
  98. package/dist/core/agents/rules/stop-hook.d.ts +9 -50
  99. package/dist/core/agents/rules/stop-hook.d.ts.map +1 -1
  100. package/dist/core/agents/rules/stop-hook.js +193 -236
  101. package/dist/core/agents/session-events.d.ts +5 -7
  102. package/dist/core/agents/session-events.d.ts.map +1 -1
  103. package/dist/core/agents/session-events.js +127 -95
  104. package/dist/core/agents/session-finalization-state-v3.d.ts +30 -0
  105. package/dist/core/agents/session-finalization-state-v3.d.ts.map +1 -0
  106. package/dist/core/agents/session-finalization-state-v3.js +40 -0
  107. package/dist/core/agents/session-finalizer-v3.d.ts +107 -0
  108. package/dist/core/agents/session-finalizer-v3.d.ts.map +1 -0
  109. package/dist/core/agents/session-finalizer-v3.js +734 -0
  110. package/dist/core/agents/session-name-display.d.ts +40 -0
  111. package/dist/core/agents/session-name-display.d.ts.map +1 -0
  112. package/dist/core/agents/session-name-display.js +119 -0
  113. package/dist/core/agents/state/activity-log.d.ts +3 -3
  114. package/dist/core/agents/state/activity-log.d.ts.map +1 -1
  115. package/dist/core/agents/state/activity-log.js +7 -16
  116. package/dist/core/agents/state/heartbeat-writer.d.ts +29 -46
  117. package/dist/core/agents/state/heartbeat-writer.d.ts.map +1 -1
  118. package/dist/core/agents/state/heartbeat-writer.js +59 -199
  119. package/dist/core/agents/state/live-coordination-view.d.ts +31 -0
  120. package/dist/core/agents/state/live-coordination-view.d.ts.map +1 -0
  121. package/dist/core/agents/state/live-coordination-view.js +209 -0
  122. package/dist/core/agents/state/session-state.d.ts +45 -0
  123. package/dist/core/agents/state/session-state.d.ts.map +1 -0
  124. package/dist/core/agents/state/session-state.js +90 -0
  125. package/dist/core/agents/state/stale-sweep.d.ts +1 -1
  126. package/dist/core/agents/state/stale-sweep.d.ts.map +1 -1
  127. package/dist/core/agents/state/stale-sweep.js +26 -15
  128. package/dist/core/artifacts/index.d.ts.map +1 -1
  129. package/dist/core/artifacts/index.js +5 -7
  130. package/dist/core/config.d.ts +33 -2
  131. package/dist/core/config.d.ts.map +1 -1
  132. package/dist/core/config.js +98 -2
  133. package/dist/core/context/index.d.ts +1 -4
  134. package/dist/core/context/index.d.ts.map +1 -1
  135. package/dist/core/context/index.js +9 -9
  136. package/dist/core/events/span-parent.d.ts +15 -0
  137. package/dist/core/events/span-parent.d.ts.map +1 -0
  138. package/dist/core/events/span-parent.js +34 -0
  139. package/dist/core/events/v3/advance.d.ts +14 -0
  140. package/dist/core/events/v3/advance.d.ts.map +1 -0
  141. package/dist/core/events/v3/advance.js +134 -0
  142. package/dist/core/events/v3/authority-outbox.d.ts +78 -0
  143. package/dist/core/events/v3/authority-outbox.d.ts.map +1 -0
  144. package/dist/core/events/v3/authority-outbox.js +399 -0
  145. package/dist/core/events/v3/base-builder.d.ts +20 -0
  146. package/dist/core/events/v3/base-builder.d.ts.map +1 -0
  147. package/dist/core/events/v3/base-builder.js +29 -0
  148. package/dist/core/events/v3/base-contract.d.ts +7576 -0
  149. package/dist/core/events/v3/base-contract.d.ts.map +1 -0
  150. package/dist/core/events/v3/base-contract.js +647 -0
  151. package/dist/core/events/v3/bootstrap.d.ts +34 -0
  152. package/dist/core/events/v3/bootstrap.d.ts.map +1 -0
  153. package/dist/core/events/v3/bootstrap.js +175 -0
  154. package/dist/core/events/v3/builder.d.ts +20 -0
  155. package/dist/core/events/v3/builder.d.ts.map +1 -0
  156. package/dist/core/events/v3/builder.js +28 -0
  157. package/dist/core/events/v3/canonical.d.ts +31 -0
  158. package/dist/core/events/v3/canonical.d.ts.map +1 -0
  159. package/dist/core/events/v3/canonical.js +100 -0
  160. package/dist/core/events/v3/capabilities.d.ts +31 -0
  161. package/dist/core/events/v3/capabilities.d.ts.map +1 -0
  162. package/dist/core/events/v3/capabilities.js +107 -0
  163. package/dist/core/events/v3/capability-drift.d.ts +22 -0
  164. package/dist/core/events/v3/capability-drift.d.ts.map +1 -0
  165. package/dist/core/events/v3/capability-drift.js +134 -0
  166. package/dist/core/events/v3/catalog.d.ts +38 -0
  167. package/dist/core/events/v3/catalog.d.ts.map +1 -0
  168. package/dist/core/events/v3/catalog.js +135 -0
  169. package/dist/core/events/v3/clock-order.d.ts +34 -0
  170. package/dist/core/events/v3/clock-order.d.ts.map +1 -0
  171. package/dist/core/events/v3/clock-order.js +35 -0
  172. package/dist/core/events/v3/contract.d.ts +171 -0
  173. package/dist/core/events/v3/contract.d.ts.map +1 -0
  174. package/dist/core/events/v3/contract.js +180 -0
  175. package/dist/core/events/v3/control.d.ts +111 -0
  176. package/dist/core/events/v3/control.d.ts.map +1 -0
  177. package/dist/core/events/v3/control.js +419 -0
  178. package/dist/core/events/v3/coordination-view.d.ts +69 -0
  179. package/dist/core/events/v3/coordination-view.d.ts.map +1 -0
  180. package/dist/core/events/v3/coordination-view.js +119 -0
  181. package/dist/core/events/v3/economics.d.ts +77 -0
  182. package/dist/core/events/v3/economics.d.ts.map +1 -0
  183. package/dist/core/events/v3/economics.js +274 -0
  184. package/dist/core/events/v3/finalization-view.d.ts +26 -0
  185. package/dist/core/events/v3/finalization-view.d.ts.map +1 -0
  186. package/dist/core/events/v3/finalization-view.js +37 -0
  187. package/dist/core/events/v3/fingerprint-keys.d.ts +25 -0
  188. package/dist/core/events/v3/fingerprint-keys.d.ts.map +1 -0
  189. package/dist/core/events/v3/fingerprint-keys.js +217 -0
  190. package/dist/core/events/v3/generated.d.ts +4 -0
  191. package/dist/core/events/v3/generated.d.ts.map +1 -0
  192. package/dist/core/events/v3/generated.js +47 -0
  193. package/dist/core/events/v3/ids.d.ts +9 -0
  194. package/dist/core/events/v3/ids.d.ts.map +1 -0
  195. package/dist/core/events/v3/ids.js +25 -0
  196. package/dist/core/events/v3/index.d.ts +35 -0
  197. package/dist/core/events/v3/index.d.ts.map +1 -0
  198. package/dist/core/events/v3/index.js +33 -0
  199. package/dist/core/events/v3/latency.d.ts +63 -0
  200. package/dist/core/events/v3/latency.d.ts.map +1 -0
  201. package/dist/core/events/v3/latency.js +412 -0
  202. package/dist/core/events/v3/live-feed.d.ts +45 -0
  203. package/dist/core/events/v3/live-feed.d.ts.map +1 -0
  204. package/dist/core/events/v3/live-feed.js +246 -0
  205. package/dist/core/events/v3/live-observation.d.ts +35 -0
  206. package/dist/core/events/v3/live-observation.d.ts.map +1 -0
  207. package/dist/core/events/v3/live-observation.js +1 -0
  208. package/dist/core/events/v3/live-routing.d.ts +57 -0
  209. package/dist/core/events/v3/live-routing.d.ts.map +1 -0
  210. package/dist/core/events/v3/live-routing.js +107 -0
  211. package/dist/core/events/v3/producers/command-recorder.d.ts +67 -0
  212. package/dist/core/events/v3/producers/command-recorder.d.ts.map +1 -0
  213. package/dist/core/events/v3/producers/command-recorder.js +477 -0
  214. package/dist/core/events/v3/producers/command.d.ts +50 -0
  215. package/dist/core/events/v3/producers/command.d.ts.map +1 -0
  216. package/dist/core/events/v3/producers/command.js +135 -0
  217. package/dist/core/events/v3/producers/coordination-recorder.d.ts +53 -0
  218. package/dist/core/events/v3/producers/coordination-recorder.d.ts.map +1 -0
  219. package/dist/core/events/v3/producers/coordination-recorder.js +376 -0
  220. package/dist/core/events/v3/producers/coordination.d.ts +90 -0
  221. package/dist/core/events/v3/producers/coordination.d.ts.map +1 -0
  222. package/dist/core/events/v3/producers/coordination.js +229 -0
  223. package/dist/core/events/v3/producers/hook-base.d.ts +54 -0
  224. package/dist/core/events/v3/producers/hook-base.d.ts.map +1 -0
  225. package/dist/core/events/v3/producers/hook-base.js +424 -0
  226. package/dist/core/events/v3/producers/hook.d.ts +29 -0
  227. package/dist/core/events/v3/producers/hook.d.ts.map +1 -0
  228. package/dist/core/events/v3/producers/hook.js +71 -0
  229. package/dist/core/events/v3/producers/intake.d.ts +65 -0
  230. package/dist/core/events/v3/producers/intake.d.ts.map +1 -0
  231. package/dist/core/events/v3/producers/intake.js +244 -0
  232. package/dist/core/events/v3/producers/recorder.d.ts +240 -0
  233. package/dist/core/events/v3/producers/recorder.d.ts.map +1 -0
  234. package/dist/core/events/v3/producers/recorder.js +2176 -0
  235. package/dist/core/events/v3/projection.d.ts +101 -0
  236. package/dist/core/events/v3/projection.d.ts.map +1 -0
  237. package/dist/core/events/v3/projection.js +479 -0
  238. package/dist/core/events/v3/reader.d.ts +75 -0
  239. package/dist/core/events/v3/reader.d.ts.map +1 -0
  240. package/dist/core/events/v3/reader.js +778 -0
  241. package/dist/core/events/v3/recovery-record.d.ts +47 -0
  242. package/dist/core/events/v3/recovery-record.d.ts.map +1 -0
  243. package/dist/core/events/v3/recovery-record.js +167 -0
  244. package/dist/core/events/v3/recovery.d.ts +22 -0
  245. package/dist/core/events/v3/recovery.d.ts.map +1 -0
  246. package/dist/core/events/v3/recovery.js +227 -0
  247. package/dist/core/events/v3/span-state.d.ts +52 -0
  248. package/dist/core/events/v3/span-state.d.ts.map +1 -0
  249. package/dist/core/events/v3/span-state.js +142 -0
  250. package/dist/core/events/v3/targets.d.ts +23 -0
  251. package/dist/core/events/v3/targets.d.ts.map +1 -0
  252. package/dist/core/events/v3/targets.js +134 -0
  253. package/dist/core/events/v3/turn-telemetry.d.ts +41 -0
  254. package/dist/core/events/v3/turn-telemetry.d.ts.map +1 -0
  255. package/dist/core/events/v3/turn-telemetry.js +168 -0
  256. package/dist/core/events/v3/validate.d.ts +9 -0
  257. package/dist/core/events/v3/validate.d.ts.map +1 -0
  258. package/dist/core/events/v3/validate.js +281 -0
  259. package/dist/core/events/v3/writer.d.ts +56 -0
  260. package/dist/core/events/v3/writer.d.ts.map +1 -0
  261. package/dist/core/events/v3/writer.js +335 -0
  262. package/dist/core/governor/index.d.ts +1 -1
  263. package/dist/core/governor/index.d.ts.map +1 -1
  264. package/dist/core/governor/index.js +1 -1
  265. package/dist/core/governor/plan-api.d.ts +2 -1
  266. package/dist/core/governor/plan-api.d.ts.map +1 -1
  267. package/dist/core/governor/plan-api.js +6 -3
  268. package/dist/core/governor/read.d.ts +1 -1
  269. package/dist/core/governor/read.d.ts.map +1 -1
  270. package/dist/core/governor/read.js +1 -1
  271. package/dist/core/governor/state.d.ts +9 -0
  272. package/dist/core/governor/state.d.ts.map +1 -1
  273. package/dist/core/governor/state.js +40 -3
  274. package/dist/core/guard/config.d.ts +5 -0
  275. package/dist/core/guard/config.d.ts.map +1 -0
  276. package/dist/core/guard/config.js +157 -0
  277. package/dist/core/guard/coordinator.d.ts +14 -0
  278. package/dist/core/guard/coordinator.d.ts.map +1 -0
  279. package/dist/core/guard/coordinator.js +173 -0
  280. package/dist/core/guard/evaluator.d.ts +4 -0
  281. package/dist/core/guard/evaluator.d.ts.map +1 -0
  282. package/dist/core/guard/evaluator.js +242 -0
  283. package/dist/core/guard/evidence-v3.d.ts +15 -0
  284. package/dist/core/guard/evidence-v3.d.ts.map +1 -0
  285. package/dist/core/guard/evidence-v3.js +171 -0
  286. package/dist/core/guard/index.d.ts +10 -0
  287. package/dist/core/guard/index.d.ts.map +1 -0
  288. package/dist/core/guard/index.js +6 -0
  289. package/dist/core/guard/live-source-v3.d.ts +40 -0
  290. package/dist/core/guard/live-source-v3.d.ts.map +1 -0
  291. package/dist/core/guard/live-source-v3.js +128 -0
  292. package/dist/core/guard/storage.d.ts +27 -0
  293. package/dist/core/guard/storage.d.ts.map +1 -0
  294. package/dist/core/guard/storage.js +140 -0
  295. package/dist/core/guard/types.d.ts +119 -0
  296. package/dist/core/guard/types.d.ts.map +1 -0
  297. package/dist/core/guard/types.js +1 -0
  298. package/dist/core/hooks/adapter/detect.d.ts +18 -1
  299. package/dist/core/hooks/adapter/detect.d.ts.map +1 -1
  300. package/dist/core/hooks/adapter/detect.js +29 -0
  301. package/dist/core/hooks/adapter/events.d.ts +7 -4
  302. package/dist/core/hooks/adapter/events.d.ts.map +1 -1
  303. package/dist/core/hooks/adapter/events.js +13 -4
  304. package/dist/core/hooks/adapter/output.d.ts +2 -2
  305. package/dist/core/hooks/adapter/output.d.ts.map +1 -1
  306. package/dist/core/hooks/adapter/parse.d.ts +7 -4
  307. package/dist/core/hooks/adapter/parse.d.ts.map +1 -1
  308. package/dist/core/hooks/adapter/parse.js +64 -24
  309. package/dist/core/hooks/adapter/wiring.d.ts +30 -4
  310. package/dist/core/hooks/adapter/wiring.d.ts.map +1 -1
  311. package/dist/core/hooks/adapter/wiring.js +89 -11
  312. package/dist/core/hooks/cli.d.ts +1 -1
  313. package/dist/core/hooks/cli.js +345 -400
  314. package/dist/core/hooks/codex-authorization.d.ts +30 -0
  315. package/dist/core/hooks/codex-authorization.d.ts.map +1 -0
  316. package/dist/core/hooks/codex-authorization.js +199 -0
  317. package/dist/core/hooks/effects/image-capture.d.ts +20 -34
  318. package/dist/core/hooks/effects/image-capture.d.ts.map +1 -1
  319. package/dist/core/hooks/effects/image-capture.js +212 -221
  320. package/dist/core/hooks/effects/index.d.ts +1 -9
  321. package/dist/core/hooks/effects/index.d.ts.map +1 -1
  322. package/dist/core/hooks/effects/index.js +1 -24
  323. package/dist/core/hooks/events/input-hash.d.ts +7 -0
  324. package/dist/core/hooks/events/input-hash.d.ts.map +1 -0
  325. package/dist/core/hooks/events/input-hash.js +43 -0
  326. package/dist/core/hooks/index.d.ts +4 -3
  327. package/dist/core/hooks/index.d.ts.map +1 -1
  328. package/dist/core/hooks/index.js +2 -3
  329. package/dist/core/hooks/resolve/coord-root.d.ts +1 -1
  330. package/dist/core/hooks/resolve/coord-root.js +1 -1
  331. package/dist/core/hooks/resolve/owner.d.ts +16 -15
  332. package/dist/core/hooks/resolve/owner.d.ts.map +1 -1
  333. package/dist/core/hooks/resolve/owner.js +51 -42
  334. package/dist/core/hooks/resolve/transcript.d.ts +33 -3
  335. package/dist/core/hooks/resolve/transcript.d.ts.map +1 -1
  336. package/dist/core/hooks/resolve/transcript.js +155 -14
  337. package/dist/core/hooks/session-name-presence.d.ts +9 -10
  338. package/dist/core/hooks/session-name-presence.d.ts.map +1 -1
  339. package/dist/core/hooks/session-name-presence.js +15 -15
  340. package/dist/core/hooks/unsafe-cross-shell.d.ts +1 -1
  341. package/dist/core/hooks/unsafe-cross-shell.d.ts.map +1 -1
  342. package/dist/core/journal/index.d.ts +2 -2
  343. package/dist/core/journal/index.d.ts.map +1 -1
  344. package/dist/core/journal/index.js +9 -22
  345. package/dist/core/presence/blob.d.ts +8 -3
  346. package/dist/core/presence/blob.d.ts.map +1 -1
  347. package/dist/core/presence/blob.js +54 -41
  348. package/dist/core/presence/codec-digest.d.ts +29 -0
  349. package/dist/core/presence/codec-digest.d.ts.map +1 -0
  350. package/dist/core/presence/codec-digest.js +170 -0
  351. package/dist/core/presence/index.js +15 -1
  352. package/dist/core/presence/relay-client.d.ts +1 -1
  353. package/dist/core/presence/relay-client.d.ts.map +1 -1
  354. package/dist/core/presence/relay-client.js +5 -5
  355. package/dist/core/work/index.d.ts +1 -1
  356. package/dist/core/work/index.d.ts.map +1 -1
  357. package/dist/core/work/index.js +1 -1
  358. package/dist/core/work/read.d.ts +1 -1
  359. package/dist/core/work/read.d.ts.map +1 -1
  360. package/dist/core/work/read.js +1 -1
  361. package/dist/core/work/runner.d.ts.map +1 -1
  362. package/dist/core/work/runner.js +6 -0
  363. package/dist/core/work/state.d.ts +9 -0
  364. package/dist/core/work/state.d.ts.map +1 -1
  365. package/dist/core/work/state.js +17 -3
  366. package/dist/core/workflow/engine.js +24 -25
  367. package/dist/core/workflow/live-session-v3.d.ts +19 -0
  368. package/dist/core/workflow/live-session-v3.d.ts.map +1 -0
  369. package/dist/core/workflow/live-session-v3.js +86 -0
  370. package/dist/core/workflow/scope-id.d.ts +3 -0
  371. package/dist/core/workflow/scope-id.d.ts.map +1 -0
  372. package/dist/core/workflow/scope-id.js +5 -0
  373. package/dist/core/workflow/workspaces/leases.d.ts +4 -0
  374. package/dist/core/workflow/workspaces/leases.d.ts.map +1 -1
  375. package/dist/core/workflow/workspaces/leases.js +53 -19
  376. package/dist/index.d.ts +1 -1
  377. package/dist/index.js +1 -1
  378. package/dist/lib/browser/client.d.ts +41 -0
  379. package/dist/lib/browser/client.d.ts.map +1 -1
  380. package/dist/lib/browser/client.js +203 -0
  381. package/dist/lib/browser/critique.d.ts +28 -2
  382. package/dist/lib/browser/critique.d.ts.map +1 -1
  383. package/dist/lib/browser/critique.js +74 -18
  384. package/dist/lib/browser/geometry.d.ts +1 -1
  385. package/dist/lib/browser/geometry.d.ts.map +1 -1
  386. package/dist/lib/browser/geometry.js +130 -6
  387. package/dist/lib/browser/index.d.ts +3 -0
  388. package/dist/lib/browser/index.d.ts.map +1 -1
  389. package/dist/lib/browser/index.js +3 -0
  390. package/dist/lib/browser/qa-plan.d.ts +174 -0
  391. package/dist/lib/browser/qa-plan.d.ts.map +1 -0
  392. package/dist/lib/browser/qa-plan.js +321 -0
  393. package/dist/lib/browser/qa-reuse.d.ts +99 -0
  394. package/dist/lib/browser/qa-reuse.d.ts.map +1 -0
  395. package/dist/lib/browser/qa-reuse.js +222 -0
  396. package/dist/lib/browser/qa-snapshot.d.ts +64 -0
  397. package/dist/lib/browser/qa-snapshot.d.ts.map +1 -0
  398. package/dist/lib/browser/qa-snapshot.js +171 -0
  399. package/dist/lib/browser/runts.d.ts.map +1 -1
  400. package/dist/lib/browser/runts.js +22 -1
  401. package/dist/lib/browser/tiling.d.ts +71 -0
  402. package/dist/lib/browser/tiling.d.ts.map +1 -0
  403. package/dist/lib/browser/tiling.js +118 -0
  404. package/dist/lib/context/index.d.ts +0 -3
  405. package/dist/lib/context/index.d.ts.map +1 -1
  406. package/dist/lib/context/index.js +20 -42
  407. package/dist/lib/council/index.d.ts +2 -2
  408. package/dist/lib/council/index.d.ts.map +1 -1
  409. package/dist/lib/council/index.js +9 -20
  410. package/dist/lib/docs-frontmatter.d.ts +1 -6
  411. package/dist/lib/docs-frontmatter.d.ts.map +1 -1
  412. package/dist/lib/docs-frontmatter.js +12 -78
  413. package/dist/lib/docs-index.d.ts +9 -0
  414. package/dist/lib/docs-index.d.ts.map +1 -1
  415. package/dist/lib/docs-index.js +32 -3
  416. package/dist/lib/docs-lint.d.ts.map +1 -1
  417. package/dist/lib/docs-lint.js +14 -30
  418. package/dist/lib/docs-metadata-audit.d.ts +19 -0
  419. package/dist/lib/docs-metadata-audit.d.ts.map +1 -0
  420. package/dist/lib/docs-metadata-audit.js +132 -0
  421. package/dist/lib/docs-metadata-managed.d.ts +23 -0
  422. package/dist/lib/docs-metadata-managed.d.ts.map +1 -0
  423. package/dist/lib/docs-metadata-managed.js +78 -0
  424. package/dist/lib/docs-metadata-sync.d.ts +20 -0
  425. package/dist/lib/docs-metadata-sync.d.ts.map +1 -0
  426. package/dist/lib/docs-metadata-sync.js +222 -0
  427. package/dist/lib/docs-metadata-v2-schema.d.ts +273 -0
  428. package/dist/lib/docs-metadata-v2-schema.d.ts.map +1 -0
  429. package/dist/lib/docs-metadata-v2-schema.js +134 -0
  430. package/dist/lib/docs-metadata-v2.d.ts +21 -0
  431. package/dist/lib/docs-metadata-v2.d.ts.map +1 -0
  432. package/dist/lib/docs-metadata-v2.js +424 -0
  433. package/dist/lib/docs-new.d.ts +11 -0
  434. package/dist/lib/docs-new.d.ts.map +1 -0
  435. package/dist/lib/docs-new.js +52 -0
  436. package/dist/lib/docs-sweep.d.ts.map +1 -1
  437. package/dist/lib/docs-sweep.js +45 -29
  438. package/dist/lib/headless/index.d.ts +98 -0
  439. package/dist/lib/headless/index.d.ts.map +1 -0
  440. package/dist/lib/headless/index.js +211 -0
  441. package/dist/lib/identities/assume.d.ts +4 -4
  442. package/dist/lib/identities/assume.d.ts.map +1 -1
  443. package/dist/lib/identities/assume.js +52 -68
  444. package/dist/lib/instructions/apply.d.ts +5 -4
  445. package/dist/lib/instructions/apply.d.ts.map +1 -1
  446. package/dist/lib/instructions/apply.js +32 -20
  447. package/dist/lib/instructions/bundle.d.ts +33 -0
  448. package/dist/lib/instructions/bundle.d.ts.map +1 -0
  449. package/dist/lib/instructions/bundle.js +149 -0
  450. package/dist/lib/instructions/splice.d.ts +0 -1
  451. package/dist/lib/instructions/splice.d.ts.map +1 -1
  452. package/dist/lib/instructions/splice.js +22 -6
  453. package/dist/lib/instructions/templates.d.ts +7 -5
  454. package/dist/lib/instructions/templates.d.ts.map +1 -1
  455. package/dist/lib/instructions/templates.js +79 -9
  456. package/package.json +27 -6
  457. package/schemas/config.schema.json +120 -2
  458. package/schemas/docs-metadata-v2.schema.json +441 -0
  459. package/schemas/event-v3.schema.json +24472 -0
  460. package/src/commander.ts +7 -1
  461. package/src/commands/adapter.ts +2 -2
  462. package/src/commands/agents.ts +1737 -570
  463. package/src/commands/artifacts.ts +7 -6
  464. package/src/commands/backup.ts +29 -21
  465. package/src/commands/browse.ts +349 -8
  466. package/src/commands/checkpoint.ts +4 -3
  467. package/src/commands/claude-desktop.ts +7 -5
  468. package/src/commands/context.ts +1 -6
  469. package/src/commands/decision.ts +27 -44
  470. package/src/commands/docs.ts +100 -33
  471. package/src/commands/doctor.ts +73 -8
  472. package/src/commands/events.ts +256 -0
  473. package/src/commands/governor.ts +18 -4
  474. package/src/commands/init.ts +264 -57
  475. package/src/commands/instructions.ts +129 -0
  476. package/src/commands/journal.ts +4 -13
  477. package/src/commands/ledger-v3.ts +111 -0
  478. package/src/commands/presence.ts +18 -11
  479. package/src/commands/sync.ts +1 -1
  480. package/src/commands/web.ts +67 -8
  481. package/src/commands/work.ts +28 -5
  482. package/src/core/adapter.ts +5 -0
  483. package/src/core/adapters/attest.ts +8 -3
  484. package/src/core/adapters/profiles.ts +4 -6
  485. package/src/core/agents/canonical-emit.ts +39 -28
  486. package/src/core/agents/cli.ts +242 -263
  487. package/src/core/agents/codex-archive-v3.ts +138 -0
  488. package/src/core/agents/coord-client.ts +75 -177
  489. package/src/core/agents/finalization.ts +120 -38
  490. package/src/core/agents/index.ts +5 -5
  491. package/src/core/agents/live-authority-v3.ts +375 -0
  492. package/src/core/agents/live-lifecycle-v3.ts +140 -0
  493. package/src/core/agents/live-observation-v3.ts +216 -0
  494. package/src/core/agents/render/prompt-context.ts +89 -55
  495. package/src/core/agents/render/session-context.ts +23 -32
  496. package/src/core/agents/rules/claim-conflict.ts +85 -126
  497. package/src/core/agents/rules/commit-conflict.ts +3 -14
  498. package/src/core/agents/rules/stop-hook.ts +239 -293
  499. package/src/core/agents/session-events.ts +137 -104
  500. package/src/core/agents/session-finalization-state-v3.ts +90 -0
  501. package/src/core/agents/session-finalizer-v3.ts +953 -0
  502. package/src/core/agents/session-name-display.ts +149 -0
  503. package/src/core/agents/state/activity-log.ts +6 -14
  504. package/src/core/agents/state/heartbeat-writer.ts +98 -242
  505. package/src/core/agents/state/live-coordination-view.ts +290 -0
  506. package/src/core/agents/state/session-state.ts +143 -0
  507. package/src/core/agents/state/stale-sweep.ts +40 -17
  508. package/src/core/artifacts/index.ts +4 -5
  509. package/src/core/config.ts +148 -3
  510. package/src/core/context/index.ts +9 -17
  511. package/src/core/events/span-parent.ts +46 -0
  512. package/src/core/events/v3/advance.ts +168 -0
  513. package/src/core/events/v3/authority-outbox.ts +548 -0
  514. package/src/core/events/v3/base-builder.ts +60 -0
  515. package/src/core/events/v3/base-contract.ts +882 -0
  516. package/src/core/events/v3/bootstrap.ts +226 -0
  517. package/src/core/events/v3/builder.ts +59 -0
  518. package/src/core/events/v3/canonical.ts +153 -0
  519. package/src/core/events/v3/capabilities.ts +171 -0
  520. package/src/core/events/v3/capability-drift.ts +177 -0
  521. package/src/core/events/v3/catalog.ts +202 -0
  522. package/src/core/events/v3/clock-order.ts +41 -0
  523. package/src/core/events/v3/contract.ts +365 -0
  524. package/src/core/events/v3/control.ts +576 -0
  525. package/src/core/events/v3/coordination-view.ts +193 -0
  526. package/src/core/events/v3/economics.ts +384 -0
  527. package/src/core/events/v3/finalization-view.ts +67 -0
  528. package/src/core/events/v3/fingerprint-keys.ts +260 -0
  529. package/src/core/events/v3/generated.ts +48 -0
  530. package/src/core/events/v3/ids.ts +33 -0
  531. package/src/core/events/v3/index.ts +322 -0
  532. package/src/core/events/v3/latency.ts +551 -0
  533. package/src/core/events/v3/live-feed.ts +319 -0
  534. package/src/core/events/v3/live-observation.ts +39 -0
  535. package/src/core/events/v3/live-routing.ts +135 -0
  536. package/src/core/events/v3/producers/command-recorder.ts +631 -0
  537. package/src/core/events/v3/producers/command.ts +201 -0
  538. package/src/core/events/v3/producers/coordination-recorder.ts +538 -0
  539. package/src/core/events/v3/producers/coordination.ts +355 -0
  540. package/src/core/events/v3/producers/hook-base.ts +578 -0
  541. package/src/core/events/v3/producers/hook.ts +119 -0
  542. package/src/core/events/v3/producers/intake.ts +319 -0
  543. package/src/core/events/v3/producers/recorder.ts +2805 -0
  544. package/src/core/events/v3/projection.ts +653 -0
  545. package/src/core/events/v3/reader.ts +1127 -0
  546. package/src/core/events/v3/recovery-record.ts +244 -0
  547. package/src/core/events/v3/recovery.ts +271 -0
  548. package/src/core/events/v3/span-state.ts +187 -0
  549. package/src/core/events/v3/targets.ts +182 -0
  550. package/src/core/events/v3/turn-telemetry.ts +259 -0
  551. package/src/core/events/v3/validate.ts +361 -0
  552. package/src/core/events/v3/writer.ts +419 -0
  553. package/src/core/governor/index.ts +3 -0
  554. package/src/core/governor/plan-api.ts +10 -2
  555. package/src/core/governor/read.ts +3 -0
  556. package/src/core/governor/state.ts +52 -5
  557. package/src/core/guard/config.ts +206 -0
  558. package/src/core/guard/coordinator.ts +227 -0
  559. package/src/core/guard/evaluator.ts +343 -0
  560. package/src/core/guard/evidence-v3.ts +227 -0
  561. package/src/core/guard/index.ts +35 -0
  562. package/src/core/guard/live-source-v3.ts +204 -0
  563. package/src/core/guard/storage.ts +188 -0
  564. package/src/core/guard/types.ts +152 -0
  565. package/src/core/hooks/adapter/detect.ts +28 -1
  566. package/src/core/hooks/adapter/events.ts +15 -6
  567. package/src/core/hooks/adapter/output.ts +7 -2
  568. package/src/core/hooks/adapter/parse.ts +81 -36
  569. package/src/core/hooks/adapter/wiring.ts +119 -13
  570. package/src/core/hooks/cli.ts +398 -422
  571. package/src/core/hooks/codex-authorization.ts +253 -0
  572. package/src/core/hooks/effects/image-capture.ts +228 -238
  573. package/src/core/hooks/effects/index.ts +1 -36
  574. package/src/core/hooks/events/input-hash.ts +47 -0
  575. package/src/core/hooks/index.ts +4 -11
  576. package/src/core/hooks/resolve/coord-root.ts +1 -1
  577. package/src/core/hooks/resolve/owner.ts +52 -45
  578. package/src/core/hooks/resolve/transcript.ts +165 -14
  579. package/src/core/hooks/session-name-presence.ts +14 -15
  580. package/src/core/hooks/unsafe-cross-shell.ts +1 -1
  581. package/src/core/journal/index.ts +15 -22
  582. package/src/core/presence/blob.ts +63 -38
  583. package/src/core/presence/codec-digest.ts +215 -0
  584. package/src/core/presence/index.ts +18 -1
  585. package/src/core/presence/relay-client.ts +5 -5
  586. package/src/core/work/index.ts +3 -0
  587. package/src/core/work/read.ts +3 -0
  588. package/src/core/work/runner.ts +6 -0
  589. package/src/core/work/state.ts +27 -3
  590. package/src/core/workflow/engine.ts +24 -24
  591. package/src/core/workflow/live-session-v3.ts +126 -0
  592. package/src/core/workflow/scope-id.ts +6 -0
  593. package/src/core/workflow/workspaces/leases.ts +56 -19
  594. package/src/index.ts +1 -1
  595. package/src/lib/browser/client.ts +230 -0
  596. package/src/lib/browser/critique.ts +104 -27
  597. package/src/lib/browser/geometry.ts +143 -14
  598. package/src/lib/browser/index.ts +34 -0
  599. package/src/lib/browser/qa-plan.ts +501 -0
  600. package/src/lib/browser/qa-reuse.ts +306 -0
  601. package/src/lib/browser/qa-snapshot.ts +223 -0
  602. package/src/lib/browser/runts.ts +27 -2
  603. package/src/lib/browser/tiling.ts +164 -0
  604. package/src/lib/context/index.ts +22 -46
  605. package/src/lib/council/index.ts +9 -21
  606. package/src/lib/docs-frontmatter.ts +8 -79
  607. package/src/lib/docs-index.ts +33 -3
  608. package/src/lib/docs-lint.ts +15 -29
  609. package/src/lib/docs-metadata-audit.ts +166 -0
  610. package/src/lib/docs-metadata-managed.ts +83 -0
  611. package/src/lib/docs-metadata-sync.ts +262 -0
  612. package/src/lib/docs-metadata-v2-schema.ts +138 -0
  613. package/src/lib/docs-metadata-v2.ts +646 -0
  614. package/src/lib/docs-new.ts +63 -0
  615. package/src/lib/docs-sweep.ts +42 -28
  616. package/src/lib/headless/index.ts +287 -0
  617. package/src/lib/identities/assume.ts +67 -86
  618. package/src/lib/instructions/apply.ts +33 -20
  619. package/src/lib/instructions/bundle.ts +199 -0
  620. package/src/lib/instructions/splice.ts +21 -7
  621. package/src/lib/instructions/templates.ts +85 -13
  622. package/dist/core/agents/cli-emit.d.ts +0 -27
  623. package/dist/core/agents/cli-emit.d.ts.map +0 -1
  624. package/dist/core/agents/cli-emit.js +0 -57
  625. package/dist/core/agents/codex-replay.d.ts +0 -29
  626. package/dist/core/agents/codex-replay.d.ts.map +0 -1
  627. package/dist/core/agents/codex-replay.js +0 -138
  628. package/dist/core/agents/events/consume.d.ts +0 -82
  629. package/dist/core/agents/events/consume.d.ts.map +0 -1
  630. package/dist/core/agents/events/consume.js +0 -195
  631. package/dist/core/agents/events/emit.d.ts +0 -42
  632. package/dist/core/agents/events/emit.d.ts.map +0 -1
  633. package/dist/core/agents/events/emit.js +0 -75
  634. package/dist/core/agents/events/ulid.d.ts +0 -11
  635. package/dist/core/agents/events/ulid.d.ts.map +0 -1
  636. package/dist/core/agents/events/ulid.js +0 -47
  637. package/dist/core/agents/state/heartbeat-projector.d.ts +0 -65
  638. package/dist/core/agents/state/heartbeat-projector.d.ts.map +0 -1
  639. package/dist/core/agents/state/heartbeat-projector.js +0 -527
  640. package/dist/core/hooks/events/emit.d.ts +0 -31
  641. package/dist/core/hooks/events/emit.d.ts.map +0 -1
  642. package/dist/core/hooks/events/emit.js +0 -93
  643. package/dist/core/hooks/events/rotate.d.ts +0 -43
  644. package/dist/core/hooks/events/rotate.d.ts.map +0 -1
  645. package/dist/core/hooks/events/rotate.js +0 -142
  646. package/dist/core/hooks/events/schema.d.ts +0 -312
  647. package/dist/core/hooks/events/schema.d.ts.map +0 -1
  648. package/dist/core/hooks/events/schema.js +0 -12
  649. package/dist/core/hooks/events/ulid.d.ts +0 -10
  650. package/dist/core/hooks/events/ulid.d.ts.map +0 -1
  651. package/dist/core/hooks/events/ulid.js +0 -47
  652. package/dist/lib/docs-frontmatter-migrate.d.ts +0 -33
  653. package/dist/lib/docs-frontmatter-migrate.d.ts.map +0 -1
  654. package/dist/lib/docs-frontmatter-migrate.js +0 -364
  655. package/src/core/agents/cli-emit.ts +0 -64
  656. package/src/core/agents/codex-replay.ts +0 -163
  657. package/src/core/agents/events/consume.ts +0 -254
  658. package/src/core/agents/events/emit.ts +0 -115
  659. package/src/core/agents/events/ulid.ts +0 -51
  660. package/src/core/agents/state/heartbeat-projector.ts +0 -582
  661. package/src/core/hooks/events/emit.ts +0 -125
  662. package/src/core/hooks/events/rotate.ts +0 -151
  663. package/src/core/hooks/events/schema.ts +0 -538
  664. package/src/core/hooks/events/ulid.ts +0 -51
  665. package/src/lib/docs-frontmatter-migrate.ts +0 -427
@@ -0,0 +1,134 @@
1
+ import { adapterSignalSupportV3, } from "./capabilities.js";
2
+ /**
3
+ * Compare measurable adapter promises against one completed generation.
4
+ *
5
+ * Conditional and unsupported promises never drift: absence is allowed by
6
+ * their contract. Native and derived promises report only when a concrete
7
+ * opportunity existed, keeping a quiet generation from manufacturing health
8
+ * failures.
9
+ */
10
+ export function capabilityDriftPayloadsV3(adapter, events, options = {}) {
11
+ const generationEnded = options.generation_ended ?? events.some((event) => eventType(event) === "session.ended");
12
+ if (!generationEnded)
13
+ return [];
14
+ return measurableDeliveries(events)
15
+ .filter(({ signal, expected_count, observed_count }) => {
16
+ const promised = adapterSignalSupportV3(adapter, signal);
17
+ return (promised !== "unsupported" && promised !== "conditional" && expected_count > observed_count);
18
+ })
19
+ .map(({ signal, expected_count, observed_count }) => ({
20
+ signal,
21
+ promised: adapterSignalSupportV3(adapter, signal),
22
+ expected_count,
23
+ observed_count,
24
+ generation_ended: true,
25
+ }));
26
+ }
27
+ export function measurableDeliveriesV3(events) {
28
+ return measurableDeliveries(events);
29
+ }
30
+ function measurableDeliveries(events) {
31
+ const counts = new Map();
32
+ const observed = new Map();
33
+ const increment = (map, key) => map.set(key, (map.get(key) ?? 0) + 1);
34
+ for (const event of events) {
35
+ const type = eventType(event);
36
+ const payload = record(event.payload);
37
+ switch (type) {
38
+ case "session.started":
39
+ increment(observed, "session_start");
40
+ if (record(record(payload.runtime_attestation).model).state === "observed") {
41
+ increment(observed, "model_identity");
42
+ }
43
+ break;
44
+ case "session.ended":
45
+ increment(observed, "session_end");
46
+ break;
47
+ case "turn.started":
48
+ increment(counts, "turn_completion");
49
+ break;
50
+ case "turn.completed":
51
+ increment(observed, "turn_completion");
52
+ increment(counts, "harness_timing");
53
+ increment(counts, "context_usage");
54
+ increment(counts, "model_usage");
55
+ increment(counts, "inference_timing");
56
+ if (observationObserved(payload.harness))
57
+ increment(observed, "harness_timing");
58
+ if (observationObserved(payload.usage))
59
+ increment(observed, "model_usage");
60
+ if (observationObserved(payload.inference))
61
+ increment(observed, "inference_timing");
62
+ break;
63
+ case "tool.requested":
64
+ increment(observed, "tool_request");
65
+ increment(counts, "tool_result");
66
+ break;
67
+ case "tool.completed":
68
+ increment(counts, "tool_request");
69
+ increment(observed, "tool_result");
70
+ increment(counts, "tool_duration");
71
+ if (observationObserved(record(payload.span).duration_ms)) {
72
+ increment(observed, "tool_duration");
73
+ }
74
+ break;
75
+ case "wait.started":
76
+ increment(counts, "permission");
77
+ break;
78
+ case "wait.ended":
79
+ increment(observed, "permission");
80
+ break;
81
+ case "agent.started":
82
+ increment(counts, "subagent");
83
+ break;
84
+ case "agent.completed":
85
+ increment(observed, "subagent");
86
+ break;
87
+ case "context.compaction_started":
88
+ increment(counts, "post_compaction");
89
+ break;
90
+ case "context.compaction_completed":
91
+ increment(observed, "post_compaction");
92
+ break;
93
+ case "context.observed":
94
+ if (observationObserved(payload.measurement))
95
+ increment(observed, "context_usage");
96
+ break;
97
+ }
98
+ }
99
+ const sessionExpected = events.length > 0 ? 1 : 0;
100
+ const deliveries = [
101
+ delivery("session_start", sessionExpected, observed),
102
+ delivery("session_end", sessionExpected, observed),
103
+ deliveryFrom("turn_completion", counts, observed),
104
+ delivery("tool_request", Math.max(counts.get("tool_request") ?? 0, observed.get("tool_request") ?? 0), observed),
105
+ deliveryFrom("tool_result", counts, observed),
106
+ deliveryFrom("tool_duration", counts, observed),
107
+ deliveryFrom("permission", counts, observed),
108
+ deliveryFrom("subagent", counts, observed),
109
+ deliveryFrom("post_compaction", counts, observed),
110
+ deliveryFrom("context_usage", counts, observed),
111
+ deliveryFrom("model_identity", new Map([["model_identity", sessionExpected]]), observed),
112
+ deliveryFrom("model_usage", counts, observed),
113
+ deliveryFrom("inference_timing", counts, observed),
114
+ deliveryFrom("harness_timing", counts, observed),
115
+ ];
116
+ return deliveries.filter(({ expected_count }) => expected_count > 0);
117
+ }
118
+ function delivery(signal, expected_count, observed) {
119
+ return { signal, expected_count, observed_count: observed.get(signal) ?? 0 };
120
+ }
121
+ function deliveryFrom(signal, expected, observed) {
122
+ return delivery(signal, expected.get(signal) ?? 0, observed);
123
+ }
124
+ function eventType(event) {
125
+ return String(event.event_type ?? "");
126
+ }
127
+ function observationObserved(value) {
128
+ return record(value).state === "observed";
129
+ }
130
+ function record(value) {
131
+ return value && typeof value === "object" && !Array.isArray(value)
132
+ ? value
133
+ : {};
134
+ }
@@ -0,0 +1,38 @@
1
+ export interface EventV3SegmentManifest {
2
+ format: "harnery-event-v3-segment";
3
+ format_version: 1;
4
+ ordinal: number;
5
+ segment_file: string;
6
+ bytes: number;
7
+ row_count: number;
8
+ segment_digest: `sha256:${string}`;
9
+ schema_digests: string[];
10
+ first_event_id: string;
11
+ last_event_id: string;
12
+ sealed_at: string;
13
+ }
14
+ export interface EventV3CatalogSegment {
15
+ ordinal: number;
16
+ segment_file: string;
17
+ manifest_file: string;
18
+ segment_digest: `sha256:${string}`;
19
+ manifest_digest: `sha256:${string}`;
20
+ bytes: number;
21
+ row_count: number;
22
+ }
23
+ export interface EventV3Catalog {
24
+ format: "harnery-event-v3-catalog";
25
+ format_version: 1;
26
+ segments: EventV3CatalogSegment[];
27
+ active: {
28
+ ordinal: number;
29
+ device: string;
30
+ inode: string;
31
+ birthtime_ns: string;
32
+ };
33
+ }
34
+ export declare function readEventV3Catalog(path: string): EventV3Catalog;
35
+ export declare function readEventV3SegmentManifest(path: string): EventV3SegmentManifest;
36
+ export declare function segmentFileNameV3(ordinal: number): string;
37
+ export declare function manifestFileNameV3(ordinal: number): string;
38
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../../src/core/events/v3/catalog.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,0BAA0B,CAAC;IACnC,cAAc,EAAE,CAAC,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,UAAU,MAAM,EAAE,CAAC;IACnC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,UAAU,MAAM,EAAE,CAAC;IACnC,eAAe,EAAE,UAAU,MAAM,EAAE,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,0BAA0B,CAAC;IACnC,cAAc,EAAE,CAAC,CAAC;IAClB,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAE/D;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,CAE/E;AA8ID,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D"}
@@ -0,0 +1,135 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { canonicalJsonV3 } from "./canonical.js";
3
+ export function readEventV3Catalog(path) {
4
+ return validateCanonicalMetadata(path, validateCatalog, "V3 catalog");
5
+ }
6
+ export function readEventV3SegmentManifest(path) {
7
+ return validateCanonicalMetadata(path, validateManifest, "V3 segment manifest");
8
+ }
9
+ function validateCanonicalMetadata(path, validate, label) {
10
+ let text;
11
+ let parsed;
12
+ try {
13
+ text = readFileSync(path, "utf8");
14
+ parsed = JSON.parse(text);
15
+ }
16
+ catch {
17
+ throw new Error(`${label} is missing or malformed`);
18
+ }
19
+ const value = validate(parsed);
20
+ if (text !== `${canonicalJsonV3(value)}\n`)
21
+ throw new Error(`${label} is not canonical`);
22
+ return value;
23
+ }
24
+ function validateCatalog(value) {
25
+ const record = object(value, "V3 catalog envelope is invalid");
26
+ if (record.format !== "harnery-event-v3-catalog" || record.format_version !== 1) {
27
+ throw new Error("V3 catalog format is unsupported");
28
+ }
29
+ exactKeys(record, ["active", "format", "format_version", "segments"], "V3 catalog");
30
+ if (!Array.isArray(record.segments))
31
+ throw new Error("V3 catalog segments are invalid");
32
+ const segments = record.segments.map((segment, index) => validateCatalogSegment(segment, index + 1));
33
+ const active = object(record.active, "V3 catalog active identity is invalid");
34
+ exactKeys(active, ["birthtime_ns", "device", "inode", "ordinal"], "V3 catalog active");
35
+ if (active.ordinal !== segments.length + 1 ||
36
+ typeof active.device !== "string" ||
37
+ typeof active.inode !== "string" ||
38
+ typeof active.birthtime_ns !== "string") {
39
+ throw new Error("V3 catalog active identity is invalid");
40
+ }
41
+ return {
42
+ format: "harnery-event-v3-catalog",
43
+ format_version: 1,
44
+ segments,
45
+ active: active,
46
+ };
47
+ }
48
+ function validateCatalogSegment(value, expectedOrdinal) {
49
+ const record = object(value, "V3 catalog segment is invalid");
50
+ exactKeys(record, [
51
+ "bytes",
52
+ "manifest_digest",
53
+ "manifest_file",
54
+ "ordinal",
55
+ "row_count",
56
+ "segment_digest",
57
+ "segment_file",
58
+ ], "V3 catalog segment");
59
+ if (record.ordinal !== expectedOrdinal ||
60
+ !nonnegativeInteger(record.bytes) ||
61
+ !nonnegativeInteger(record.row_count) ||
62
+ record.segment_file !== segmentFileName(expectedOrdinal) ||
63
+ record.manifest_file !== manifestFileName(expectedOrdinal) ||
64
+ !sha256(record.segment_digest) ||
65
+ !sha256(record.manifest_digest)) {
66
+ throw new Error("V3 catalog segment values are invalid");
67
+ }
68
+ return record;
69
+ }
70
+ function validateManifest(value) {
71
+ const record = object(value, "V3 segment manifest envelope is invalid");
72
+ if (record.format !== "harnery-event-v3-segment" || record.format_version !== 1) {
73
+ throw new Error("V3 segment manifest format is unsupported");
74
+ }
75
+ exactKeys(record, [
76
+ "bytes",
77
+ "first_event_id",
78
+ "format",
79
+ "format_version",
80
+ "last_event_id",
81
+ "ordinal",
82
+ "row_count",
83
+ "schema_digests",
84
+ "sealed_at",
85
+ "segment_digest",
86
+ "segment_file",
87
+ ], "V3 segment manifest");
88
+ if (!positiveInteger(record.ordinal) ||
89
+ !nonnegativeInteger(record.bytes) ||
90
+ !positiveInteger(record.row_count) ||
91
+ record.segment_file !== segmentFileName(record.ordinal) ||
92
+ !sha256(record.segment_digest) ||
93
+ typeof record.first_event_id !== "string" ||
94
+ typeof record.last_event_id !== "string" ||
95
+ typeof record.sealed_at !== "string" ||
96
+ !Array.isArray(record.schema_digests) ||
97
+ record.schema_digests.length === 0 ||
98
+ record.schema_digests.some((digest) => !sha256(digest)) ||
99
+ [...record.schema_digests].sort().join("\0") !== record.schema_digests.join("\0") ||
100
+ new Set(record.schema_digests).size !== record.schema_digests.length) {
101
+ throw new Error("V3 segment manifest values are invalid");
102
+ }
103
+ return record;
104
+ }
105
+ function object(value, message) {
106
+ if (!value || typeof value !== "object" || Array.isArray(value))
107
+ throw new Error(message);
108
+ return value;
109
+ }
110
+ function exactKeys(record, expected, label) {
111
+ if (Object.keys(record).sort().join("\0") !== expected.join("\0")) {
112
+ throw new Error(`${label} has unsupported fields`);
113
+ }
114
+ }
115
+ function positiveInteger(value) {
116
+ return Number.isSafeInteger(value) && value > 0;
117
+ }
118
+ function nonnegativeInteger(value) {
119
+ return Number.isSafeInteger(value) && value >= 0;
120
+ }
121
+ function sha256(value) {
122
+ return typeof value === "string" && /^sha256:[a-f0-9]{64}$/.test(value);
123
+ }
124
+ export function segmentFileNameV3(ordinal) {
125
+ return segmentFileName(ordinal);
126
+ }
127
+ export function manifestFileNameV3(ordinal) {
128
+ return manifestFileName(ordinal);
129
+ }
130
+ function segmentFileName(ordinal) {
131
+ return `${String(ordinal).padStart(12, "0")}.ndjson`;
132
+ }
133
+ function manifestFileName(ordinal) {
134
+ return `${String(ordinal).padStart(12, "0")}.manifest.json`;
135
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Producer-side wall-clock ordering for V3 events.
3
+ *
4
+ * The canonical reader fails closed on an unmarked wall-clock regression
5
+ * (`wall_clock_regression_unmarked`). Once one row carries an `observed_at`
6
+ * earlier than the previous row on the same `clock_id`, the whole authority
7
+ * stops validating and no later generation can be minted, so every live agent
8
+ * disappears from coordination at once.
9
+ *
10
+ * Producers already drop a regressing `monotonic_ns`. Wall clock had no
11
+ * equivalent, so two events stamped microseconds apart inside one hook
12
+ * invocation could darken the ledger: on 2026-08-19 a `tool.completed`
13
+ * observed at `19:39:36.078Z` was followed by the `turn.completed` it caused,
14
+ * observed at `19:39:36.077Z`.
15
+ *
16
+ * Rewriting the timestamp is not an option — a producer must not manufacture
17
+ * history — so the row is marked instead. `skew: "regressed"` is the contract's
18
+ * own vocabulary for this, and the reader accepts a marked regression.
19
+ */
20
+ /** The slice of a V3 event this rule reads and marks. */
21
+ interface ClockOrderedEventV3 {
22
+ time: {
23
+ observed_at: string;
24
+ skew: "normal" | "regressed" | "unknown";
25
+ };
26
+ }
27
+ /**
28
+ * Mark `event` as regressed when its `observed_at` precedes the last one this
29
+ * producer stamped on the same clock. Unparseable or absent evidence leaves the
30
+ * event untouched: an unmarked row that never regressed stays unmarked.
31
+ */
32
+ export declare function markObservedClockRegressionV3(event: ClockOrderedEventV3, lastObservedAt: string | undefined): void;
33
+ export {};
34
+ //# sourceMappingURL=clock-order.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clock-order.d.ts","sourceRoot":"","sources":["../../../../src/core/events/v3/clock-order.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,yDAAyD;AACzD,UAAU,mBAAmB;IAC3B,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,CAAA;KAAE,CAAC;CACzE;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,mBAAmB,EAC1B,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC,IAAI,CAON"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Producer-side wall-clock ordering for V3 events.
3
+ *
4
+ * The canonical reader fails closed on an unmarked wall-clock regression
5
+ * (`wall_clock_regression_unmarked`). Once one row carries an `observed_at`
6
+ * earlier than the previous row on the same `clock_id`, the whole authority
7
+ * stops validating and no later generation can be minted, so every live agent
8
+ * disappears from coordination at once.
9
+ *
10
+ * Producers already drop a regressing `monotonic_ns`. Wall clock had no
11
+ * equivalent, so two events stamped microseconds apart inside one hook
12
+ * invocation could darken the ledger: on 2026-08-19 a `tool.completed`
13
+ * observed at `19:39:36.078Z` was followed by the `turn.completed` it caused,
14
+ * observed at `19:39:36.077Z`.
15
+ *
16
+ * Rewriting the timestamp is not an option — a producer must not manufacture
17
+ * history — so the row is marked instead. `skew: "regressed"` is the contract's
18
+ * own vocabulary for this, and the reader accepts a marked regression.
19
+ */
20
+ /**
21
+ * Mark `event` as regressed when its `observed_at` precedes the last one this
22
+ * producer stamped on the same clock. Unparseable or absent evidence leaves the
23
+ * event untouched: an unmarked row that never regressed stays unmarked.
24
+ */
25
+ export function markObservedClockRegressionV3(event, lastObservedAt) {
26
+ if (!lastObservedAt)
27
+ return;
28
+ const observed = Date.parse(event.time.observed_at);
29
+ const prior = Date.parse(lastObservedAt);
30
+ if (!Number.isFinite(observed) || !Number.isFinite(prior))
31
+ return;
32
+ if (observed >= prior)
33
+ return;
34
+ event.time.skew = "regressed";
35
+ }
@@ -0,0 +1,171 @@
1
+ import { type Static, type TObject, type TProperties } from "@sinclair/typebox";
2
+ import { type EventOfTypeV3Base, type EventTypeV3Base, type EventV3Base, ObservationV3BaseSchema } from "./base-contract.js";
3
+ export declare const EVENT_V3_CONTRACT_NAME: "harnery.event";
4
+ export declare const EVENT_V3_CONTRACT_MAJOR: 3;
5
+ export declare const EVENT_V3_SCHEMA_ID = "https://harnery.com/schemas/event-v3.schema.json";
6
+ export declare const ObservationV3Schema: typeof ObservationV3BaseSchema;
7
+ export declare const OutcomeV3Schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"succeeded">, import("@sinclair/typebox").TLiteral<"failed">, import("@sinclair/typebox").TLiteral<"cancelled">, import("@sinclair/typebox").TLiteral<"timed_out">, import("@sinclair/typebox").TLiteral<"denied">, import("@sinclair/typebox").TLiteral<"interrupted">, import("@sinclair/typebox").TLiteral<"unknown">]>;
8
+ export declare const RecoveryV3Schema: TObject<{
9
+ reason: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"request_not_observed">, import("@sinclair/typebox").TLiteral<"completion_not_observed_before_turn_end">, import("@sinclair/typebox").TLiteral<"completion_not_observed_before_next_turn">, import("@sinclair/typebox").TLiteral<"span_cap_pressure">, import("@sinclair/typebox").TLiteral<"explicit_end_salvage">, import("@sinclair/typebox").TLiteral<"command_completion_not_observed">]>;
10
+ requested_event_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
11
+ elapsed_upper_bound_ms: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[TObject<{
12
+ state: import("@sinclair/typebox").TLiteral<"observed">;
13
+ value: import("@sinclair/typebox").TInteger;
14
+ attestation: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"native">, import("@sinclair/typebox").TLiteral<"derived">, import("@sinclair/typebox").TLiteral<"inferred">]>;
15
+ confidence: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"exact">, import("@sinclair/typebox").TLiteral<"high">, import("@sinclair/typebox").TLiteral<"medium">, import("@sinclair/typebox").TLiteral<"low">]>;
16
+ }>, TObject<{
17
+ state: import("@sinclair/typebox").TLiteral<"unsupported">;
18
+ capability: import("@sinclair/typebox").TString;
19
+ }>, TObject<{
20
+ state: import("@sinclair/typebox").TLiteral<"expected_but_missing">;
21
+ capability: import("@sinclair/typebox").TString;
22
+ reason: import("@sinclair/typebox").TString;
23
+ }>, TObject<{
24
+ state: import("@sinclair/typebox").TLiteral<"redacted">;
25
+ reason: import("@sinclair/typebox").TString;
26
+ }>, TObject<{
27
+ state: import("@sinclair/typebox").TLiteral<"unknown">;
28
+ reason: import("@sinclair/typebox").TString;
29
+ }>, TObject<{
30
+ state: import("@sinclair/typebox").TLiteral<"not_applicable">;
31
+ }>]>>;
32
+ }>;
33
+ declare const ContractV3Schema: TObject<{
34
+ name: import("@sinclair/typebox").TLiteral<"harnery.event">;
35
+ major: import("@sinclair/typebox").TLiteral<3>;
36
+ schema_digest: import("@sinclair/typebox").TString;
37
+ }>;
38
+ export declare const SpanSummaryV3Schema: TObject<{
39
+ span_id: import("@sinclair/typebox").TString;
40
+ parent_span_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
41
+ opened_at: import("@sinclair/typebox").TString;
42
+ duration_ms: import("@sinclair/typebox").TUnion<[TObject<{
43
+ state: import("@sinclair/typebox").TLiteral<"observed">;
44
+ value: import("@sinclair/typebox").TInteger;
45
+ attestation: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"native">, import("@sinclair/typebox").TLiteral<"derived">, import("@sinclair/typebox").TLiteral<"inferred">]>;
46
+ confidence: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"exact">, import("@sinclair/typebox").TLiteral<"high">, import("@sinclair/typebox").TLiteral<"medium">, import("@sinclair/typebox").TLiteral<"low">]>;
47
+ }>, TObject<{
48
+ state: import("@sinclair/typebox").TLiteral<"unsupported">;
49
+ capability: import("@sinclair/typebox").TString;
50
+ }>, TObject<{
51
+ state: import("@sinclair/typebox").TLiteral<"expected_but_missing">;
52
+ capability: import("@sinclair/typebox").TString;
53
+ reason: import("@sinclair/typebox").TString;
54
+ }>, TObject<{
55
+ state: import("@sinclair/typebox").TLiteral<"redacted">;
56
+ reason: import("@sinclair/typebox").TString;
57
+ }>, TObject<{
58
+ state: import("@sinclair/typebox").TLiteral<"unknown">;
59
+ reason: import("@sinclair/typebox").TString;
60
+ }>, TObject<{
61
+ state: import("@sinclair/typebox").TLiteral<"not_applicable">;
62
+ }>]>;
63
+ open_event_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
64
+ }>;
65
+ export declare const TurnUsageV3Schema: TObject<{
66
+ input_tokens: import("@sinclair/typebox").TInteger;
67
+ output_tokens: import("@sinclair/typebox").TInteger;
68
+ cache_read_tokens: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
69
+ cache_write_tokens: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
70
+ method: import("@sinclair/typebox").TString;
71
+ }>;
72
+ export declare const TurnInferenceV3Schema: TObject<{
73
+ api_time_ms: import("@sinclair/typebox").TInteger;
74
+ request_count: import("@sinclair/typebox").TInteger;
75
+ }>;
76
+ export declare const TurnHarnessV3Schema: TObject<{
77
+ hook_time_ms: import("@sinclair/typebox").TInteger;
78
+ hook_count: import("@sinclair/typebox").TInteger;
79
+ slowest_hook: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
80
+ slowest_hook_ms: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TInteger>;
81
+ }>;
82
+ export declare const WaitKindV3Schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"permission">, import("@sinclair/typebox").TLiteral<"needs_input">, import("@sinclair/typebox").TLiteral<"decision">, import("@sinclair/typebox").TLiteral<"approval">, import("@sinclair/typebox").TLiteral<"scheduled">, import("@sinclair/typebox").TLiteral<"rate_limit">, import("@sinclair/typebox").TLiteral<"unknown">]>;
83
+ export declare const SessionEndedV3Schema: TObject<TProperties>;
84
+ export declare const TurnCompletedV3Schema: TObject<TProperties>;
85
+ export declare const ToolCompletedV3Schema: TObject<TProperties>;
86
+ export declare const CommandCompletedV3Schema: TObject<TProperties>;
87
+ export declare const AgentCompletedV3Schema: TObject<TProperties>;
88
+ export declare const AgentStartedV3Schema: TObject<TProperties>;
89
+ export declare const WaitStartedV3Schema: TObject<TProperties>;
90
+ export declare const WaitEndedV3Schema: TObject<TProperties>;
91
+ export declare const HealthCapabilityDriftV3Schema: TObject<TProperties>;
92
+ export declare const EventV3Schema: import("@sinclair/typebox").TUnion<[...(TObject<TProperties> | TObject<{
93
+ contract: TObject<{
94
+ name: import("@sinclair/typebox").TLiteral<"harnery.event">;
95
+ major: import("@sinclair/typebox").TLiteral<3>;
96
+ schema_digest: import("@sinclair/typebox").TString;
97
+ }>;
98
+ }>)[], TObject<TProperties>, TObject<TProperties>, TObject<TProperties>, TObject<TProperties>, TObject<TProperties>, TObject<TProperties>, TObject<TProperties>, TObject<TProperties>]>;
99
+ export declare const EVENT_V3_CORE_EVENT_TYPES: readonly [...("session.started" | "session.ended" | "turn.started" | "turn.completed" | "agent.started" | "agent.completed" | "tool.requested" | "tool.completed" | "context.compaction_started" | "context.compaction_completed" | "ledger.genesis" | "ledger.activated" | "ledger.schema_advanced" | "ledger.comparability_advanced" | "session.attestation_changed" | "session.resumed" | "session.termination_observed" | "run.started" | "run.completed" | "command.started" | "command.output_observed" | "command.completed" | "context.observed" | "context.checkpointed" | "context.recovery_injected" | "agent.delegated" | "artifact.observed" | "progress.observed" | "coord.task_changed" | "coord.lifecycle_changed" | "coord.status_observed" | "coord.claim_changed" | "coord.presence_changed" | "coord.message_observed" | "coord.identity_attested" | "council.state_changed" | "decision.state_changed" | "lifecycle.recovered" | "lifecycle.sweep_observed" | "health.observed")[], "wait.started", "wait.ended", "health.capability_drift"];
100
+ export type EventTypeV3 = (typeof EVENT_V3_CORE_EVENT_TYPES)[number];
101
+ type ContractV3 = Static<typeof ContractV3Schema>;
102
+ type WithContractV3<T> = T extends object ? Omit<T, "contract"> & {
103
+ contract: ContractV3;
104
+ } : never;
105
+ type ReplaceEventV3<T extends EventTypeV3Base, U extends EventTypeV3, P> = Omit<WithContractV3<EventOfTypeV3Base<T>>, "event_type" | "payload"> & {
106
+ event_type: U;
107
+ payload: P;
108
+ };
109
+ type SpanSummaryValueV3 = Static<typeof SpanSummaryV3Schema>;
110
+ type SessionEndedEventV3 = ReplaceEventV3<"session.ended", "session.ended", EventOfTypeV3Base<"session.ended">["payload"] & {
111
+ span: SpanSummaryValueV3;
112
+ }>;
113
+ type TurnCompletedEventV3 = ReplaceEventV3<"turn.completed", "turn.completed", EventOfTypeV3Base<"turn.completed">["payload"] & {
114
+ span: SpanSummaryValueV3;
115
+ usage: Static<ReturnType<typeof ObservationV3Schema<typeof TurnUsageV3Schema>>>;
116
+ inference: Static<ReturnType<typeof ObservationV3Schema<typeof TurnInferenceV3Schema>>>;
117
+ harness: Static<ReturnType<typeof ObservationV3Schema<typeof TurnHarnessV3Schema>>>;
118
+ }>;
119
+ type ToolCompletedEventV3 = ReplaceEventV3<"tool.completed", "tool.completed", Omit<EventOfTypeV3Base<"tool.completed">["payload"], "duration_ms"> & {
120
+ duration_ms: SpanSummaryValueV3["duration_ms"];
121
+ span: SpanSummaryValueV3;
122
+ }>;
123
+ type CommandCompletedEventV3 = ReplaceEventV3<"command.completed", "command.completed", Omit<EventOfTypeV3Base<"command.completed">["payload"], "duration_ms"> & {
124
+ duration_ms: SpanSummaryValueV3["duration_ms"];
125
+ span: SpanSummaryValueV3;
126
+ }>;
127
+ type AgentStartedEventV3 = Omit<WithContractV3<EventOfTypeV3Base<"agent.started">>, "links"> & {
128
+ links: EventOfTypeV3Base<"agent.started">["links"] & {
129
+ span_id: `span_${string}`;
130
+ parent_span_id: `span_${string}`;
131
+ };
132
+ };
133
+ type AgentCompletedEventV3 = ReplaceEventV3<"agent.completed", "agent.completed", EventOfTypeV3Base<"agent.completed">["payload"] & {
134
+ span: SpanSummaryValueV3;
135
+ }>;
136
+ type WaitStartedEventV3 = ReplaceEventV3<"wait.started", "wait.started", {
137
+ wait_id: string;
138
+ kind: Static<typeof WaitKindV3Schema>;
139
+ authority_reference?: string;
140
+ wake_at?: string;
141
+ }>;
142
+ type WaitEndedEventV3 = ReplaceEventV3<"wait.ended", "wait.ended", EventOfTypeV3Base<"wait.ended">["payload"] & {
143
+ span: SpanSummaryValueV3;
144
+ }>;
145
+ type HealthCapabilityDriftEventV3 = ReplaceEventV3<"health.observed", "health.capability_drift", {
146
+ signal: string;
147
+ promised: "native" | "derived" | "conditional";
148
+ expected_count: number;
149
+ observed_count: number;
150
+ generation_ended: boolean;
151
+ }>;
152
+ export type EventOfTypeV3<T extends EventTypeV3> = T extends "session.ended" ? SessionEndedEventV3 : T extends "turn.completed" ? TurnCompletedEventV3 : T extends "tool.completed" ? ToolCompletedEventV3 : T extends "command.completed" ? CommandCompletedEventV3 : T extends "agent.started" ? AgentStartedEventV3 : T extends "agent.completed" ? AgentCompletedEventV3 : T extends "wait.started" ? WaitStartedEventV3 : T extends "wait.ended" ? WaitEndedEventV3 : T extends "health.capability_drift" ? HealthCapabilityDriftEventV3 : T extends EventTypeV3Base ? WithContractV3<EventOfTypeV3Base<T>> : never;
153
+ /**
154
+ * TypeBox cannot preserve the discriminated union through the generated
155
+ * schema-branch spread above. Rebuild the static union from the authoritative
156
+ * event-type map so producer and projection code retains event narrowing.
157
+ */
158
+ type ReplacedEventTypeV3Base = "session.ended" | "turn.completed" | "tool.completed" | "command.completed" | "agent.started" | "agent.completed" | "wait.started" | "wait.ended";
159
+ type UnchangedEventV3 = WithContractV3<Exclude<EventV3Base, {
160
+ event_type: ReplacedEventTypeV3Base;
161
+ }>>;
162
+ export type EventV3 = UnchangedEventV3 | SessionEndedEventV3 | TurnCompletedEventV3 | ToolCompletedEventV3 | CommandCompletedEventV3 | AgentStartedEventV3 | AgentCompletedEventV3 | WaitStartedEventV3 | WaitEndedEventV3 | HealthCapabilityDriftEventV3;
163
+ export type EventPayloadV3<T extends EventTypeV3> = EventOfTypeV3<T>["payload"];
164
+ export type SpanSummaryV3 = Static<typeof SpanSummaryV3Schema>;
165
+ export type TurnUsageV3 = Static<typeof TurnUsageV3Schema>;
166
+ export type TurnInferenceV3 = Static<typeof TurnInferenceV3Schema>;
167
+ export type TurnHarnessV3 = Static<typeof TurnHarnessV3Schema>;
168
+ export type WaitKindV3 = Static<typeof WaitKindV3Schema>;
169
+ export type RuntimeAttestationV3 = EventPayloadV3<"session.started">["runtime_attestation"];
170
+ export {};
171
+ //# sourceMappingURL=contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../../src/core/events/v3/contract.ts"],"names":[],"mappings":"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"}