@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,370 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { WorkspaceConflictError } from "./state.js";
3
+ import { timestamp } from "./runtime-util.js";
4
+ const noPersist = async () => undefined;
5
+ export class InMemoryWorkspaceStore {
6
+ persist;
7
+ workspaces = new Map();
8
+ workspaceIdsByScopeKey = new Map();
9
+ versions = new Map();
10
+ versionIdsByIdempotencyKey = new Map();
11
+ checkpoints = new Map();
12
+ searchChunks = new Map();
13
+ searchIndexes = new Map();
14
+ supportsWorkspaceEmbeddings() {
15
+ return true;
16
+ }
17
+ constructor(persist = noPersist) {
18
+ this.persist = persist;
19
+ }
20
+ async resolveWorkspace(input) {
21
+ const existingById = input.id ? this.workspaces.get(input.id) : undefined;
22
+ if (existingById) {
23
+ const existing = existingById;
24
+ if (existing.scopeKey !== input.scopeKey || existing.scope.agentScope !== input.scope.agentScope) {
25
+ throw new Error(`Workspace is outside the requested scope: ${existing.id}`);
26
+ }
27
+ return existing;
28
+ }
29
+ const existingId = this.workspaceIdsByScopeKey.get(input.scopeKey);
30
+ if (existingId) {
31
+ const existing = this.requireWorkspace(existingId);
32
+ if (input.id && existing.id !== input.id)
33
+ throw new Error(`Workspace scope is already in use: ${input.scopeKey}`);
34
+ return existing;
35
+ }
36
+ const now = timestamp();
37
+ const workspace = {
38
+ id: input.id ?? randomUUID(),
39
+ scopeKey: input.scopeKey,
40
+ scope: input.scope,
41
+ metadata: input.metadata ?? {},
42
+ createdAt: now,
43
+ updatedAt: now
44
+ };
45
+ if (input.name)
46
+ workspace.name = input.name;
47
+ this.workspaces.set(workspace.id, workspace);
48
+ this.workspaceIdsByScopeKey.set(workspace.scopeKey, workspace.id);
49
+ await this.persist();
50
+ return workspace;
51
+ }
52
+ async getWorkspace(id) {
53
+ return this.workspaces.get(id);
54
+ }
55
+ async listWorkspaces(input = {}) {
56
+ return [...this.workspaces.values()]
57
+ .filter((workspace) => !input.agentScope || workspace.scope.agentScope === input.agentScope)
58
+ .sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
59
+ }
60
+ async getWorkspaceVersion(id) {
61
+ return this.versions.get(id);
62
+ }
63
+ async listWorkspaceVersions(workspaceId, input = {}) {
64
+ const limit = Math.max(1, Math.floor(input.limit ?? Number.MAX_SAFE_INTEGER));
65
+ return [...this.versions.values()]
66
+ .filter((version) => version.workspaceId === workspaceId)
67
+ .sort((a, b) => b.createdAt.localeCompare(a.createdAt))
68
+ .slice(0, limit);
69
+ }
70
+ async commitWorkspaceVersion(input) {
71
+ const existingVersionId = this.versionIdsByIdempotencyKey.get(input.idempotencyKey);
72
+ if (existingVersionId) {
73
+ const version = this.requireVersion(existingVersionId);
74
+ if (version.workspaceId !== input.workspaceId) {
75
+ throw new Error(`Workspace version idempotency key belongs to another workspace: ${input.idempotencyKey}`);
76
+ }
77
+ return { workspace: this.requireWorkspace(input.workspaceId), version, created: false };
78
+ }
79
+ const workspace = this.requireWorkspace(input.workspaceId);
80
+ const actualHeadVersionId = workspace.headVersionId ?? null;
81
+ if (actualHeadVersionId !== input.expectedHeadVersionId) {
82
+ throw new WorkspaceConflictError(input.workspaceId, input.expectedHeadVersionId, actualHeadVersionId);
83
+ }
84
+ const version = {
85
+ id: randomUUID(),
86
+ workspaceId: workspace.id,
87
+ manifestBlobKey: input.manifestBlobKey,
88
+ manifestSha256: input.manifestSha256,
89
+ fileCount: input.fileCount,
90
+ totalBytes: input.totalBytes,
91
+ reason: input.reason,
92
+ idempotencyKey: input.idempotencyKey,
93
+ metadata: input.metadata ?? {},
94
+ createdAt: timestamp()
95
+ };
96
+ if (workspace.headVersionId)
97
+ version.parentVersionId = workspace.headVersionId;
98
+ if (input.runId)
99
+ version.runId = input.runId;
100
+ if (input.sourceVersionId)
101
+ version.sourceVersionId = input.sourceVersionId;
102
+ if (input.sourceCheckpointId)
103
+ version.sourceCheckpointId = input.sourceCheckpointId;
104
+ const updatedWorkspace = { ...workspace, headVersionId: version.id, updatedAt: version.createdAt };
105
+ this.versions.set(version.id, version);
106
+ this.versionIdsByIdempotencyKey.set(version.idempotencyKey, version.id);
107
+ this.workspaces.set(workspace.id, updatedWorkspace);
108
+ await this.persist();
109
+ return { workspace: updatedWorkspace, version, created: true };
110
+ }
111
+ async createWorkspaceCheckpoint(input) {
112
+ const workspace = this.requireWorkspace(input.workspaceId);
113
+ const version = this.requireVersion(input.versionId);
114
+ if (version.workspaceId !== workspace.id)
115
+ throw new Error(`Workspace version does not belong to workspace: ${version.id}`);
116
+ const key = checkpointKey(workspace.id, input.name);
117
+ const existing = this.checkpoints.get(key);
118
+ if (existing && !input.replace)
119
+ throw new Error(`Workspace checkpoint already exists: ${input.name}`);
120
+ const now = timestamp();
121
+ const checkpoint = {
122
+ id: existing?.id ?? randomUUID(),
123
+ workspaceId: workspace.id,
124
+ name: input.name,
125
+ versionId: version.id,
126
+ createdAt: existing?.createdAt ?? now,
127
+ updatedAt: now
128
+ };
129
+ this.checkpoints.set(key, checkpoint);
130
+ await this.persist();
131
+ return checkpoint;
132
+ }
133
+ async getWorkspaceCheckpoint(workspaceId, name) {
134
+ return this.checkpoints.get(checkpointKey(workspaceId, name));
135
+ }
136
+ async listWorkspaceCheckpoints(workspaceId) {
137
+ return [...this.checkpoints.values()]
138
+ .filter((checkpoint) => checkpoint.workspaceId === workspaceId)
139
+ .sort((a, b) => a.name.localeCompare(b.name));
140
+ }
141
+ async deleteWorkspaceCheckpoint(workspaceId, name) {
142
+ const deleted = this.checkpoints.delete(checkpointKey(workspaceId, name));
143
+ if (deleted)
144
+ await this.persist();
145
+ return deleted;
146
+ }
147
+ async forkWorkspace(input) {
148
+ const sourceWorkspace = this.requireWorkspace(input.sourceWorkspaceId);
149
+ const sourceVersion = this.requireVersion(input.sourceVersionId);
150
+ if (sourceVersion.workspaceId !== sourceWorkspace.id) {
151
+ throw new Error(`Workspace version does not belong to source workspace: ${sourceVersion.id}`);
152
+ }
153
+ const existingById = input.id ? this.workspaces.get(input.id) : undefined;
154
+ if (existingById)
155
+ return assertMatchingFork(existingById, input);
156
+ const existingId = this.workspaceIdsByScopeKey.get(input.scopeKey);
157
+ if (existingId)
158
+ return assertMatchingFork(this.requireWorkspace(existingId), input);
159
+ const now = timestamp();
160
+ const workspace = {
161
+ id: input.id ?? randomUUID(),
162
+ scopeKey: input.scopeKey,
163
+ scope: input.scope,
164
+ sourceWorkspaceId: sourceWorkspace.id,
165
+ sourceVersionId: sourceVersion.id,
166
+ metadata: input.metadata ?? {},
167
+ createdAt: now,
168
+ updatedAt: now
169
+ };
170
+ if (input.name)
171
+ workspace.name = input.name;
172
+ const forkVersion = {
173
+ ...sourceVersion,
174
+ id: randomUUID(),
175
+ workspaceId: workspace.id,
176
+ sourceVersionId: sourceVersion.id,
177
+ reason: "fork",
178
+ idempotencyKey: `workspace-fork:${workspace.id}:${sourceVersion.id}`,
179
+ metadata: { sourceWorkspaceId: sourceWorkspace.id },
180
+ createdAt: now
181
+ };
182
+ delete forkVersion.parentVersionId;
183
+ delete forkVersion.runId;
184
+ delete forkVersion.sourceCheckpointId;
185
+ workspace.headVersionId = forkVersion.id;
186
+ this.workspaces.set(workspace.id, workspace);
187
+ this.workspaceIdsByScopeKey.set(workspace.scopeKey, workspace.id);
188
+ this.versions.set(forkVersion.id, forkVersion);
189
+ this.versionIdsByIdempotencyKey.set(forkVersion.idempotencyKey, forkVersion.id);
190
+ await this.persist();
191
+ return workspace;
192
+ }
193
+ async replaceWorkspaceSearchChunks(input) {
194
+ this.requireWorkspace(input.workspaceId);
195
+ const version = this.requireVersion(input.versionId);
196
+ if (version.workspaceId !== input.workspaceId)
197
+ throw new Error(`Workspace version does not belong to workspace: ${version.id}`);
198
+ for (const [id, chunk] of this.searchChunks) {
199
+ if (chunk.workspaceId === input.workspaceId && chunk.versionId === input.versionId)
200
+ this.searchChunks.delete(id);
201
+ }
202
+ for (const chunk of input.chunks)
203
+ this.searchChunks.set(chunk.id, chunk);
204
+ const index = {
205
+ workspaceId: input.workspaceId,
206
+ versionId: input.versionId,
207
+ chunkCount: input.chunks.length,
208
+ indexedAt: timestamp(),
209
+ ...(input.embeddingModel ? { embeddingModel: input.embeddingModel } : {})
210
+ };
211
+ if (this.requireWorkspace(input.workspaceId).headVersionId === input.versionId) {
212
+ this.searchIndexes.set(input.workspaceId, index);
213
+ }
214
+ await this.persist();
215
+ return index;
216
+ }
217
+ async getWorkspaceSearchIndex(workspaceId) {
218
+ return this.searchIndexes.get(workspaceId);
219
+ }
220
+ async listWorkspaceSearchChunks(workspaceId, versionId) {
221
+ return [...this.searchChunks.values()]
222
+ .filter((chunk) => chunk.workspaceId === workspaceId && chunk.versionId === versionId)
223
+ .sort((a, b) => a.path.localeCompare(b.path) || a.startLine - b.startLine);
224
+ }
225
+ async searchWorkspaceChunks(input) {
226
+ const terms = searchTerms(input.query);
227
+ const limit = Math.max(1, Math.min(100, Math.floor(input.limit ?? 8)));
228
+ return (await this.listWorkspaceSearchChunks(input.workspaceId, input.versionId))
229
+ .map((chunk) => ({ chunk, score: lexicalScore(chunk, terms) }))
230
+ .filter((entry) => entry.score > 0)
231
+ .sort((a, b) => b.score - a.score || a.chunk.path.localeCompare(b.chunk.path) || a.chunk.startLine - b.chunk.startLine)
232
+ .slice(0, limit)
233
+ .map(({ chunk, score }) => ({
234
+ path: chunk.path,
235
+ versionId: chunk.versionId,
236
+ startLine: chunk.startLine,
237
+ endLine: chunk.endLine,
238
+ snippet: chunk.content,
239
+ score,
240
+ rankingSource: "full_text"
241
+ }));
242
+ }
243
+ async searchWorkspaceEmbeddings(input) {
244
+ const limit = Math.max(1, Math.min(100, Math.floor(input.limit ?? 8)));
245
+ return (await this.listWorkspaceSearchChunks(input.workspaceId, input.versionId))
246
+ .filter((chunk) => chunk.embedding && (!chunk.embeddingModel || chunk.embeddingModel === input.model))
247
+ .map((chunk) => ({ chunk, score: cosineSimilarity(input.embedding, chunk.embedding ?? []) }))
248
+ .filter(({ score }) => score > 0)
249
+ .sort((a, b) => b.score - a.score || a.chunk.path.localeCompare(b.chunk.path) || a.chunk.startLine - b.chunk.startLine)
250
+ .slice(0, limit)
251
+ .map(({ chunk, score }) => ({
252
+ path: chunk.path,
253
+ versionId: chunk.versionId,
254
+ startLine: chunk.startLine,
255
+ endLine: chunk.endLine,
256
+ snippet: chunk.content,
257
+ score,
258
+ rankingSource: "semantic"
259
+ }));
260
+ }
261
+ async deleteWorkspaceVersions(workspaceId, versionIds) {
262
+ const workspace = this.requireWorkspace(workspaceId);
263
+ const requestedVersionIds = [...new Set(versionIds)].sort();
264
+ const checkpointVersions = new Set([...this.checkpoints.values()].filter((checkpoint) => checkpoint.workspaceId === workspaceId).map((checkpoint) => checkpoint.versionId));
265
+ const forkSourceVersions = new Set([...this.workspaces.values()]
266
+ .filter((candidate) => candidate.sourceWorkspaceId === workspaceId && candidate.sourceVersionId)
267
+ .map((candidate) => candidate.sourceVersionId));
268
+ const deletedVersionIds = [];
269
+ for (const versionId of requestedVersionIds) {
270
+ const version = this.versions.get(versionId);
271
+ if (!version || version.workspaceId !== workspaceId)
272
+ continue;
273
+ if (workspace.headVersionId === versionId || checkpointVersions.has(versionId) || forkSourceVersions.has(versionId))
274
+ continue;
275
+ this.versions.delete(versionId);
276
+ this.versionIdsByIdempotencyKey.delete(version.idempotencyKey);
277
+ for (const [chunkId, chunk] of this.searchChunks) {
278
+ if (chunk.versionId === versionId)
279
+ this.searchChunks.delete(chunkId);
280
+ }
281
+ deletedVersionIds.push(versionId);
282
+ }
283
+ if (deletedVersionIds.length > 0) {
284
+ const deleted = new Set(deletedVersionIds);
285
+ for (const [versionId, version] of this.versions) {
286
+ if (version.parentVersionId && deleted.has(version.parentVersionId)) {
287
+ const { parentVersionId: _parentVersionId, ...withoutParent } = version;
288
+ this.versions.set(versionId, withoutParent);
289
+ }
290
+ }
291
+ await this.persist();
292
+ }
293
+ return { workspaceId, requestedVersionIds, deletedVersionIds };
294
+ }
295
+ async repairWorkspaceHead(input) {
296
+ const workspace = this.requireWorkspace(input.workspaceId);
297
+ const actualHeadVersionId = workspace.headVersionId ?? null;
298
+ if (actualHeadVersionId !== input.expectedHeadVersionId) {
299
+ throw new WorkspaceConflictError(workspace.id, input.expectedHeadVersionId, actualHeadVersionId);
300
+ }
301
+ const target = this.requireVersion(input.targetVersionId);
302
+ if (target.workspaceId !== workspace.id)
303
+ throw new Error(`Workspace version does not belong to workspace: ${target.id}`);
304
+ const updated = { ...workspace, headVersionId: target.id, updatedAt: timestamp() };
305
+ this.workspaces.set(workspace.id, updated);
306
+ await this.persist();
307
+ return updated;
308
+ }
309
+ requireWorkspace(id) {
310
+ const workspace = this.workspaces.get(id);
311
+ if (!workspace)
312
+ throw new Error(`Workspace not found: ${id}`);
313
+ return workspace;
314
+ }
315
+ requireVersion(id) {
316
+ const version = this.versions.get(id);
317
+ if (!version)
318
+ throw new Error(`Workspace version not found: ${id}`);
319
+ return version;
320
+ }
321
+ }
322
+ function searchTerms(query) {
323
+ return [...new Set(query.toLowerCase().match(/[\p{L}\p{N}_-]+/gu) ?? [])];
324
+ }
325
+ function lexicalScore(chunk, terms) {
326
+ if (terms.length === 0)
327
+ return 0;
328
+ const path = chunk.path.toLowerCase();
329
+ const content = chunk.content.toLowerCase();
330
+ let score = 0;
331
+ for (const term of terms) {
332
+ if (path.includes(term))
333
+ score += 3;
334
+ let index = content.indexOf(term);
335
+ while (index >= 0) {
336
+ score += 1;
337
+ index = content.indexOf(term, index + term.length);
338
+ }
339
+ }
340
+ return score;
341
+ }
342
+ function checkpointKey(workspaceId, name) {
343
+ return `${workspaceId}\u0000${name}`;
344
+ }
345
+ function assertMatchingFork(workspace, input) {
346
+ if (workspace.scopeKey !== input.scopeKey ||
347
+ workspace.scope.agentScope !== input.scope.agentScope ||
348
+ workspace.scope.tenantId !== input.scope.tenantId ||
349
+ workspace.sourceWorkspaceId !== input.sourceWorkspaceId ||
350
+ workspace.sourceVersionId !== input.sourceVersionId) {
351
+ throw new Error(`Workspace fork identity is already in use: ${workspace.id}`);
352
+ }
353
+ return workspace;
354
+ }
355
+ function cosineSimilarity(left, right) {
356
+ if (left.length === 0 || left.length !== right.length)
357
+ return 0;
358
+ let dot = 0;
359
+ let leftMagnitude = 0;
360
+ let rightMagnitude = 0;
361
+ for (let index = 0; index < left.length; index += 1) {
362
+ const a = left[index] ?? 0;
363
+ const b = right[index] ?? 0;
364
+ dot += a * b;
365
+ leftMagnitude += a * a;
366
+ rightMagnitude += b * b;
367
+ }
368
+ return leftMagnitude > 0 && rightMagnitude > 0 ? dot / (Math.sqrt(leftMagnitude) * Math.sqrt(rightMagnitude)) : 0;
369
+ }
370
+ //# sourceMappingURL=in-memory-workspace-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-workspace-store.js","sourceRoot":"","sources":["../src/in-memory-workspace-store.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,55 +1,53 @@
1
- export { builtInToolDefaults } from "./builtin-tools.js";
1
+ export * from "./public-api.js";
2
+ export { builtInToolDefaults, FILES_MOUNT_TOOL_NAME, FILES_SEARCH_TOOL_NAME, HISTORY_SEARCH_TOOL_NAME, PAIR_TOOL_NAME } from "./builtin-tools.js";
3
+ export { inspectAgentCapabilities, type CapabilityInspectionInput, type CapabilityInspectionReport } from "./capability-inspection.js";
4
+ export { CONNECTION_PAIRING_UNAVAILABLE_EVENT, executePairTool } from "./builtin-tool-executors.js";
2
5
  import { type ResolvedCoreToolPolicy } from "./security.js";
