@assemblyline-agents/runtime 2.0.0 → 3.0.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 (389) hide show
  1. package/LICENSE +1 -1
  2. package/dist/a2a-client.d.ts +22 -0
  3. package/dist/a2a-client.d.ts.map +1 -0
  4. package/dist/a2a-client.js +211 -0
  5. package/dist/a2a-client.js.map +1 -0
  6. package/dist/agent-hook-context.d.ts +6 -1
  7. package/dist/agent-hook-context.d.ts.map +1 -1
  8. package/dist/agent-hook-context.js +24 -11
  9. package/dist/agent-hook-context.js.map +1 -1
  10. package/dist/agent-hook-evaluation.d.ts +6 -1
  11. package/dist/agent-hook-evaluation.d.ts.map +1 -1
  12. package/dist/agent-hook-evaluation.js +16 -5
  13. package/dist/agent-hook-evaluation.js.map +1 -1
  14. package/dist/agent-hook-run-lifecycle.d.ts +5 -1
  15. package/dist/agent-hook-run-lifecycle.d.ts.map +1 -1
  16. package/dist/agent-hook-run-lifecycle.js +11 -13
  17. package/dist/agent-hook-run-lifecycle.js.map +1 -1
  18. package/dist/agent-surface.d.ts +32 -0
  19. package/dist/agent-surface.d.ts.map +1 -0
  20. package/dist/agent-surface.js +85 -0
  21. package/dist/agent-surface.js.map +1 -0
  22. package/dist/attachments.d.ts +5 -1
  23. package/dist/attachments.d.ts.map +1 -1
  24. package/dist/attachments.js +58 -32
  25. package/dist/attachments.js.map +1 -1
  26. package/dist/audience.d.ts +30 -0
  27. package/dist/audience.d.ts.map +1 -0
  28. package/dist/audience.js +68 -0
  29. package/dist/audience.js.map +1 -0
  30. package/dist/automation-event-match.d.ts +8 -0
  31. package/dist/automation-event-match.d.ts.map +1 -0
  32. package/dist/automation-event-match.js +25 -0
  33. package/dist/automation-event-match.js.map +1 -0
  34. package/dist/background-review-trigger.d.ts.map +1 -1
  35. package/dist/background-review-trigger.js +14 -16
  36. package/dist/background-review-trigger.js.map +1 -1
  37. package/dist/background-review-types.d.ts +9 -2
  38. package/dist/background-review-types.d.ts.map +1 -1
  39. package/dist/background-review-worker.js +2 -2
  40. package/dist/background-review-worker.js.map +1 -1
  41. package/dist/background-review.d.ts.map +1 -1
  42. package/dist/background-review.js +27 -10
  43. package/dist/background-review.js.map +1 -1
  44. package/dist/builtin-tool-executors.d.ts +47 -21
  45. package/dist/builtin-tool-executors.d.ts.map +1 -1
  46. package/dist/builtin-tool-executors.js +293 -121
  47. package/dist/builtin-tool-executors.js.map +1 -1
  48. package/dist/builtin-tools.d.ts +16 -8
  49. package/dist/builtin-tools.d.ts.map +1 -1
  50. package/dist/builtin-tools.js +309 -70
  51. package/dist/builtin-tools.js.map +1 -1
  52. package/dist/capability-catalog.d.ts +3 -2
  53. package/dist/capability-catalog.d.ts.map +1 -1
  54. package/dist/capability-catalog.js +10 -6
  55. package/dist/capability-catalog.js.map +1 -1
  56. package/dist/capability-inspection.d.ts +31 -0
  57. package/dist/capability-inspection.d.ts.map +1 -0
  58. package/dist/capability-inspection.js +58 -0
  59. package/dist/capability-inspection.js.map +1 -0
  60. package/dist/channel-http-util.d.ts.map +1 -1
  61. package/dist/channel-http-util.js +6 -2
  62. package/dist/channel-http-util.js.map +1 -1
  63. package/dist/channel-ingress.d.ts +16 -1
  64. package/dist/channel-ingress.d.ts.map +1 -1
  65. package/dist/channel-ingress.js +117 -7
  66. package/dist/channel-ingress.js.map +1 -1
  67. package/dist/channel.d.ts +58 -2
  68. package/dist/channel.d.ts.map +1 -1
  69. package/dist/checkpoints.d.ts +1 -1
  70. package/dist/checkpoints.d.ts.map +1 -1
  71. package/dist/checkpoints.js +6 -6
  72. package/dist/checkpoints.js.map +1 -1
  73. package/dist/child-process-env.d.ts +7 -0
  74. package/dist/child-process-env.d.ts.map +1 -0
  75. package/dist/child-process-env.js +41 -0
  76. package/dist/child-process-env.js.map +1 -0
  77. package/dist/computer-relay-protocol.d.ts.map +1 -1
  78. package/dist/computer-relay-protocol.js +4 -4
  79. package/dist/computer-relay-protocol.js.map +1 -1
  80. package/dist/concurrency.d.ts +1 -1
  81. package/dist/concurrency.js +1 -1
  82. package/dist/connection-auth-util.d.ts +1 -0
  83. package/dist/connection-auth-util.d.ts.map +1 -1
  84. package/dist/connection-auth-util.js +1 -1
  85. package/dist/connection-auth-util.js.map +1 -1
  86. package/dist/connection-clients.d.ts +11 -3
  87. package/dist/connection-clients.d.ts.map +1 -1
  88. package/dist/connection-clients.js +71 -8
  89. package/dist/connection-clients.js.map +1 -1
  90. package/dist/connection-event-store.d.ts +98 -0
  91. package/dist/connection-event-store.d.ts.map +1 -0
  92. package/dist/connection-event-store.js +162 -0
  93. package/dist/connection-event-store.js.map +1 -0
  94. package/dist/connection-events.d.ts +51 -0
  95. package/dist/connection-events.d.ts.map +1 -0
  96. package/dist/connection-events.js +343 -0
  97. package/dist/connection-events.js.map +1 -0
  98. package/dist/connection-stores.d.ts +3 -0
  99. package/dist/connection-stores.d.ts.map +1 -1
  100. package/dist/connection-stores.js +4 -1
  101. package/dist/connection-stores.js.map +1 -1
  102. package/dist/connection-util.d.ts +3 -2
  103. package/dist/connection-util.d.ts.map +1 -1
  104. package/dist/connection-util.js +18 -1
  105. package/dist/connection-util.js.map +1 -1
  106. package/dist/connections.d.ts +54 -5
  107. package/dist/connections.d.ts.map +1 -1
  108. package/dist/connections.js +342 -53
  109. package/dist/connections.js.map +1 -1
  110. package/dist/context-policy-util.d.ts.map +1 -1
  111. package/dist/context-policy-util.js +1 -3
  112. package/dist/context-policy-util.js.map +1 -1
  113. package/dist/conversation-context.d.ts +6 -2
  114. package/dist/conversation-context.d.ts.map +1 -1
  115. package/dist/conversation-context.js +45 -12
  116. package/dist/conversation-context.js.map +1 -1
  117. package/dist/conversation-transcript.d.ts +8 -5
  118. package/dist/conversation-transcript.d.ts.map +1 -1
  119. package/dist/conversation-transcript.js +24 -5
  120. package/dist/conversation-transcript.js.map +1 -1
  121. package/dist/conversation-turn-coalescing.d.ts +22 -0
  122. package/dist/conversation-turn-coalescing.d.ts.map +1 -0
  123. package/dist/conversation-turn-coalescing.js +121 -0
  124. package/dist/conversation-turn-coalescing.js.map +1 -0
  125. package/dist/conversation-turn-dispatch.d.ts +5 -2
  126. package/dist/conversation-turn-dispatch.d.ts.map +1 -1
  127. package/dist/conversation-turn-dispatch.js +59 -22
  128. package/dist/conversation-turn-dispatch.js.map +1 -1
  129. package/dist/default-outbound-route.d.ts +29 -0
  130. package/dist/default-outbound-route.d.ts.map +1 -0
  131. package/dist/default-outbound-route.js +105 -0
  132. package/dist/default-outbound-route.js.map +1 -0
  133. package/dist/delivery-artifacts.d.ts +2 -0
  134. package/dist/delivery-artifacts.d.ts.map +1 -0
  135. package/dist/delivery-artifacts.js +34 -0
  136. package/dist/delivery-artifacts.js.map +1 -0
  137. package/dist/delivery-files.d.ts +5 -0
  138. package/dist/delivery-files.d.ts.map +1 -0
  139. package/dist/delivery-files.js +33 -0
  140. package/dist/delivery-files.js.map +1 -0
  141. package/dist/delivery-queue.d.ts +21 -1
  142. package/dist/delivery-queue.d.ts.map +1 -1
  143. package/dist/delivery-queue.js +144 -1
  144. package/dist/delivery-queue.js.map +1 -1
  145. package/dist/delivery-send.d.ts +2 -2
  146. package/dist/delivery-send.d.ts.map +1 -1
  147. package/dist/delivery-send.js +256 -100
  148. package/dist/delivery-send.js.map +1 -1
  149. package/dist/durable-files.d.ts +37 -0
  150. package/dist/durable-files.d.ts.map +1 -0
  151. package/dist/durable-files.js +63 -0
  152. package/dist/durable-files.js.map +1 -0
  153. package/dist/harness-loop.d.ts +6 -1
  154. package/dist/harness-loop.d.ts.map +1 -1
  155. package/dist/harness-loop.js +110 -25
  156. package/dist/harness-loop.js.map +1 -1
  157. package/dist/heic-transcode-worker.d.ts +2 -0
  158. package/dist/heic-transcode-worker.d.ts.map +1 -0
  159. package/dist/heic-transcode-worker.js +59 -0
  160. package/dist/heic-transcode-worker.js.map +1 -0
  161. package/dist/heic-transcode.d.ts +18 -0
  162. package/dist/heic-transcode.d.ts.map +1 -0
  163. package/dist/heic-transcode.js +99 -0
  164. package/dist/heic-transcode.js.map +1 -0
  165. package/dist/human-input-routing.d.ts +22 -0
  166. package/dist/human-input-routing.d.ts.map +1 -0
  167. package/dist/human-input-routing.js +26 -0
  168. package/dist/human-input-routing.js.map +1 -0
  169. package/dist/in-memory-conversation-turn-store.d.ts +3 -1
  170. package/dist/in-memory-conversation-turn-store.d.ts.map +1 -1
  171. package/dist/in-memory-conversation-turn-store.js +41 -2
  172. package/dist/in-memory-conversation-turn-store.js.map +1 -1
  173. package/dist/in-memory-run-store.d.ts +8 -0
  174. package/dist/in-memory-run-store.d.ts.map +1 -1
  175. package/dist/in-memory-run-store.js +28 -5
  176. package/dist/in-memory-run-store.js.map +1 -1
  177. package/dist/in-memory-sandbox-session-store.d.ts +2 -1
  178. package/dist/in-memory-sandbox-session-store.d.ts.map +1 -1
  179. package/dist/in-memory-sandbox-session-store.js +65 -1
  180. package/dist/in-memory-sandbox-session-store.js.map +1 -1
  181. package/dist/in-memory-small-stores.d.ts +18 -1
  182. package/dist/in-memory-small-stores.d.ts.map +1 -1
  183. package/dist/in-memory-small-stores.js +107 -1
  184. package/dist/in-memory-small-stores.js.map +1 -1
  185. package/dist/in-memory-workspace-store.d.ts +40 -0
  186. package/dist/in-memory-workspace-store.d.ts.map +1 -0
  187. package/dist/in-memory-workspace-store.js +370 -0
  188. package/dist/in-memory-workspace-store.js.map +1 -0
  189. package/dist/index.d.ts +73 -36
  190. package/dist/index.d.ts.map +1 -1
  191. package/dist/index.js +390 -258
  192. package/dist/index.js.map +1 -1
  193. package/dist/json-util.d.ts +8 -0
  194. package/dist/json-util.d.ts.map +1 -1
  195. package/dist/json-util.js +8 -0
  196. package/dist/json-util.js.map +1 -1
  197. package/dist/local-sandbox.d.ts +3 -2
  198. package/dist/local-sandbox.d.ts.map +1 -1
  199. package/dist/local-sandbox.js +69 -25
  200. package/dist/local-sandbox.js.map +1 -1
  201. package/dist/mcp-client.d.ts.map +1 -1
  202. package/dist/mcp-client.js +3 -2
  203. package/dist/mcp-client.js.map +1 -1
  204. package/dist/media-processor.d.ts +42 -0
  205. package/dist/media-processor.d.ts.map +1 -0
  206. package/dist/media-processor.js +2 -0
  207. package/dist/media-processor.js.map +1 -0
  208. package/dist/model-media.d.ts +13 -1
  209. package/dist/model-media.d.ts.map +1 -1
  210. package/dist/model-media.js +81 -18
  211. package/dist/model-media.js.map +1 -1
  212. package/dist/model-visible-interrupts.d.ts +10 -0
  213. package/dist/model-visible-interrupts.d.ts.map +1 -0
  214. package/dist/model-visible-interrupts.js +41 -0
  215. package/dist/model-visible-interrupts.js.map +1 -0
  216. package/dist/operator-controls.d.ts.map +1 -1
  217. package/dist/operator-controls.js +16 -3
  218. package/dist/operator-controls.js.map +1 -1
  219. package/dist/outbound-http-policy.d.ts +7 -0
  220. package/dist/outbound-http-policy.d.ts.map +1 -0
  221. package/dist/outbound-http-policy.js +155 -0
  222. package/dist/outbound-http-policy.js.map +1 -0
  223. package/dist/public-api.d.ts +21 -0
  224. package/dist/public-api.d.ts.map +1 -0
  225. package/dist/public-api.js +19 -0
  226. package/dist/public-api.js.map +1 -0
  227. package/dist/replay-resume.d.ts +8 -0
  228. package/dist/replay-resume.d.ts.map +1 -1
  229. package/dist/replay-resume.js +141 -11
  230. package/dist/replay-resume.js.map +1 -1
  231. package/dist/resource-projection-util.d.ts +1 -1
  232. package/dist/resource-projection-util.d.ts.map +1 -1
  233. package/dist/resource-projection-util.js +21 -10
  234. package/dist/resource-projection-util.js.map +1 -1
  235. package/dist/resource-projection.d.ts +8 -1
  236. package/dist/resource-projection.d.ts.map +1 -1
  237. package/dist/resource-projection.js +229 -29
  238. package/dist/resource-projection.js.map +1 -1
  239. package/dist/run-heartbeat.d.ts +12 -2
  240. package/dist/run-heartbeat.d.ts.map +1 -1
  241. package/dist/run-heartbeat.js +31 -4
  242. package/dist/run-heartbeat.js.map +1 -1
  243. package/dist/run-outcome.d.ts +9 -5
  244. package/dist/run-outcome.d.ts.map +1 -1
  245. package/dist/run-outcome.js +14 -5
  246. package/dist/run-outcome.js.map +1 -1
  247. package/dist/run-recovery.d.ts +19 -3
  248. package/dist/run-recovery.d.ts.map +1 -1
  249. package/dist/run-recovery.js +205 -34
  250. package/dist/run-recovery.js.map +1 -1
  251. package/dist/run-replay.d.ts +35 -0
  252. package/dist/run-replay.d.ts.map +1 -0
  253. package/dist/run-replay.js +193 -0
  254. package/dist/run-replay.js.map +1 -0
  255. package/dist/run-result.d.ts +4 -0
  256. package/dist/run-result.d.ts.map +1 -0
  257. package/dist/run-result.js +18 -0
  258. package/dist/run-result.js.map +1 -0
  259. package/dist/run-timeline-query.d.ts +38 -0
  260. package/dist/run-timeline-query.d.ts.map +1 -0
  261. package/dist/run-timeline-query.js +99 -0
  262. package/dist/run-timeline-query.js.map +1 -0
  263. package/dist/runs-query.d.ts.map +1 -1
  264. package/dist/runs-query.js +11 -3
  265. package/dist/runs-query.js.map +1 -1
  266. package/dist/runtime-bundle.d.ts.map +1 -1
  267. package/dist/runtime-bundle.js +2 -0
  268. package/dist/runtime-bundle.js.map +1 -1
  269. package/dist/runtime-learning.d.ts +15 -13
  270. package/dist/runtime-learning.d.ts.map +1 -1
  271. package/dist/runtime-learning.js +79 -58
  272. package/dist/runtime-learning.js.map +1 -1
  273. package/dist/runtime-types.d.ts +68 -9
  274. package/dist/runtime-types.d.ts.map +1 -1
  275. package/dist/sandbox-fs.d.ts +8 -5
  276. package/dist/sandbox-fs.d.ts.map +1 -1
  277. package/dist/sandbox-fs.js +30 -31
  278. package/dist/sandbox-fs.js.map +1 -1
  279. package/dist/sandbox-handle.d.ts +25 -0
  280. package/dist/sandbox-handle.d.ts.map +1 -0
  281. package/dist/sandbox-handle.js +120 -0
  282. package/dist/sandbox-handle.js.map +1 -0
  283. package/dist/sandbox-session-identity.d.ts +14 -0
  284. package/dist/sandbox-session-identity.d.ts.map +1 -0
  285. package/dist/sandbox-session-identity.js +33 -0
  286. package/dist/sandbox-session-identity.js.map +1 -0
  287. package/dist/sandbox-session-key.d.ts.map +1 -1
  288. package/dist/sandbox-session-key.js +12 -9
  289. package/dist/sandbox-session-key.js.map +1 -1
  290. package/dist/sandbox-session-lifecycle.d.ts.map +1 -1
  291. package/dist/sandbox-session-lifecycle.js +187 -44
  292. package/dist/sandbox-session-lifecycle.js.map +1 -1
  293. package/dist/sandbox-snapshot-policy.js +3 -3
  294. package/dist/sandbox-snapshot-policy.js.map +1 -1
  295. package/dist/sandbox-state-sync.d.ts +4 -2
  296. package/dist/sandbox-state-sync.d.ts.map +1 -1
  297. package/dist/sandbox-state-sync.js +47 -15
  298. package/dist/sandbox-state-sync.js.map +1 -1
  299. package/dist/sandbox-sync-worker.d.ts +11 -2
  300. package/dist/sandbox-sync-worker.d.ts.map +1 -1
  301. package/dist/sandbox-sync-worker.js +143 -31
  302. package/dist/sandbox-sync-worker.js.map +1 -1
  303. package/dist/schedule-execution.d.ts.map +1 -1
  304. package/dist/schedule-execution.js +127 -23
  305. package/dist/schedule-execution.js.map +1 -1
  306. package/dist/sdk-api-client.d.ts +17 -0
  307. package/dist/sdk-api-client.d.ts.map +1 -0
  308. package/dist/sdk-api-client.js +55 -0
  309. package/dist/sdk-api-client.js.map +1 -0
  310. package/dist/security.js +2 -2
  311. package/dist/security.js.map +1 -1
  312. package/dist/self-improvement.d.ts +5 -1
  313. package/dist/self-improvement.d.ts.map +1 -1
  314. package/dist/self-improvement.js +28 -14
  315. package/dist/self-improvement.js.map +1 -1
  316. package/dist/skill-bundles.d.ts +55 -0
  317. package/dist/skill-bundles.d.ts.map +1 -0
  318. package/dist/skill-bundles.js +134 -0
  319. package/dist/skill-bundles.js.map +1 -0
  320. package/dist/source-loader.js +7 -7
  321. package/dist/source-loader.js.map +1 -1
  322. package/dist/state-store-helpers.d.ts +2 -0
  323. package/dist/state-store-helpers.d.ts.map +1 -1
  324. package/dist/state-store-helpers.js +11 -1
  325. package/dist/state-store-helpers.js.map +1 -1
  326. package/dist/state-stores.d.ts +1 -0
  327. package/dist/state-stores.d.ts.map +1 -1
  328. package/dist/state-stores.js +26 -7
  329. package/dist/state-stores.js.map +1 -1
  330. package/dist/state.d.ts +305 -5
  331. package/dist/state.d.ts.map +1 -1
  332. package/dist/state.js +41 -2
  333. package/dist/state.js.map +1 -1
  334. package/dist/storage.d.ts +47 -2
  335. package/dist/storage.d.ts.map +1 -1
  336. package/dist/storage.js +158 -6
  337. package/dist/storage.js.map +1 -1
  338. package/dist/subagent-execution.d.ts +1 -1
  339. package/dist/subagent-execution.d.ts.map +1 -1
  340. package/dist/subagent-execution.js +10 -12
  341. package/dist/subagent-execution.js.map +1 -1
  342. package/dist/target-instructions.js +1 -1
  343. package/dist/target-instructions.js.map +1 -1
  344. package/dist/tool-apis.d.ts.map +1 -1
  345. package/dist/tool-apis.js +33 -9
  346. package/dist/tool-apis.js.map +1 -1
  347. package/dist/tool-execution.d.ts +22 -12
  348. package/dist/tool-execution.d.ts.map +1 -1
  349. package/dist/tool-execution.js +368 -238
  350. package/dist/tool-execution.js.map +1 -1
  351. package/dist/turn-media.d.ts +29 -0
  352. package/dist/turn-media.d.ts.map +1 -0
  353. package/dist/turn-media.js +233 -0
  354. package/dist/turn-media.js.map +1 -0
  355. package/dist/usage-reconciliation.d.ts +1 -1
  356. package/dist/usage-reconciliation.js +1 -1
  357. package/dist/workspace-id.d.ts +10 -0
  358. package/dist/workspace-id.d.ts.map +1 -0
  359. package/dist/workspace-id.js +55 -0
  360. package/dist/workspace-id.js.map +1 -0
  361. package/dist/workspace-manifest.d.ts +24 -0
  362. package/dist/workspace-manifest.d.ts.map +1 -0
  363. package/dist/workspace-manifest.js +111 -0
  364. package/dist/workspace-manifest.js.map +1 -0
  365. package/dist/workspace-operation-limiter.d.ts +16 -0
  366. package/dist/workspace-operation-limiter.d.ts.map +1 -0
  367. package/dist/workspace-operation-limiter.js +31 -0
  368. package/dist/workspace-operation-limiter.js.map +1 -0
  369. package/dist/workspace-operations.d.ts +145 -0
  370. package/dist/workspace-operations.d.ts.map +1 -0
  371. package/dist/workspace-operations.js +420 -0
  372. package/dist/workspace-operations.js.map +1 -0
  373. package/dist/workspace-runtime.d.ts +110 -0
  374. package/dist/workspace-runtime.d.ts.map +1 -0
  375. package/dist/workspace-runtime.js +240 -0
  376. package/dist/workspace-runtime.js.map +1 -0
  377. package/dist/workspace-search.d.ts +55 -0
  378. package/dist/workspace-search.d.ts.map +1 -0
  379. package/dist/workspace-search.js +262 -0
  380. package/dist/workspace-search.js.map +1 -0
  381. package/dist/workspace-service.d.ts +173 -0
  382. package/dist/workspace-service.d.ts.map +1 -0
  383. package/dist/workspace-service.js +619 -0
  384. package/dist/workspace-service.js.map +1 -0
  385. package/dist/workspace.d.ts +7 -0
  386. package/dist/workspace.d.ts.map +1 -0
  387. package/dist/workspace.js +7 -0
  388. package/dist/workspace.js.map +1 -0
  389. package/package.json +7 -4