3
6
  export type { CoreToolMode, CoreToolPolicy, ResolvedCoreToolPolicy } from "./security.js";
4
7
  export { constantTimeSecretEqual } from "./security.js";
5
8
  export { RUN_STREAM_TERMINAL_EVENTS, type RunStreamEvent, type RunStreamListener } from "./run-stream.js";
6
9
  export { failRun, type RunFailureInput, type RunFailureReason } from "./run-outcome.js";
7
10
  import type { ChannelAcceptedTurn, ChannelAcceptedTurnResult, ChannelHttpRequest, ChannelHttpResponse, RuntimeChannelIngressController } from "./channel.js";
8
- export type { ChannelAcceptedTurn, ChannelAcceptedTurnResult, ChannelAttachmentRequest, ChannelContext, ChannelDelivery, ChannelHttpRequest, ChannelHttpResponse, ChannelHttpResponseBody, ChannelHttpResult, ChannelIngressAuthDescriptor, ChannelIngressEmitter, ChannelIngressLifecycle, ChannelModule, ChannelPrincipalResolution, ChannelTurn, ChannelTurnLifecycle, RuntimeChannelIngressController } from "./channel.js";
11
+ export type { ChannelAgentApi, ChannelAcceptedTurn, ChannelAcceptedTurnResult, ChannelAttachmentRequest, ChannelContext, ChannelDelivery, ChannelHttpRequest, ChannelHttpResponse, ChannelHttpResponseBody, ChannelHttpResult, ChannelIngressAuthDescriptor, ChannelIngressEmitter, ChannelIngressLifecycle, ChannelModule, ChannelObservation, ChannelPrincipalResolution, ChannelTurn, ChannelTurnCoalescing, ChannelTurnLifecycle, RuntimeChannelIngressController } from "./channel.js";
12
+ export { MAX_CHANNEL_TURN_COALESCING_WINDOW_MS, QUEUED_CHANNEL_TURN_COALESCING_KEY, QUEUED_CHANNEL_TURN_KEY, QUEUED_CHANNEL_TURN_MERGED_INTO_KEY, QUEUED_CHANNEL_TURN_PARTS_KEY } from "./conversation-turn-coalescing.js";
9
13
  import { type AgentManifest, type AutomationEvent, type JsonObject, type SandboxSnapshotPolicy, type SandboxSession, type ScheduleTriggerDefinition } from "@assemblyline-agents/core";
10
14
  import { type RunStreamListener } from "./run-stream.js";
11
15
  export { sandboxSessionKeyForRun } from "./sandbox-session-key.js";
16
+ import { type ConnectionEventStore } from "./connection-event-store.js";
17
+ import { type ConnectionEventIngressResponse, type ConnectionEventWireResult } from "./connection-events.js";
12
18
  import { type ConnectionAuthorizationSessionStore, type ConnectionGrantStore } from "./connections.js";
19
+ export { FileConnectionEventStore, InMemoryConnectionEventStore, type ConnectionEventInboxRecord, type ConnectionEventRegistration, type ConnectionEventStore } from "./connection-event-store.js";
20
+ export { connectionEventUrl, type ConnectionEventIngressResponse, type ConnectionEventWireResult } from "./connection-events.js";
13
21
  import { type ConnectionDefinitionStore, type DynamicScheduleRecord, type ResolvedSkillsConfig, type ResolvedSchedulesConfig, type ResolvedConnectionsConfig, type ScheduleStore, type SkillStore, type StoredConnectionProtocol } from "./self-improvement.js";
14
22
  import { type LearningStore } from "./learning-store.js";
15
23
  import { type RuntimeSkillWriteInput } from "./runtime-learning.js";
24
+ import { type MediaProcessor } from "./turn-media.js";
25
+ export { mergeJsonObjects, processTurnMedia, type MediaProcessor, type MediaProcessorAttachment, type MediaProcessorInput, type MediaProcessorResult } from "./turn-media.js";
16
26
  export { attachmentFetchTimeoutMs, attachmentRemoteUrl, attachmentTrustedForProvider, firstDownloadableUrl } from "./attachments.js";