@@ -0,0 +1,35 @@
1
+ import type { AgentManifest } from "@assemblyline-agents/core";
2
+ import type { BlobAdapter, RunAgentOptions, RunAgentResult, RunReplayProvenance } from "./runtime-types.js";
3
+ import type { RunRecord, StateAdapter } from "./state.js";
4
+ export type RunReplayErrorCode = "run_not_found" | "run_not_terminal" | "agent_revision_mismatch" | "context_snapshot_unavailable" | "attachment_unavailable" | "attachment_integrity_mismatch";
5
+ /** A replay refusal is expected operator feedback, not an internal server error. */
6
+ export declare class RunReplayError extends Error {
7
+ readonly code: RunReplayErrorCode;
8
+ constructor(code: RunReplayErrorCode, message: string);
9
+ }
10
+ export interface PreparedRunReplay {
11
+ sourceRun: RunRecord;
12
+ options: RunAgentOptions;
13
+ }
14
+ export declare function recordRunReplayStarted(state: StateAdapter, runId: string, replay: RunReplayProvenance): Promise<void>;
15
+ export declare function rerunFromSnapshot(input: {
16
+ runId: string;
17
+ state: StateAdapter;
18
+ blob: BlobAdapter;
19
+ manifest: AgentManifest;
20
+ run: (options: RunAgentOptions) => Promise<RunAgentResult>;
21
+ }, lifecycle?: {
22
+ onRunCreated?: RunAgentOptions["onRunCreated"];
23
+ }): Promise<RunAgentResult>;
24
+ /**
25
+ * Reconstruct a model-visible run input from durable runtime-owned evidence.
26
+ * Public run detail is deliberately insufficient for this: attachment bytes
27
+ * stay in the blob adapter and are verified here before a new run is admitted.
28
+ */
29
+ export declare function prepareRunReplay(input: {
30
+ runId: string;
31
+ state: StateAdapter;
32
+ blob: BlobAdapter;
33
+ manifest: AgentManifest;
34
+ }): Promise<PreparedRunReplay>;
35
+ //# sourceMappingURL=run-replay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-replay.d.ts","sourceRoot":"","sources":["../src/run-replay.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAA8B,MAAM,2BAA2B,CAAC;AAG3F,OAAO,KAAK,EAAE,WAAW,EAAiB,eAAe,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC3H,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1D,MAAM,MAAM,kBAAkB,GAC1B,eAAe,GACf,kBAAkB,GAClB,yBAAyB,GACzB,8BAA8B,GAC9B,wBAAwB,GACxB,+BAA+B,CAAC;AAEpC,oFAAoF;AACpF,qBAAa,cAAe,SAAQ,KAAK;IAC3B,QAAQ,CAAC,IAAI,EAAE,kBAAkB;gBAAxB,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM;CAI/D;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC,CASf;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE;IACL,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,aAAa,CAAC;IACxB,GAAG,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5D,EACD,SAAS,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC,CAAA;CAAE,GAC7D,OAAO,CAAC,cAAc,CAAC,CAIzB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,EAAE;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,aAAa,CAAC;CACzB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA4E7B"}
@@ -0,0 +1,193 @@
1
+ import { createHash } from "node:crypto";
2
+ import { attachmentContentsFromRecord } from "./attachments.js";
3
+ import { normalizeAgentPrincipal } from "./principals.js";
4
+ const TERMINAL_RUN_STATUSES = new Set(["completed", "failed", "cancelled"]);
5
+ /** A replay refusal is expected operator feedback, not an internal server error. */
6
+ export class RunReplayError extends Error {
7
+ code;
8
+ constructor(code, message) {
9
+ super(message);
10
+ this.code = code;
11
+ this.name = "RunReplayError";
12
+ }
13
+ }
14
+ export async function recordRunReplayStarted(state, runId, replay) {
15
+ await state.appendEvent(runId, "run.replay_started", {
16
+ sourceRunId: replay.sourceRunId,
17
+ sourceAgentRevision: replay.sourceAgentRevision,
18
+ inputSha256: replay.inputSha256,
19
+ contextSha256: replay.contextSha256,
20
+ attachmentSha256s: replay.attachmentSha256s,
21
+ deliveryMode: replay.deliveryMode
22
+ });
23
+ }
24
+ export async function rerunFromSnapshot(input, lifecycle) {
25
+ const prepared = await prepareRunReplay(input);
26
+ if (lifecycle?.onRunCreated)
27
+ prepared.options.onRunCreated = lifecycle.onRunCreated;
28
+ return input.run(prepared.options);
29
+ }
30
+ /**
31
+ * Reconstruct a model-visible run input from durable runtime-owned evidence.
32
+ * Public run detail is deliberately insufficient for this: attachment bytes
33
+ * stay in the blob adapter and are verified here before a new run is admitted.
34
+ */
35
+ export async function prepareRunReplay(input) {
36
+ const sourceRun = await input.state.getRun(input.runId);
37
+ if (!sourceRun)
38
+ throw new RunReplayError("run_not_found", `Run not found: ${input.runId}`);
39
+ if (!TERMINAL_RUN_STATUSES.has(sourceRun.status)) {
40
+ throw new RunReplayError("run_not_terminal", `Run ${sourceRun.id} is not terminal (status: ${sourceRun.status}).`);
41
+ }
42
+ if (sourceRun.agentRevision !== input.manifest.agentRevision) {
43
+ throw new RunReplayError("agent_revision_mismatch", `Run ${sourceRun.id} used agent revision ${sourceRun.agentRevision}; this runtime serves ${input.manifest.agentRevision}.`);
44
+ }
45
+ const contextBytes = await input.blob.get(`context/${sourceRun.id}.json`);
46
+ if (!contextBytes) {
47
+ throw new RunReplayError("context_snapshot_unavailable", `Run ${sourceRun.id} has no durable context snapshot.`);
48
+ }
49
+ const contextSnapshot = parseContextSnapshot(sourceRun, contextBytes);
50
+ const message = stringValue(sourceRun.input.message);
51
+ const channel = stringValue(sourceRun.input.channel) || "local";
52
+ if (stringValue(contextSnapshot.activeEvent.message) !== message || stringValue(contextSnapshot.activeEvent.channel) !== channel) {
53
+ throw new RunReplayError("context_snapshot_unavailable", `Run ${sourceRun.id}'s context snapshot does not match its persisted input.`);
54
+ }
55
+ const attachments = await replayAttachments(contextSnapshot.attachments, input.blob, sourceRun.id);
56
+ const attachmentSha256s = contextSnapshot.attachments.flatMap((attachment) => {
57
+ const sha256 = stringValue(attachment.sha256);
58
+ return sha256 ? [sha256] : [];
59
+ });
60
+ const provenance = {
61
+ sourceRunId: sourceRun.id,
62
+ sourceAgentRevision: sourceRun.agentRevision,
63
+ inputSha256: sha256Json({
64
+ message,
65
+ channel,
66
+ eventId: sourceRun.input.eventId ?? null,
67
+ userId: sourceRun.input.userId ?? null,
68
+ principal: sourceRun.input.principal ?? null,
69
+ initiator: sourceRun.input.initiator ?? null,
70
+ projectId: sourceRun.input.projectId ?? null,
71
+ workspaceId: sourceRun.input.workspaceId ?? null,
72
+ tenantId: sourceRun.input.tenantId ?? null,
73
+ delivery: sourceRun.input.delivery ?? null,
74
+ metadata: sourceRun.input.metadata ?? {},
75
+ contextId: contextSnapshot.id,
76
+ attachmentSha256s
77
+ }),
78
+ contextSha256: createHash("sha256").update(contextBytes).digest("hex"),
79
+ attachmentSha256s,
80
+ deliveryMode: "record-only"
81
+ };
82
+ const options = {
83
+ message,
84
+ channel,
85
+ attachments,
86
+ // A replay uses the frozen context history instead of appending to and
87
+ // resuming the original live conversation. Omission creates a new,
88
+ // run-scoped conversation while the model still receives the exact saved
89
+ // context snapshot below.
90
+ contextSnapshot,
91
+ replay: provenance,
92
+ // Replays must not send a duplicate Slack/email/etc delivery. Approval is
93
+ // also intentionally omitted so approval-gated tools pause again.
94
+ eval: { recordOnlyDelivery: true }
95
+ };
96
+ copyString(sourceRun.input, options, "eventId");
97
+ copyString(sourceRun.input, options, "userId");
98
+ copyString(sourceRun.input, options, "projectId");
99
+ copyString(sourceRun.input, options, "workspaceId");
100
+ copyString(sourceRun.input, options, "tenantId");
101
+ copyObject(sourceRun.input, options, "metadata");
102
+ copyObject(sourceRun.input, options, "delivery");
103
+ copyPrincipal(sourceRun.input, options, "principal");
104
+ copyPrincipal(sourceRun.input, options, "initiator");
105
+ return { sourceRun, options };
106
+ }
107
+ function parseContextSnapshot(sourceRun, bytes) {
108
+ try {
109
+ const value = JSON.parse(Buffer.from(bytes).toString("utf8"));
110
+ if (value.agentRevision !== sourceRun.agentRevision ||
111
+ typeof value.id !== "string" ||
112
+ typeof value.instructions !== "string" ||
113
+ !value.activeEvent ||
114
+ typeof value.activeEvent !== "object" ||
115
+ !Array.isArray(value.attachments) ||
116
+ !Array.isArray(value.recentHistory) ||
117
+ !objectValue(value.memoryFilesystem) ||
118
+ !objectValue(value.fileManifest) ||
119
+ !Array.isArray(value.skills) ||
120
+ !objectValue(value.skillFilesystem) ||
121
+ !Array.isArray(value.tools) ||
122
+ !Array.isArray(value.capabilities) ||
123
+ !Array.isArray(value.channels) ||
124
+ !Array.isArray(value.trustBoundaries)) {
125
+ throw new Error("invalid context bundle");
126
+ }
127
+ return value;
128
+ }
129
+ catch {
130
+ throw new RunReplayError("context_snapshot_unavailable", `Run ${sourceRun.id}'s durable context snapshot is invalid.`);
131
+ }
132
+ }
133
+ async function replayAttachments(attachments, blob, runId) {
134
+ const output = [];
135
+ for (const attachment of attachments) {
136
+ const blobKey = stringValue(attachment.blobKey);
137
+ if (!blobKey) {
138
+ // metadata_only and failed attachments were exactly what the original
139
+ // model saw; retain that state without attempting a fresh provider URL.
140
+ output.push(structuredClone(attachment));
141
+ continue;
142
+ }
143
+ const contents = await attachmentContentsFromRecord(attachment, blob);
144
+ if (contents === undefined) {
145
+ throw new RunReplayError("attachment_unavailable", `Run ${runId} attachment ${attachmentName(attachment)} is no longer available.`);
146
+ }
147
+ const bytes = typeof contents === "string" ? Buffer.from(contents) : Buffer.from(contents);
148
+ const actualSha256 = createHash("sha256").update(bytes).digest("hex");
149
+ const expectedSha256 = stringValue(attachment.sha256);
150
+ const expectedSize = numberValue(attachment.sizeBytes) ?? numberValue(attachment.size);
151
+ if (!expectedSha256 || actualSha256 !== expectedSha256 || (expectedSize !== undefined && bytes.byteLength !== expectedSize)) {
152
+ throw new RunReplayError("attachment_integrity_mismatch", `Run ${runId} attachment ${attachmentName(attachment)} failed its integrity check.`);
153
+ }
154
+ const replayAttachment = structuredClone(attachment);
155
+ delete replayAttachment.blobKey;
156
+ delete replayAttachment.blobUri;
157
+ replayAttachment.dataBase64 = bytes.toString("base64");
158
+ replayAttachment.encoding = "base64";
159
+ output.push(replayAttachment);
160
+ }
161
+ return output;
162
+ }
163
+ function copyString(source, target, key) {
164
+ const value = stringValue(source[key]);
165
+ if (value)
166
+ target[key] = value;
167
+ }
168
+ function copyObject(source, target, key) {
169
+ const value = objectValue(source[key]);
170
+ if (value)
171
+ target[key] = structuredClone(value);
172
+ }
173
+ function copyPrincipal(source, target, key) {
174
+ const value = normalizeAgentPrincipal(source[key]);
175
+ if (value)
176
+ target[key] = value;
177
+ }
178
+ function attachmentName(attachment) {
179
+ return stringValue(attachment.filename) || stringValue(attachment.name) || stringValue(attachment.id) || "attachment";
180
+ }
181
+ function objectValue(value) {
182
+ return value && typeof value === "object" && !Array.isArray(value) ? value : undefined;
183
+ }
184
+ function stringValue(value) {
185
+ return typeof value === "string" ? value : "";
186
+ }
187
+ function numberValue(value) {
188
+ return typeof value === "number" && Number.isFinite(value) ? value : undefined;
189
+ }
190
+ function sha256Json(value) {
191
+ return createHash("sha256").update(JSON.stringify(value)).digest("hex");
192
+ }
193
+ //# sourceMappingURL=run-replay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-replay.js","sourceRoot":"","sources":["../src/run-replay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { RunAgentResult } from "./runtime-types.js";
2
+ import type { RunRecord, StateAdapter } from "./state.js";
3
+ export declare function buildRunAgentResult(state: StateAdapter, run: RunRecord, response: string, waitingForApproval?: boolean, waitingForInput?: boolean, waitingForConnection?: boolean): Promise<RunAgentResult>;
4
+ //# sourceMappingURL=run-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-result.d.ts","sourceRoot":"","sources":["../src/run-result.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,YAAY,EACnB,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,MAAM,EAChB,kBAAkB,CAAC,EAAE,OAAO,EAC5B,eAAe,CAAC,EAAE,OAAO,EACzB,oBAAoB,CAAC,EAAE,OAAO,GAC7B,OAAO,CAAC,cAAc,CAAC,CAYzB"}
@@ -0,0 +1,18 @@
1
+ import { redactedToolCallRecord } from "./json-util.js";
2
+ export async function buildRunAgentResult(state, run, response, waitingForApproval, waitingForInput, waitingForConnection) {
3
+ const result = {
4
+ run,
5
+ events: await state.listEvents(run.id),
6
+ toolCalls: (await state.listToolCalls(run.id)).map(redactedToolCallRecord),
7
+ deliveries: await state.listDeliveries(run.id),
8
+ response
9
+ };
10
+ if (waitingForApproval !== undefined)
11
+ result.waitingForApproval = waitingForApproval;
12
+ if (waitingForInput !== undefined)
13
+ result.waitingForInput = waitingForInput;
14
+ if (waitingForConnection !== undefined)
15
+ result.waitingForConnection = waitingForConnection;
16
+ return result;
17
+ }
18
+ //# sourceMappingURL=run-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-result.js","sourceRoot":"","sources":["../src/run-result.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAIxD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,KAAmB,EACnB,GAAc,EACd,QAAgB,EAChB,kBAA4B,EAC5B,eAAyB,EACzB,oBAA8B;IAE9B,MAAM,MAAM,GAAmB;QAC7B,GAAG;QACH,MAAM,EAAE,MAAM,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,SAAS,EAAE,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,sBAAsB,CAAC;QAC1E,UAAU,EAAE,MAAM,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9C,QAAQ;KACT,CAAC;IACF,IAAI,kBAAkB,KAAK,SAAS;QAAE,MAAM,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;IACrF,IAAI,eAAe,KAAK,SAAS;QAAE,MAAM,CAAC,eAAe,GAAG,eAAe,CAAC;IAC5E,IAAI,oBAAoB,KAAK,SAAS;QAAE,MAAM,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IAC3F,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,38 @@
1
+ export { redactedToolCallRecord } from "./json-util.js";
2
+ import type { CheckpointRecord, DeliveryObligation, RunEvent, RunRecord, StateAdapter, ToolCallRecord, UsageRecord } from "./state.js";
3
+ export declare const DEFAULT_RUN_TIMELINE_PAGE_SIZE = 120;
4
+ export declare const MAX_RUN_TIMELINE_PAGE_SIZE = 500;
5
+ export declare const MAX_RUN_TIMELINE_SEQUENCE = 2147483647;
6
+ export interface RunTimelinePageQuery {
7
+ /** Events strictly before this durable sequence, returned in chronological order. */
8
+ before?: number;
9
+ /** Events strictly after this durable sequence, returned in chronological order. */
10
+ after?: number;
11
+ limit?: number;
12
+ }
13
+ export interface RunTimelinePageInfo {
14
+ limit: number;
15
+ totalEvents: number;
16
+ firstSequence?: number;
17
+ lastSequence?: number;
18
+ hasBefore: boolean;
19
+ hasAfter: boolean;
20
+ }
21
+ export interface RunTimelinePage {
22
+ run: RunRecord;
23
+ events: RunEvent[];
24
+ toolCalls: ToolCallRecord[];
25
+ checkpoints: CheckpointRecord[];
26
+ deliveries: DeliveryObligation[];
27
+ usage: UsageRecord[];
28
+ page: RunTimelinePageInfo;
29
+ }
30
+ export declare function normalizeRunTimelinePageQuery(query?: RunTimelinePageQuery): Required<Pick<RunTimelinePageQuery, "limit">> & Omit<RunTimelinePageQuery, "limit">;
31
+ /**
32
+ * A bounded, presentation-oriented run read. It intentionally avoids replay's
33
+ * checkpoint hydration and strips tool result/model-output bodies that the
34
+ * timeline never renders. Adapters may provide an optimized implementation;
35
+ * the fallback keeps custom state adapters correct while bounding HTTP bytes.
36
+ */
37
+ export declare function queryRunTimelinePage(state: StateAdapter, runId: string, input?: RunTimelinePageQuery): Promise<RunTimelinePage | undefined>;
38
+ //# sourceMappingURL=run-timeline-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-timeline-query.d.ts","sourceRoot":"","sources":["../src/run-timeline-query.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,cAAc,EACd,WAAW,EACZ,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAClD,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAC9C,eAAO,MAAM,yBAAyB,aAAgB,CAAC;AAEvD,MAAM,WAAW,oBAAoB;IACnC,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,QAAQ,EAAE,CAAC;IACnB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,IAAI,EAAE,mBAAmB,CAAC;CAC3B;AAMD,wBAAgB,6BAA6B,CAAC,KAAK,GAAE,oBAAyB,GAAG,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAkBnK;AAoBD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,oBAAyB,GAC/B,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAoDtC"}
@@ -0,0 +1,99 @@
1
+ import { redactedToolCallRecord } from "./json-util.js";
2
+ export { redactedToolCallRecord } from "./json-util.js";
3
+ export const DEFAULT_RUN_TIMELINE_PAGE_SIZE = 120;
4
+ export const MAX_RUN_TIMELINE_PAGE_SIZE = 500;
5
+ export const MAX_RUN_TIMELINE_SEQUENCE = 2_147_483_647;
6
+ export function normalizeRunTimelinePageQuery(query = {}) {
7
+ if (query.before !== undefined && query.after !== undefined) {
8
+ throw new Error("Run timeline pagination accepts either before or after, not both.");
9
+ }
10
+ for (const [name, value] of [["before", query.before], ["after", query.after]]) {
11
+ if (value !== undefined && (!Number.isSafeInteger(value) || value < 1 || value > MAX_RUN_TIMELINE_SEQUENCE)) {
12
+ throw new Error(`Run timeline ${name} must be a positive 32-bit integer sequence.`);
13
+ }
14
+ }
15
+ const requestedLimit = query.limit ?? DEFAULT_RUN_TIMELINE_PAGE_SIZE;
16
+ if (!Number.isFinite(requestedLimit) || requestedLimit < 1) {
17
+ throw new Error("Run timeline limit must be a positive number.");
18
+ }
19
+ return {
20
+ ...(query.before !== undefined ? { before: query.before } : {}),
21
+ ...(query.after !== undefined ? { after: query.after } : {}),
22
+ limit: Math.min(MAX_RUN_TIMELINE_PAGE_SIZE, Math.floor(requestedLimit))
23
+ };
24
+ }
25
+ function pageEvents(events, query) {
26
+ const before = query.before;
27
+ if (before !== undefined) {
28
+ return events.filter((event) => event.sequence < before).slice(-query.limit);
29
+ }
30
+ const after = query.after ?? 0;
31
+ return events.filter((event) => event.sequence > after).slice(0, query.limit);
32
+ }
33
+ function inWindow(timestamp, firstTimestamp, lastTimestamp) {
34
+ if (!firstTimestamp || !lastTimestamp)
35
+ return false;
36
+ return timestamp >= firstTimestamp && timestamp <= lastTimestamp;
37
+ }
38
+ function stringIds(events, key) {
39
+ return new Set(events.map((event) => event.data[key]).filter((value) => typeof value === "string"));
40
+ }
41
+ /**
42
+ * A bounded, presentation-oriented run read. It intentionally avoids replay's
43
+ * checkpoint hydration and strips tool result/model-output bodies that the
44
+ * timeline never renders. Adapters may provide an optimized implementation;
45
+ * the fallback keeps custom state adapters correct while bounding HTTP bytes.
46
+ */
47
+ export async function queryRunTimelinePage(state, runId, input = {}) {
48
+ const query = normalizeRunTimelinePageQuery(input);
49
+ const optimized = state.queryRunTimelinePage;
50
+ if (optimized)
51
+ return optimized.call(state, runId, query);
52
+ const [run, allEvents] = await Promise.all([state.getRun(runId), state.listEvents(runId)]);
53
+ if (!run)
54
+ return undefined;
55
+ const events = pageEvents(allEvents, query);
56
+ const firstSequence = events[0]?.sequence;
57
+ const lastSequence = events.at(-1)?.sequence;
58
+ const firstTimestamp = events[0]?.timestamp;
59
+ const lastTimestamp = events.at(-1)?.timestamp;
60
+ const toolCallIds = stringIds(events, "toolCallId");
61
+ const deliveryIds = stringIds(events, "deliveryId");
62
+ const includesClosing = events.some((event) => event.type === "run.completed" || event.type === "delivery.sent");
63
+ const [allToolCalls, allCheckpoints, allDeliveries, allUsage] = await Promise.all([
64
+ state.listToolCalls(runId),
65
+ state.listCheckpoints(runId),
66
+ state.listDeliveries(runId),
67
+ state.listUsage(runId)
68
+ ]);
69
+ const toolCalls = allToolCalls
70
+ .filter((record) => toolCallIds.has(record.id) || inWindow(record.createdAt, firstTimestamp, lastTimestamp))
71
+ .map((record) => {
72
+ const { result: _result, modelOutput: _modelOutput, ...timelineRecord } = redactedToolCallRecord(record);
73
+ return timelineRecord;
74
+ });
75
+ const checkpoints = allCheckpoints.filter((record) => inWindow(record.createdAt, firstTimestamp, lastTimestamp));
76
+ const deliveries = allDeliveries.filter((record, index) => (deliveryIds.has(record.id)
77
+ || inWindow(record.createdAt, firstTimestamp, lastTimestamp)
78
+ || (includesClosing && index === allDeliveries.length - 1)));
79
+ return {
80
+ run,
81
+ events,
82
+ toolCalls,
83
+ checkpoints,
84
+ deliveries,
85
+ // Usage rows are compact and power run-level token/cost summaries, so a
86
+ // page carries the complete ledger even though heavyweight timeline
87
+ // records stay windowed.
88
+ usage: allUsage,
89
+ page: {
90
+ limit: query.limit,
91
+ totalEvents: allEvents.length,
92
+ ...(firstSequence !== undefined ? { firstSequence } : {}),
93
+ ...(lastSequence !== undefined ? { lastSequence } : {}),
94
+ hasBefore: firstSequence !== undefined && allEvents.some((event) => event.sequence < firstSequence),
95
+ hasAfter: lastSequence !== undefined && allEvents.some((event) => event.sequence > lastSequence)
96
+ }
97
+ };
98
+ }
99
+ //# sourceMappingURL=run-timeline-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-timeline-query.js","sourceRoot":"","sources":["../src/run-timeline-query.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runs-query.d.ts","sourceRoot":"","sources":["../src/runs-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D;;;GAGG;AAEH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,EAAE,UAAU,EAAE,CAAC;CAC7B;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EACnB,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GACrD,OAAO,CAAC,oBAAoB,CAAC,CAiH/B;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG;IACtD,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB,CAqBA"}
1
+ {"version":3,"file":"runs-query.d.ts","sourceRoot":"","sources":["../src/runs-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG3E,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D;;;GAGG;AAEH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,aAAa,EAAE,UAAU,EAAE,CAAC;CAC7B;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EACnB,QAAQ,CAAC,EAAE,aAAa,EACxB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GACrD,OAAO,CAAC,oBAAoB,CAAC,CAuH/B;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG;IACtD,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;CACrB,CAqBA"}
@@ -1,4 +1,5 @@
1
- import { previewJson, redactedRunInput } from "./json-util.js";
1
+ import { findSubagent } from "./agent-surface.js";
2
+ import { previewJson, redactedRunInput, redactedToolInput } from "./json-util.js";
2
3
  export async function queryAgentRuns(state, manifest, options) {
3
4
  // `includeDetails` (default true) builds the full per-run timeline. The list
4
5
  // endpoint opts out: loading events/tool-calls/deliveries/usage for every run
@@ -29,6 +30,9 @@ export async function queryAgentRuns(state, manifest, options) {
29
30
  details.push({
30
31
  runId: run.id,
31
32
  status: run.status,
33
+ deliveryStatus: run.deliveryStatus ?? null,
34
+ deliveryError: run.deliveryError ?? null,
35
+ deliveryAttempts: run.deliveryAttempts ?? null,
32
36
  channel,
33
37
  model,
34
38
  durationMs: Math.max(0, Date.parse(run.updatedAt) - Date.parse(run.createdAt)),
@@ -55,7 +59,7 @@ export async function queryAgentRuns(state, manifest, options) {
55
59
  id: toolCall.id,
56
60
  toolName: toolCall.toolName,
57
61
  status: toolCall.status,
58
- inputPreview: previewJson(toolCall.input),
62
+ inputPreview: previewJson(redactedToolInput(toolCall.input)),
59
63
  modelOutputPreview: previewJson(toolCall.modelOutput),
60
64
  error: toolCall.error ?? null
61
65
  })),
@@ -100,6 +104,9 @@ export async function queryAgentRuns(state, manifest, options) {
100
104
  runs: runs.map((run) => ({
101
105
  runId: run.id,
102
106
  status: run.status,
107
+ deliveryStatus: run.deliveryStatus ?? null,
108
+ deliveryError: run.deliveryError ?? null,
109
+ deliveryAttempts: run.deliveryAttempts ?? null,
103
110
  channel: typeof run.input.channel === "string" ? run.input.channel : "unknown",
104
111
  model: modelForRun(run.input, manifest),
105
112
  createdAt: run.createdAt,
@@ -135,7 +142,8 @@ function modelForRun(input, manifest) {
135
142
  if (typeof input.model === "string")
136
143
  return input.model;
137
144
  if (typeof input.subagent === "string") {
138
- return manifest?.subagents.find((subagent) => subagent.name === input.subagent)?.possibleModels[0] ?? "unknown";
145
+ const path = typeof input.agentSurface === "string" ? input.agentSurface : input.subagent;
146
+ return manifest ? findSubagent(manifest, path)?.possibleModels[0] ?? "unknown" : "unknown";
139
147
  }
140
148
  return manifest?.possibleModels[0] ?? "unknown";
141
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runs-query.js","sourceRoot":"","sources":["../src/runs-query.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAiB/D,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAmB,EACnB,QAAwB,EACxB,OAAsD;IAEtD,6EAA6E;IAC7E,8EAA8E;IAC9E,0EAA0E;IAC1E,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,IAAI,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,GAAG,CAAC;IACpC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;IACvC,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC;SACtB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SACjE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAChC,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,eAAe,GAA2B,EAAE,CAAC;IACnD,MAAM,gBAAgB,GAA2B,EAAE,CAAC;IACpD,MAAM,cAAc,GAA2B,EAAE,CAAC;IAElD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACtF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC/C,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrE,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACjE,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACzD,IAAI,CAAC,cAAc;YAAE,SAAS;QAC9B,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC;YACX,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO;YACP,KAAK;YACL,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9E,KAAK,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC;YAClC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC;YACrD,YAAY,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;YACpC,aAAa,EAAE,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC;YAC5D,WAAW,EAAE,YAAY,CAAC,WAAW;YACrC,OAAO,EAAE,YAAY,CAAC,aAAa;YACnC,sBAAsB,EAAE,YAAY,CAAC,sBAAsB;YAC3D,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,aAAa,EAAE,SAAS,CAAC,MAAM;YAC/B,aAAa,EAAE,UAAU,CAAC,MAAM;YAChC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,yBAAyB,CAAC,CAAC,MAAM;YACpF,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,MAAM;YAChF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YAClG,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC/B,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;aAC9B,CAAC,CAAC;YACH,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACtC,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,YAAY,EAAE,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACzC,kBAAkB,EAAE,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC;gBACrD,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,IAAI;aAC9B,CAAC,CAAC;YACH,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACxC,EAAE,EAAE,QAAQ,CAAC,EAAE;gBACf,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,cAAc,EAAE,QAAQ,CAAC,cAAc;gBACvC,cAAc,EAAE,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;aAC9C,CAAC,CAAC;YACH,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC5B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;gBAC5B,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;gBACzC,eAAe,EAAE,MAAM,CAAC,eAAe;gBACvC,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;gBACtC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,IAAI;gBACnD,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAC;SACJ,CAAC,CAAC;IACL,CAAC;IACD,MAAM,aAAa,GAAiB,EAAE,CAAC;IACvC,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3D,aAAa,CAAC,IAAI,CAAC;YACjB,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK;YACzC,YAAY,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM;YAC3C,YAAY,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM;YAC3C,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;YACzD,IAAI,EAAE,UAAU,CAAC,WAAW,GAAG,CAAC;gBAC9B,CAAC,CAAC,4FAA4F;gBAC9F,CAAC,CAAC,8DAA8D;SACnE,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACvB,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,OAAO,EAAE,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YAC9E,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC;YACvC,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,SAAS,EAAE,GAAG,CAAC,SAAS;SACzB,CAAC,CAAC;QACH,eAAe;QACf,gBAAgB;QAChB,cAAc;QACd,OAAO;QACP,aAAa;KACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAsB;IAMnD,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,aAAa,CAAC;SACvD,MAAM,CACL,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACpB,WAAW,EAAE;YACX,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW;YACrD,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY;YACxD,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,MAAM,CAAC,YAAY;SACzD;QACD,aAAa,EAAE,OAAO,CAAC,aAAa,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;QAC5D,sBAAsB,EAAE,OAAO,CAAC,sBAAsB,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtG,WAAW,EAAE,OAAO,CAAC,WAAW,GAAG,CAAC;KACrC,CAAC,EACF;QACE,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QAC/C,aAAa,EAAE,CAAC;QAChB,sBAAsB,EAAE,CAAC;QACzB,WAAW,EAAE,CAAC;KACf,CACF,CAAC;AACN,CAAC;AAED,SAAS,WAAW,CAAC,KAAiB,EAAE,QAAmC;IACzE,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC;IACxD,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;IAClH,CAAC;IACD,OAAO,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"runs-query.js","sourceRoot":"","sources":["../src/runs-query.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-bundle.d.ts","sourceRoot":"","sources":["../src/runtime-bundle.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CActE"}
1
+ {"version":3,"file":"runtime-bundle.d.ts","sourceRoot":"","sources":["../src/runtime-bundle.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAgBtE"}
@@ -8,9 +8,11 @@ export function loadRuntimeBundle(artifactRoot) {
8
8
  const sourceBundle = existsSync(sourcePath)
9
9
  ? JSON.parse(readFileSync(sourcePath, "utf8"))
10
10
  : {};
11
+ const resourcesRoot = join(root, "resources");
11
12
  return {
12
13
  manifest,
13
14
  artifactRoot: root,
15
+ ...(existsSync(resourcesRoot) ? { resourcesRoot } : {}),
14
16
  sourceBundle,
15
17
  devMode: true
16
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-bundle.js","sourceRoot":"","sources":["../src/runtime-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAI1C,MAAM,UAAU,iBAAiB,CAAC,YAAoB;IACpD,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAAkB,CAAC;IAChG,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC;QACzC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAA4B;QAC1E,CAAC,CAAC,EAAE,CAAC;IACP,OAAO;QACL,QAAQ;QACR,YAAY,EAAE,IAAI;QAClB,YAAY;QACZ,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"runtime-bundle.js","sourceRoot":"","sources":["../src/runtime-bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAI1C,MAAM,UAAU,iBAAiB,CAAC,YAAoB;IACpD,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,CAAkB,CAAC;IAChG,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,UAAU,CAAC,UAAU,CAAC;QACzC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAA4B;QAC1E,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC9C,OAAO;QACL,QAAQ;QACR,YAAY,EAAE,IAAI;QAClB,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,YAAY;QACZ,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC"}
@@ -10,11 +10,12 @@ interface RuntimeLearningOptions {
10
10
  manifest: AgentManifest;
11
11
  env: Record<string, string | undefined>;
12
12
  logger: RuntimeLogger;
13
- skillsConfig: ResolvedSkillsConfig;
14
13
  learningStore: LearningStore;
15
14
  skillStore: SkillStore;
16
15
  memoryStore: MemoryStore;
17
- skillScope(): string;
16
+ skillsConfigForSurface(surfacePath: string): ResolvedSkillsConfig;
17
+ skillScopeForSurface(surfacePath: string): string;
18
+ anySkillsEnabled(): boolean;
18
19
  memoryScopeForRun(run: RunRecord): MemoryScope;
19
20
  resolveAgentHarness(modelSpec?: string): Promise<AgentHarness>;
20
21
  now(): Date;
@@ -28,32 +29,33 @@ export interface RuntimeSkillWriteInput {
28
29
  }
29
30
  export declare class RuntimeLearningManager {
30
31
  private readonly options;
31
- private skillsSeeded;
32
+ private readonly seededSurfaces;
33
+ private readonly migratedSurfaceScopes;
32
34
  private skillScopeMigrated;
33
35
  constructor(options: RuntimeLearningOptions);
34
- ensureSkillsSeeded(): Promise<void>;
35
- listSkills(): Promise<Array<{
36
+ ensureSkillsSeeded(surfacePath?: string): Promise<void>;
37
+ listSkills(surfacePath?: string): Promise<Array<{
36
38
  name: string;
37
39
  description: string;
38
40
  origin: string;
39
41
  pending: boolean;
40
42
  }>>;
41
- saveSkill(input: RuntimeSkillWriteInput): Promise<{
43
+ saveSkill(input: RuntimeSkillWriteInput, surfacePath?: string): Promise<{
42
44
  name: string;
43
45
  pending: boolean;
44
46
  }>;
45
- deleteSkill(name: string): Promise<void>;
46
- listSkillRevisions(name: string): Promise<SkillRevisionRecord[]>;
47
- restoreSkillRevision(name: string, revision: number): Promise<{
47
+ deleteSkill(name: string, surfacePath?: string): Promise<void>;
48
+ listSkillRevisions(name: string, surfacePath?: string): Promise<SkillRevisionRecord[]>;
49
+ restoreSkillRevision(name: string, revision: number, surfacePath?: string): Promise<{
48
50
  name: string;
49
51
  pending: boolean;
50
52
  }>;
51
- listPendingSkillChanges(): Promise<PendingSkillChangeRecord[]>;
52
- approveSkillChange(id: string): Promise<{
53
+ listPendingSkillChanges(surfacePath?: string): Promise<PendingSkillChangeRecord[]>;
54
+ approveSkillChange(id: string, surfacePath?: string): Promise<{
53
55
  name: string;
54
56
  action: string;
55
57
  }>;
56
- rejectSkillChange(id: string): Promise<void>;
58
+ rejectSkillChange(id: string, surfacePath?: string): Promise<void>;
57
59
  recordRunFeedback(runId: string, feedback: {
58
60
  rating: "positive" | "negative";
59
61
  comment?: string;
@@ -61,7 +63,7 @@ export declare class RuntimeLearningManager {
61
63
  jobId: string;
62
64
  status: string;
63
65
  }>;
64
- listBackgroundReviews(): Promise<import("./learning-store.js").BackgroundReviewJobRecord[]>;
66
+ listBackgroundReviews(surfacePath?: string): Promise<import("./learning-store.js").BackgroundReviewJobRecord[]>;
65
67
  runDueBackgroundReviews(options?: {
66
68
  now?: Date;
67
69
  limit?: number;