27
+ export { assertExternalHttpUrl, fetchExternalHttp, isPublicAddress, type AttachmentHostResolver } from "./outbound-http-policy.js";
17
28
  import { type RuntimeSchedulerController, type SchedulerAdapter } from "./scheduler.js";
18
29
  import { type TelemetrySink } from "./telemetry.js";
19
30
  import { type RuntimeLogger } from "./logging.js";
20
31
  import { type DeliveryExecutionResult, type DeliveryLeaseOptions } from "./delivery-queue.js";
21
32
  import { type BackgroundWorkerOptions, type BackgroundWorkersController, type RunRecoveryOptions } from "./run-recovery.js";
33
+ import { type SkillBundleIndex, type SkillResourceReader } from "./skill-bundles.js";
34
+ import { WorkspaceRuntimeMethods } from "./workspace-runtime.js";
35
+ export { RunReplayError, type RunReplayErrorCode } from "./run-replay.js";
22
36
  import { getAgentControlImpl } from "./operator-controls.js";
23
37
  import { type ResolvedCheckpointRetentionPolicy } from "./checkpoints.js";
24
38
  import type { CheckpointRecord, CheckpointRetentionOptions, CheckpointRetentionResult, DeliveryObligation, MemoryEmbeddingProvider, MemoryScope, RunEvent, RunRecord, ResolvedStateAdapter, SandboxSyncDiagnostics, SandboxSyncExecutionResult, SandboxSyncJobInspection, SandboxSyncJobRecord, ScheduleRecord, ToolCallRecord, UsageRecord } from "./state.js";
25
39
  export * from "./state.js";
26
40
  export * from "./principals.js";
41
+ export * from "./audience.js";
27
42
  export { evalRunOptionsForRun, validateEvalRunOptions, type EvalRunOptions, type EvalToolStubSpec } from "./eval-run-options.js";
28
- export { InMemoryConversationStore, InMemoryConversationTurnStore, InMemoryFileIndexStore, InMemoryMemoryStateStore, InMemoryRunStore, InMemorySandboxSessionStore, InMemoryScheduleStateStore, InMemoryUsageStore, composeStateStores, normalizeRuntimeState, type NormalizedRuntimeState } from "./state-stores.js";
43
+ export { InMemoryConversationStore, InMemoryConversationTurnStore, InMemoryFileIndexStore, InMemoryMemoryStateStore, InMemoryRunStore, InMemorySandboxSessionStore, InMemoryScheduleStateStore, InMemoryUsageStore, InMemoryWorkspaceStore, composeStateStores, normalizeMemoryPath, normalizeRuntimeState, type NormalizedRuntimeState } from "./state-stores.js";
44
+ export * from "./workspace.js";
29
45
  export { applyDeliveryPatch, createDeliveryRecord, deliveryQueueRetryDelayMs, isDeliveryDue, normalizeDeliveryRecord, stateSupportsDeliveryQueue, type DeliveryExecutionResult, type DeliveryFailureInput, type DeliveryLeaseOptions, type DeliveryObligationInput, type DeliveryObligationPatch } from "./delivery-queue.js";
30
46
  export { defaultRunStaleAfterMs, type BackgroundWorkerOptions, type BackgroundWorkersController, type RunRecoveryOptions } from "./run-recovery.js";
31
47
  export { BoundedSemaphore, RunCapacityError, retryAfterSeconds, type BoundedSemaphoreOptions, type SemaphoreAdmission } from "./concurrency.js";
32
48
  export type { CheckpointRetentionPolicy } from "./checkpoints.js";
33
- export type { AgentHarness, AgentHarnessContext, AgentHarnessEvent, AgentTurnInput, AgentTurnResult, HarnessContinuation, HarnessToolDescriptor, HarnessToolOutcome } from "@assemblyline-agents/core";
34
- export { FileConnectionAuthorizationSessionStore, FileConnectionGrantStore, InMemoryConnectionAuthorizationSessionStore, InMemoryConnectionGrantStore, RuntimeConnectionRegistry, connectionToolAccess, type ConnectionAuthorizationSessionRecord, type ConnectionAuthorizationSessionStore, type ConnectionCredentialMaterialization, type MaterializedConnectionCredential, type ConnectionGrantStore, type StoredConnectionGrant } from "./connections.js";
35
- export { FileConnectionDefinitionStore, FileScheduleStore, FileSkillStore, InMemoryConnectionDefinitionStore, InMemoryScheduleStore, InMemorySkillStore, computeNextRun, resolveSkillsConfig, resolveSchedulesConfig, resolveConnectionsConfig, type ConnectionDefinitionStore, type CreateDynamicScheduleInput, type DynamicScheduleRecord, type ScheduleStore, type SkillStore, type StoredConnectionDefinition, type StoredSkill } from "./self-improvement.js";
36
- export { FileLearningStore, InMemoryLearningStore, type BackgroundReviewJobRecord, type LearningStore, type PendingSkillChangeRecord, type SkillRevisionRecord } from "./learning-store.js";
37
- export { LocalSandboxAdapter } from "./local-sandbox.js";
38
- export { FileMemoryStore, FileStateAdapter, InMemoryMemoryStore, InMemoryStateAdapter, LocalBlobAdapter, StateMemoryStore } from "./storage.js";
39
- export { gatewaySchedulerAdapter, localSchedulerAdapter, postgresSchedulerAdapter, schedulerAdapterForKind, type RuntimeSchedulerController, type SchedulerAdapter } from "./scheduler.js";
40
- export { createOpenTelemetrySink, type OpenTelemetrySpanExporter, type TelemetrySink, type TelemetrySpan } from "./telemetry.js";
41
- export { createJsonConsoleLogger, noopLogger, normalizeLogLevel, type LogLevel, type RuntimeLogger } from "./logging.js";
42
- export { capabilityCatalogForManifest, capabilityForModel, capabilityMatchesId, connectionSearchResultForModel, normalizeCapabilityKind, normalizeCapabilityRouterInput, normalizeDeferredToolSearchInput, routerShouldSearchConnections, scoreCapability, searchCapabilityCatalog, tokenizeCapabilityQuery, type CapabilityRouterInput } from "./capability-catalog.js";
43
- export { fetchJson, fetchWithPolicy, readBodyCapped, retryAfterMs, HttpResponseTooLargeError, type HttpJsonResult, type HttpRequestPolicy } from "./http.js";
44
- export { buildDefaultContextBundle, hydrateSandboxFilesystem, syncSandboxFilesystem, visibleToolsForSkills } from "./sandbox-fs.js";
45
- export { queryAgentRuns, type AgentRunsQueryResult } from "./runs-query.js";
46
- export { UsageAccountingError, createUsageRecord, matchesUsageQuery, microsToUsd, queryUsageRecords, reconcileUsageRecord, sha256Json, summarizeUsageRecords, usageTokensAreAuthoritative, usageRecordInput, usdToMicros } from "./usage-records.js";
47
- export { reconcileOpenAIOrganization, reconcileOpenRouterUsage, usageReconciliationReport, type OpenAIOrganizationReconciliationOptions, type OpenRouterReconciliationOptions, type ProviderReconciliationResult, type UsageReconciliationReport } from "./usage-reconciliation.js";
48
- export { currentModulePath, durableAgentScopeForManifest } from "./runtime-util.js";
49
49
  import type { BlobAdapter, ConnectionAuthorizationCallbackResult, DynamicConnectionGrantInput, MemoryDocumentBackfillResult, MemoryEmbeddingBackfillResult, MemoryStore, ResolvedResourceProjectionPolicy, RunAgentOptions, RunAgentResult, RuntimeOptions, SandboxAdapter, AutomationEventDispatchResult, ScheduleExecutionResult } from "./runtime-types.js";
50
- export type { BlobAdapter, BlobPutOptions, BlobRecord, BlobVisibility, ConnectionAuthorizationCallbackResult, ContextBundle, DynamicConnectionGrantInput, FilesystemSyncResult, MemoryDocumentBackfillResult, MemoryEmbeddingBackfillResult, MemoryStore, ResourceProjectionPolicy, RunAgentOptions, RunAgentResult, RuntimeInstrumentationOverride, RuntimeOptions, SandboxAdapter, SandboxCreateInput, SandboxLookupInput, SandboxLookupResult, SandboxReconnectInput, AutomationEventDispatchResult, ScheduleExecutionResult } from "./runtime-types.js";
51
- export { loadRuntimeBundle } from "./runtime-bundle.js";
52
- export declare class AssemblyLineRuntime {
50
+ export declare class AssemblyLineRuntime extends WorkspaceRuntimeMethods {
53
51
  readonly manifest: AgentManifest;
54
52
  readonly state: ResolvedStateAdapter;
55
53
  private readonly runEventBus;
@@ -59,6 +57,7 @@ export declare class AssemblyLineRuntime {
59
57
  readonly blob: BlobAdapter;
60
58
  readonly sandbox: SandboxAdapter;
61
59
  readonly scheduler: SchedulerAdapter;
60
+ readonly mediaProcessors: MediaProcessor[];
62
61
  readonly deliveryMode: "send" | "record-only";
63
62
  private readonly toolStubs;
64
63
  /** Per-run {results:[...]} stub cursors; in-memory by design (see eval-run-options.ts). */
@@ -76,9 +75,11 @@ export declare class AssemblyLineRuntime {
76
75
  readonly connections: Record<string, unknown>;
77
76
  readonly env: Record<string, string | undefined>;
78
77
  readonly fetch: typeof fetch;
78
+ readonly attachmentHostResolver: import("./outbound-http-policy.js").AttachmentHostResolver | undefined;
79
79
  readonly logger: RuntimeLogger;
80
80
  readonly connectionGrantStore: ConnectionGrantStore;
81
81
  readonly connectionAuthorizationSessionStore: ConnectionAuthorizationSessionStore;
82
+ readonly connectionEventStore: ConnectionEventStore;
82
83
  readonly connectionCallbackBaseUrl: string | undefined;
83
84
  readonly skillStore: SkillStore;
84
85
  readonly learningStore: LearningStore;
@@ -123,9 +124,13 @@ export declare class AssemblyLineRuntime {
123
124
  private readonly hostInstrumentationProvided;
124
125
  private instrumentationConfig;
125
126
  private readonly sourceLoader;
127
+ readonly skillBundleIndex: SkillBundleIndex;
128
+ readonly skillResourceReader: SkillResourceReader;
126
129
  private contextPolicyPromise;
127
130
  /** Fast local view of durable control intents, refreshed by run heartbeats. */
128
131
  private readonly runControlIntents;
132
+ /** Runs currently owned by this process, used to route immediate control signals without leaking orphan ids. */
133
+ private readonly activeRunExecutions;
129
134
  /** Deadline-fired runs (read by shouldStopRun) + their in-flight abort controllers. */
130
135
  private readonly runDeadlines;
131
136
  private readonly runAbortControllers;
@@ -142,37 +147,42 @@ export declare class AssemblyLineRuntime {
142
147
  private hydrateCheckpointData;
143
148
  private logDevProviderIngressSecurity;
144
149
  private skillScope;
150
+ private skillScopeForSurface;
151
+ private skillScopeForRun;
152
+ private skillsConfigForSurface;
153
+ private skillsConfigForRun;
154
+ private anySkillsEnabled;
145
155
  private connectionScope;
146
156
  private durableAgentScope;
147
157
  private usesRevisionScopedDurableState;
148
158
  private scheduleScopeForRun;
149
159
  /** Seed the durable skill store from compiled manifest skills (idempotent). */
150
- ensureSkillsSeeded(): Promise<void>;
160
+ ensureSkillsSeeded(surfacePath?: string): Promise<void>;
151
161
  private migrateLegacyConnectionScope;
152
162
  /** Live skill catalog (durable store, post-seed) for context assembly and inspection. */
153
- listSkills(): Promise<{
163
+ listSkills(surfacePath?: string): Promise<{
154
164
  name: string;
155
165
  description: string;
156
166
  origin: string;
157
167
  pending: boolean;
158
168
  }[]>;
159
169
  /** Persist an agent/user authored skill, honoring the write-approval gate. */
160
- saveSkill(input: RuntimeSkillWriteInput): Promise<{
170
+ saveSkill(input: RuntimeSkillWriteInput, surfacePath?: string): Promise<{
161
171
  name: string;
162
172
  pending: boolean;
163
173
  }>;
164
- deleteSkill(name: string): Promise<void>;
165
- listSkillRevisions(name: string): Promise<import("./learning-store.js").SkillRevisionRecord[]>;
166
- restoreSkillRevision(name: string, revision: number): Promise<{
174
+ deleteSkill(name: string, surfacePath?: string): Promise<void>;
175
+ listSkillRevisions(name: string, surfacePath?: string): Promise<import("./learning-store.js").SkillRevisionRecord[]>;
176
+ restoreSkillRevision(name: string, revision: number, surfacePath?: string): Promise<{
167
177
  name: string;
168
178
  pending: boolean;
169
179
  }>;
170
- listPendingSkillChanges(): Promise<import("./learning-store.js").PendingSkillChangeRecord[]>;
171
- approveSkillChange(id: string): Promise<{
180
+ listPendingSkillChanges(surfacePath?: string): Promise<import("./learning-store.js").PendingSkillChangeRecord[]>;
181
+ approveSkillChange(id: string, surfacePath?: string): Promise<{
172
182
  name: string;
173
183
  action: string;
174
184
  }>;
175
- rejectSkillChange(id: string): Promise<void>;
185
+ rejectSkillChange(id: string, surfacePath?: string): Promise<void>;
176
186
  recordRunFeedback(runId: string, feedback: {
177
187
  rating: "positive" | "negative";
178
188
  comment?: string;
@@ -180,7 +190,7 @@ export declare class AssemblyLineRuntime {
180
190
  jobId: string;
181
191
  status: string;
182
192
  }>;
183
- listBackgroundReviews(): Promise<import("./learning-store.js").BackgroundReviewJobRecord[]>;
193
+ listBackgroundReviews(surfacePath?: string): Promise<import("./learning-store.js").BackgroundReviewJobRecord[]>;
184
194
  runDueBackgroundReviews(options?: {
185
195
  now?: Date;
186
196
  limit?: number;
@@ -270,7 +280,6 @@ export declare class AssemblyLineRuntime {
270
280
  private buildContextBundle;
271
281
  private harnessLoopHost;
272
282
  private resolveAgentHarness;
273
- private piHarness;
274
283
  private runHarnessLoop;
275
284
  /** Load the conversation's stored transcript for resume, or undefined when disabled/absent. */
276
285
  private loadConversationTranscript;
@@ -282,6 +291,10 @@ export declare class AssemblyLineRuntime {
282
291
  startChannelIngress(): Promise<RuntimeChannelIngressController | undefined>;
283
292
  private replayResumeHost;
284
293
  replay(runId: string): Promise<RunTimeline>;
294
+ /** Start a new, isolated run from a terminal run's verified durable input snapshot. */
295
+ rerun(runId: string, lifecycle?: {
296
+ onRunCreated?: RunAgentOptions["onRunCreated"];
297
+ }): Promise<RunAgentResult>;
285
298
  /** Resumes never consume run capacity (deadlock risk); they only count toward `onIdle()`. */
286
299
  resumeApproval(runId: string): Promise<RunAgentResult>;
287
300
  private resumeApprovalNow;
@@ -309,6 +322,31 @@ export declare class AssemblyLineRuntime {
309
322
  status: "unavailable";
310
323
  reason: string;
311
324
  }>;
325
+ private connectionEventsHost;
326
+ reconcileConnectionEvents(options?: {
327
+ connection?: string;
328
+ principal?: import("@assemblyline-agents/core").ConnectionPrincipal;
329
+ force?: boolean;
330
+ publicUrl?: string;
331
+ }): Promise<ConnectionEventWireResult[]>;
332
+ checkConnectionEvents(connection?: string): Promise<ConnectionEventWireResult[]>;
333
+ acceptConnectionEvent(connectionName: string, bindingId: string, request: import("@assemblyline-agents/core").ConnectionEventRequest): Promise<ConnectionEventIngressResponse>;
334
+ runDueConnectionEvents(options?: {
335
+ now?: Date;
336
+ limit?: number;
337
+ leaseForMs?: number;
338
+ }): Promise<{
339
+ id: string;
340
+ status: "completed" | "retrying" | "failed";
341
+ error?: string;
342
+ }[]>;
343
+ startConnectionEventWorker(options?: {
344
+ intervalMs?: number;
345
+ batchSize?: number;
346
+ leaseForMs?: number;
347
+ }): {
348
+ stop(): void;
349
+ };
312
350
  /** Resumes never consume run capacity (deadlock risk); they only count toward `onIdle()`. */
313
351
  resumeInput(runId: string, answer: string): Promise<RunAgentResult>;
314
352
  private resumeInputNow;
@@ -393,7 +431,6 @@ export declare class AssemblyLineRuntime {
393
431
  private deliverySendHost;
394
432
  private completeRun;
395
433
  private latestRunFailureMessage;
396
- private enqueueSandboxSyncAfterDelivery;
397
434
  private sandboxSyncWorkerHost;
398
435
  sandboxSyncDiagnostics(options?: {
399
436
  runId?: string;
@@ -462,6 +499,7 @@ export declare class AssemblyLineRuntime {
462
499
  private readResourceForRun;
463
500
  private projectResourcesForRun;
464
501
  private projectSkillIntoSandbox;
502
+ private projectLoadedSkillsIntoSandbox;
465
503
  private hydrateLogicalPathForTool;
466
504
  private recordSandboxTombstone;
467
505
  private readSandboxTombstonesWithMissingProjectedFiles;
@@ -478,11 +516,10 @@ export declare class AssemblyLineRuntime {
478
516
  private handleRuntimeEvent;
479
517
  private createAgentHookController;
480
518
  private createSubagentHookController;
519
+ private disabledToolsForRun;
481
520
  private agentStateForRun;
482
521
  private ensureAgentHookController;
483
- private resolvedInstructionsForRun;
484
522
  private loadTool;
485
- private loadInstrumentationModule;
486
523
  private result;
487
524
  }
488
525
  export interface RunTimeline {