@assemblyline-agents/runtime 1.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 (460) 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-capability-snapshot.d.ts +32 -0
  7. package/dist/agent-capability-snapshot.d.ts.map +1 -0
  8. package/dist/agent-capability-snapshot.js +77 -0
  9. package/dist/agent-capability-snapshot.js.map +1 -0
  10. package/dist/agent-event-handlers.d.ts +21 -0
  11. package/dist/agent-event-handlers.d.ts.map +1 -0
  12. package/dist/agent-event-handlers.js +64 -0
  13. package/dist/agent-event-handlers.js.map +1 -0
  14. package/dist/agent-hook-context.d.ts +8 -0
  15. package/dist/agent-hook-context.d.ts.map +1 -0
  16. package/dist/agent-hook-context.js +29 -0
  17. package/dist/agent-hook-context.js.map +1 -0
  18. package/dist/agent-hook-evaluation.d.ts +61 -0
  19. package/dist/agent-hook-evaluation.d.ts.map +1 -0
  20. package/dist/agent-hook-evaluation.js +197 -0
  21. package/dist/agent-hook-evaluation.js.map +1 -0
  22. package/dist/agent-hook-run-lifecycle.d.ts +44 -0
  23. package/dist/agent-hook-run-lifecycle.d.ts.map +1 -0
  24. package/dist/agent-hook-run-lifecycle.js +76 -0
  25. package/dist/agent-hook-run-lifecycle.js.map +1 -0
  26. package/dist/agent-state.d.ts +31 -0
  27. package/dist/agent-state.d.ts.map +1 -0
  28. package/dist/agent-state.js +80 -0
  29. package/dist/agent-state.js.map +1 -0
  30. package/dist/agent-surface.d.ts +32 -0
  31. package/dist/agent-surface.d.ts.map +1 -0
  32. package/dist/agent-surface.js +85 -0
  33. package/dist/agent-surface.js.map +1 -0
  34. package/dist/attachments.d.ts +5 -1
  35. package/dist/attachments.d.ts.map +1 -1
  36. package/dist/attachments.js +58 -32
  37. package/dist/attachments.js.map +1 -1
  38. package/dist/audience.d.ts +30 -0
  39. package/dist/audience.d.ts.map +1 -0
  40. package/dist/audience.js +68 -0
  41. package/dist/audience.js.map +1 -0
  42. package/dist/authored-hooks.d.ts +6 -0
  43. package/dist/authored-hooks.d.ts.map +1 -0
  44. package/dist/authored-hooks.js +17 -0
  45. package/dist/authored-hooks.js.map +1 -0
  46. package/dist/automation-event-match.d.ts +8 -0
  47. package/dist/automation-event-match.d.ts.map +1 -0
  48. package/dist/automation-event-match.js +25 -0
  49. package/dist/automation-event-match.js.map +1 -0
  50. package/dist/background-review-trigger.d.ts +9 -0
  51. package/dist/background-review-trigger.d.ts.map +1 -0
  52. package/dist/background-review-trigger.js +72 -0
  53. package/dist/background-review-trigger.js.map +1 -0
  54. package/dist/background-review-types.d.ts +60 -0
  55. package/dist/background-review-types.d.ts.map +1 -0
  56. package/dist/background-review-types.js +2 -0
  57. package/dist/background-review-types.js.map +1 -0
  58. package/dist/background-review-worker.d.ts +14 -0
  59. package/dist/background-review-worker.d.ts.map +1 -0
  60. package/dist/background-review-worker.js +61 -0
  61. package/dist/background-review-worker.js.map +1 -0
  62. package/dist/background-review.d.ts +5 -0
  63. package/dist/background-review.d.ts.map +1 -0
  64. package/dist/background-review.js +332 -0
  65. package/dist/background-review.js.map +1 -0
  66. package/dist/builtin-tool-executors.d.ts +50 -27
  67. package/dist/builtin-tool-executors.d.ts.map +1 -1
  68. package/dist/builtin-tool-executors.js +332 -124
  69. package/dist/builtin-tool-executors.js.map +1 -1
  70. package/dist/builtin-tools.d.ts +16 -9
  71. package/dist/builtin-tools.d.ts.map +1 -1
  72. package/dist/builtin-tools.js +308 -116
  73. package/dist/builtin-tools.js.map +1 -1
  74. package/dist/capability-catalog.d.ts +3 -2
  75. package/dist/capability-catalog.d.ts.map +1 -1
  76. package/dist/capability-catalog.js +12 -7
  77. package/dist/capability-catalog.js.map +1 -1
  78. package/dist/capability-inspection.d.ts +31 -0
  79. package/dist/capability-inspection.d.ts.map +1 -0
  80. package/dist/capability-inspection.js +58 -0
  81. package/dist/capability-inspection.js.map +1 -0
  82. package/dist/channel-http-util.d.ts.map +1 -1
  83. package/dist/channel-http-util.js +6 -5
  84. package/dist/channel-http-util.js.map +1 -1
  85. package/dist/channel-ingress.d.ts +16 -1
  86. package/dist/channel-ingress.d.ts.map +1 -1
  87. package/dist/channel-ingress.js +152 -14
  88. package/dist/channel-ingress.js.map +1 -1
  89. package/dist/channel.d.ts +73 -3
  90. package/dist/channel.d.ts.map +1 -1
  91. package/dist/checkpoints.d.ts +1 -1
  92. package/dist/checkpoints.d.ts.map +1 -1
  93. package/dist/checkpoints.js +6 -6
  94. package/dist/checkpoints.js.map +1 -1
  95. package/dist/child-process-env.d.ts +7 -0
  96. package/dist/child-process-env.d.ts.map +1 -0
  97. package/dist/child-process-env.js +41 -0
  98. package/dist/child-process-env.js.map +1 -0
  99. package/dist/computer-relay-protocol.d.ts.map +1 -1
  100. package/dist/computer-relay-protocol.js +4 -4
  101. package/dist/computer-relay-protocol.js.map +1 -1
  102. package/dist/concurrency.d.ts +1 -1
  103. package/dist/concurrency.js +1 -1
  104. package/dist/connection-auth-util.d.ts +1 -0
  105. package/dist/connection-auth-util.d.ts.map +1 -1
  106. package/dist/connection-auth-util.js +3 -1
  107. package/dist/connection-auth-util.js.map +1 -1
  108. package/dist/connection-clients.d.ts +11 -3
  109. package/dist/connection-clients.d.ts.map +1 -1
  110. package/dist/connection-clients.js +71 -8
  111. package/dist/connection-clients.js.map +1 -1
  112. package/dist/connection-event-store.d.ts +98 -0
  113. package/dist/connection-event-store.d.ts.map +1 -0
  114. package/dist/connection-event-store.js +162 -0
  115. package/dist/connection-event-store.js.map +1 -0
  116. package/dist/connection-events.d.ts +51 -0
  117. package/dist/connection-events.d.ts.map +1 -0
  118. package/dist/connection-events.js +343 -0
  119. package/dist/connection-events.js.map +1 -0
  120. package/dist/connection-stores.d.ts +6 -0
  121. package/dist/connection-stores.d.ts.map +1 -1
  122. package/dist/connection-stores.js +20 -1
  123. package/dist/connection-stores.js.map +1 -1
  124. package/dist/connection-util.d.ts +3 -2
  125. package/dist/connection-util.d.ts.map +1 -1
  126. package/dist/connection-util.js +18 -1
  127. package/dist/connection-util.js.map +1 -1
  128. package/dist/connections.d.ts +60 -5
  129. package/dist/connections.d.ts.map +1 -1
  130. package/dist/connections.js +390 -57
  131. package/dist/connections.js.map +1 -1
  132. package/dist/context-policy-util.d.ts.map +1 -1
  133. package/dist/context-policy-util.js +1 -3
  134. package/dist/context-policy-util.js.map +1 -1
  135. package/dist/conversation-context.d.ts +9 -4
  136. package/dist/conversation-context.d.ts.map +1 -1
  137. package/dist/conversation-context.js +65 -19
  138. package/dist/conversation-context.js.map +1 -1
  139. package/dist/conversation-transcript.d.ts +8 -5
  140. package/dist/conversation-transcript.d.ts.map +1 -1
  141. package/dist/conversation-transcript.js +24 -5
  142. package/dist/conversation-transcript.js.map +1 -1
  143. package/dist/conversation-turn-coalescing.d.ts +22 -0
  144. package/dist/conversation-turn-coalescing.d.ts.map +1 -0
  145. package/dist/conversation-turn-coalescing.js +121 -0
  146. package/dist/conversation-turn-coalescing.js.map +1 -0
  147. package/dist/conversation-turn-dispatch.d.ts +5 -2
  148. package/dist/conversation-turn-dispatch.d.ts.map +1 -1
  149. package/dist/conversation-turn-dispatch.js +59 -22
  150. package/dist/conversation-turn-dispatch.js.map +1 -1
  151. package/dist/default-outbound-route.d.ts +29 -0
  152. package/dist/default-outbound-route.d.ts.map +1 -0
  153. package/dist/default-outbound-route.js +105 -0
  154. package/dist/default-outbound-route.js.map +1 -0
  155. package/dist/delivery-artifacts.d.ts +2 -0
  156. package/dist/delivery-artifacts.d.ts.map +1 -0
  157. package/dist/delivery-artifacts.js +34 -0
  158. package/dist/delivery-artifacts.js.map +1 -0
  159. package/dist/delivery-files.d.ts +5 -0
  160. package/dist/delivery-files.d.ts.map +1 -0
  161. package/dist/delivery-files.js +33 -0
  162. package/dist/delivery-files.js.map +1 -0
  163. package/dist/delivery-queue.d.ts +21 -1
  164. package/dist/delivery-queue.d.ts.map +1 -1
  165. package/dist/delivery-queue.js +144 -1
  166. package/dist/delivery-queue.js.map +1 -1
  167. package/dist/delivery-send.d.ts +2 -2
  168. package/dist/delivery-send.d.ts.map +1 -1
  169. package/dist/delivery-send.js +256 -100
  170. package/dist/delivery-send.js.map +1 -1
  171. package/dist/durable-files.d.ts +37 -0
  172. package/dist/durable-files.d.ts.map +1 -0
  173. package/dist/durable-files.js +63 -0
  174. package/dist/durable-files.js.map +1 -0
  175. package/dist/harness-loop.d.ts +18 -9
  176. package/dist/harness-loop.d.ts.map +1 -1
  177. package/dist/harness-loop.js +245 -50
  178. package/dist/harness-loop.js.map +1 -1
  179. package/dist/heic-transcode-worker.d.ts +2 -0
  180. package/dist/heic-transcode-worker.d.ts.map +1 -0
  181. package/dist/heic-transcode-worker.js +59 -0
  182. package/dist/heic-transcode-worker.js.map +1 -0
  183. package/dist/heic-transcode.d.ts +18 -0
  184. package/dist/heic-transcode.d.ts.map +1 -0
  185. package/dist/heic-transcode.js +99 -0
  186. package/dist/heic-transcode.js.map +1 -0
  187. package/dist/human-input-routing.d.ts +22 -0
  188. package/dist/human-input-routing.d.ts.map +1 -0
  189. package/dist/human-input-routing.js +26 -0
  190. package/dist/human-input-routing.js.map +1 -0
  191. package/dist/in-memory-agent-state-store.d.ts +21 -0
  192. package/dist/in-memory-agent-state-store.d.ts.map +1 -0
  193. package/dist/in-memory-agent-state-store.js +97 -0
  194. package/dist/in-memory-agent-state-store.js.map +1 -0
  195. package/dist/in-memory-conversation-turn-store.d.ts +3 -1
  196. package/dist/in-memory-conversation-turn-store.d.ts.map +1 -1
  197. package/dist/in-memory-conversation-turn-store.js +41 -2
  198. package/dist/in-memory-conversation-turn-store.js.map +1 -1
  199. package/dist/in-memory-run-store.d.ts +8 -0
  200. package/dist/in-memory-run-store.d.ts.map +1 -1
  201. package/dist/in-memory-run-store.js +28 -5
  202. package/dist/in-memory-run-store.js.map +1 -1
  203. package/dist/in-memory-sandbox-session-store.d.ts +2 -1
  204. package/dist/in-memory-sandbox-session-store.d.ts.map +1 -1
  205. package/dist/in-memory-sandbox-session-store.js +65 -1
  206. package/dist/in-memory-sandbox-session-store.js.map +1 -1
  207. package/dist/in-memory-small-stores.d.ts +18 -1
  208. package/dist/in-memory-small-stores.d.ts.map +1 -1
  209. package/dist/in-memory-small-stores.js +107 -1
  210. package/dist/in-memory-small-stores.js.map +1 -1
  211. package/dist/in-memory-workspace-store.d.ts +40 -0
  212. package/dist/in-memory-workspace-store.d.ts.map +1 -0
  213. package/dist/in-memory-workspace-store.js +370 -0
  214. package/dist/in-memory-workspace-store.js.map +1 -0
  215. package/dist/index.d.ts +116 -45
  216. package/dist/index.d.ts.map +1 -1
  217. package/dist/index.js +637 -566
  218. package/dist/index.js.map +1 -1
  219. package/dist/json-util.d.ts +8 -0
  220. package/dist/json-util.d.ts.map +1 -1
  221. package/dist/json-util.js +8 -0
  222. package/dist/json-util.js.map +1 -1
  223. package/dist/learning-store.d.ts +111 -0
  224. package/dist/learning-store.d.ts.map +1 -0
  225. package/dist/learning-store.js +193 -0
  226. package/dist/learning-store.js.map +1 -0
  227. package/dist/local-sandbox.d.ts +3 -2
  228. package/dist/local-sandbox.d.ts.map +1 -1
  229. package/dist/local-sandbox.js +69 -25
  230. package/dist/local-sandbox.js.map +1 -1
  231. package/dist/mcp-client.d.ts.map +1 -1
  232. package/dist/mcp-client.js +3 -2
  233. package/dist/mcp-client.js.map +1 -1
  234. package/dist/media-processor.d.ts +42 -0
  235. package/dist/media-processor.d.ts.map +1 -0
  236. package/dist/media-processor.js +2 -0
  237. package/dist/media-processor.js.map +1 -0
  238. package/dist/model-media.d.ts +13 -1
  239. package/dist/model-media.d.ts.map +1 -1
  240. package/dist/model-media.js +81 -18
  241. package/dist/model-media.js.map +1 -1
  242. package/dist/model-visible-interrupts.d.ts +10 -0
  243. package/dist/model-visible-interrupts.d.ts.map +1 -0
  244. package/dist/model-visible-interrupts.js +41 -0
  245. package/dist/model-visible-interrupts.js.map +1 -0
  246. package/dist/operator-controls.d.ts.map +1 -1
  247. package/dist/operator-controls.js +16 -3
  248. package/dist/operator-controls.js.map +1 -1
  249. package/dist/outbound-http-policy.d.ts +7 -0
  250. package/dist/outbound-http-policy.d.ts.map +1 -0
  251. package/dist/outbound-http-policy.js +155 -0
  252. package/dist/outbound-http-policy.js.map +1 -0
  253. package/dist/principals.d.ts +18 -0
  254. package/dist/principals.d.ts.map +1 -0
  255. package/dist/principals.js +90 -0
  256. package/dist/principals.js.map +1 -0
  257. package/dist/public-api.d.ts +21 -0
  258. package/dist/public-api.d.ts.map +1 -0
  259. package/dist/public-api.js +19 -0
  260. package/dist/public-api.js.map +1 -0
  261. package/dist/replay-resume.d.ts +15 -3
  262. package/dist/replay-resume.d.ts.map +1 -1
  263. package/dist/replay-resume.js +256 -24
  264. package/dist/replay-resume.js.map +1 -1
  265. package/dist/resource-projection-util.d.ts +1 -1
  266. package/dist/resource-projection-util.d.ts.map +1 -1
  267. package/dist/resource-projection-util.js +21 -10
  268. package/dist/resource-projection-util.js.map +1 -1
  269. package/dist/resource-projection.d.ts +8 -1
  270. package/dist/resource-projection.d.ts.map +1 -1
  271. package/dist/resource-projection.js +230 -26
  272. package/dist/resource-projection.js.map +1 -1
  273. package/dist/run-heartbeat.d.ts +12 -2
  274. package/dist/run-heartbeat.d.ts.map +1 -1
  275. package/dist/run-heartbeat.js +31 -4
  276. package/dist/run-heartbeat.js.map +1 -1
  277. package/dist/run-outcome.d.ts +9 -5
  278. package/dist/run-outcome.d.ts.map +1 -1
  279. package/dist/run-outcome.js +16 -5
  280. package/dist/run-outcome.js.map +1 -1
  281. package/dist/run-recovery.d.ts +31 -2
  282. package/dist/run-recovery.d.ts.map +1 -1
  283. package/dist/run-recovery.js +211 -32
  284. package/dist/run-recovery.js.map +1 -1
  285. package/dist/run-replay.d.ts +35 -0
  286. package/dist/run-replay.d.ts.map +1 -0
  287. package/dist/run-replay.js +193 -0
  288. package/dist/run-replay.js.map +1 -0
  289. package/dist/run-result.d.ts +4 -0
  290. package/dist/run-result.d.ts.map +1 -0
  291. package/dist/run-result.js +18 -0
  292. package/dist/run-result.js.map +1 -0
  293. package/dist/run-timeline-query.d.ts +38 -0
  294. package/dist/run-timeline-query.d.ts.map +1 -0
  295. package/dist/run-timeline-query.js +99 -0
  296. package/dist/run-timeline-query.js.map +1 -0
  297. package/dist/runs-query.d.ts.map +1 -1
  298. package/dist/runs-query.js +12 -4
  299. package/dist/runs-query.js.map +1 -1
  300. package/dist/runtime-bundle.d.ts.map +1 -1
  301. package/dist/runtime-bundle.js +2 -0
  302. package/dist/runtime-bundle.js.map +1 -1
  303. package/dist/runtime-learning.d.ts +88 -0
  304. package/dist/runtime-learning.d.ts.map +1 -0
  305. package/dist/runtime-learning.js +260 -0
  306. package/dist/runtime-learning.js.map +1 -0
  307. package/dist/runtime-types.d.ts +79 -10
  308. package/dist/runtime-types.d.ts.map +1 -1
  309. package/dist/sandbox-fs.d.ts +9 -5
  310. package/dist/sandbox-fs.d.ts.map +1 -1
  311. package/dist/sandbox-fs.js +50 -33
  312. package/dist/sandbox-fs.js.map +1 -1
  313. package/dist/sandbox-handle.d.ts +25 -0
  314. package/dist/sandbox-handle.d.ts.map +1 -0
  315. package/dist/sandbox-handle.js +120 -0
  316. package/dist/sandbox-handle.js.map +1 -0
  317. package/dist/sandbox-session-identity.d.ts +14 -0
  318. package/dist/sandbox-session-identity.d.ts.map +1 -0
  319. package/dist/sandbox-session-identity.js +33 -0
  320. package/dist/sandbox-session-identity.js.map +1 -0
  321. package/dist/sandbox-session-key.d.ts.map +1 -1
  322. package/dist/sandbox-session-key.js +14 -10
  323. package/dist/sandbox-session-key.js.map +1 -1
  324. package/dist/sandbox-session-lifecycle.d.ts +12 -0
  325. package/dist/sandbox-session-lifecycle.d.ts.map +1 -0
  326. package/dist/sandbox-session-lifecycle.js +261 -0
  327. package/dist/sandbox-session-lifecycle.js.map +1 -0
  328. package/dist/sandbox-snapshot-policy.js +3 -3
  329. package/dist/sandbox-snapshot-policy.js.map +1 -1
  330. package/dist/sandbox-state-sync.d.ts +22 -0
  331. package/dist/sandbox-state-sync.d.ts.map +1 -0
  332. package/dist/sandbox-state-sync.js +147 -0
  333. package/dist/sandbox-state-sync.js.map +1 -0
  334. package/dist/sandbox-sync-worker.d.ts +11 -2
  335. package/dist/sandbox-sync-worker.d.ts.map +1 -1
  336. package/dist/sandbox-sync-worker.js +143 -31
  337. package/dist/sandbox-sync-worker.js.map +1 -1
  338. package/dist/schedule-execution.d.ts.map +1 -1
  339. package/dist/schedule-execution.js +187 -57
  340. package/dist/schedule-execution.js.map +1 -1
  341. package/dist/sdk-api-client.d.ts +17 -0
  342. package/dist/sdk-api-client.d.ts.map +1 -0
  343. package/dist/sdk-api-client.js +55 -0
  344. package/dist/sdk-api-client.js.map +1 -0
  345. package/dist/security.js +2 -2
  346. package/dist/security.js.map +1 -1
  347. package/dist/self-improvement.d.ts +34 -6
  348. package/dist/self-improvement.d.ts.map +1 -1
  349. package/dist/self-improvement.js +140 -34
  350. package/dist/self-improvement.js.map +1 -1
  351. package/dist/skill-bundles.d.ts +55 -0
  352. package/dist/skill-bundles.d.ts.map +1 -0
  353. package/dist/skill-bundles.js +134 -0
  354. package/dist/skill-bundles.js.map +1 -0
  355. package/dist/source-loader.d.ts +8 -0
  356. package/dist/source-loader.d.ts.map +1 -1
  357. package/dist/source-loader.js +41 -10
  358. package/dist/source-loader.js.map +1 -1
  359. package/dist/state-store-helpers.d.ts +2 -0
  360. package/dist/state-store-helpers.d.ts.map +1 -1
  361. package/dist/state-store-helpers.js +11 -1
  362. package/dist/state-store-helpers.js.map +1 -1
  363. package/dist/state-stores.d.ts +2 -0
  364. package/dist/state-stores.d.ts.map +1 -1
  365. package/dist/state-stores.js +40 -7
  366. package/dist/state-stores.js.map +1 -1
  367. package/dist/state.d.ts +344 -5
  368. package/dist/state.d.ts.map +1 -1
  369. package/dist/state.js +44 -2
  370. package/dist/state.js.map +1 -1
  371. package/dist/storage.d.ts +59 -2
  372. package/dist/storage.d.ts.map +1 -1
  373. package/dist/storage.js +183 -6
  374. package/dist/storage.js.map +1 -1
  375. package/dist/subagent-execution.d.ts +7 -6
  376. package/dist/subagent-execution.d.ts.map +1 -1
  377. package/dist/subagent-execution.js +58 -19
  378. package/dist/subagent-execution.js.map +1 -1
  379. package/dist/target-instructions.d.ts +14 -0
  380. package/dist/target-instructions.d.ts.map +1 -0
  381. package/dist/target-instructions.js +18 -0
  382. package/dist/target-instructions.js.map +1 -0
  383. package/dist/tool-apis.d.ts.map +1 -1
  384. package/dist/tool-apis.js +55 -10
  385. package/dist/tool-apis.js.map +1 -1
  386. package/dist/tool-execution.d.ts +26 -13
  387. package/dist/tool-execution.d.ts.map +1 -1
  388. package/dist/tool-execution.js +368 -239
  389. package/dist/tool-execution.js.map +1 -1
  390. package/dist/turn-media.d.ts +29 -0
  391. package/dist/turn-media.d.ts.map +1 -0
  392. package/dist/turn-media.js +233 -0
  393. package/dist/turn-media.js.map +1 -0
  394. package/dist/usage-reconciliation.d.ts +1 -1
  395. package/dist/usage-reconciliation.js +1 -1
  396. package/dist/workspace-id.d.ts +10 -0
  397. package/dist/workspace-id.d.ts.map +1 -0
  398. package/dist/workspace-id.js +55 -0
  399. package/dist/workspace-id.js.map +1 -0
  400. package/dist/workspace-manifest.d.ts +24 -0
  401. package/dist/workspace-manifest.d.ts.map +1 -0
  402. package/dist/workspace-manifest.js +111 -0
  403. package/dist/workspace-manifest.js.map +1 -0
  404. package/dist/workspace-operation-limiter.d.ts +16 -0
  405. package/dist/workspace-operation-limiter.d.ts.map +1 -0
  406. package/dist/workspace-operation-limiter.js +31 -0
  407. package/dist/workspace-operation-limiter.js.map +1 -0
  408. package/dist/workspace-operations.d.ts +145 -0
  409. package/dist/workspace-operations.d.ts.map +1 -0
  410. package/dist/workspace-operations.js +420 -0
  411. package/dist/workspace-operations.js.map +1 -0
  412. package/dist/workspace-runtime.d.ts +110 -0
  413. package/dist/workspace-runtime.d.ts.map +1 -0
  414. package/dist/workspace-runtime.js +240 -0
  415. package/dist/workspace-runtime.js.map +1 -0
  416. package/dist/workspace-search.d.ts +55 -0
  417. package/dist/workspace-search.d.ts.map +1 -0
  418. package/dist/workspace-search.js +262 -0
  419. package/dist/workspace-search.js.map +1 -0
  420. package/dist/workspace-service.d.ts +173 -0
  421. package/dist/workspace-service.d.ts.map +1 -0
  422. package/dist/workspace-service.js +619 -0
  423. package/dist/workspace-service.js.map +1 -0
  424. package/dist/workspace.d.ts +7 -0
  425. package/dist/workspace.d.ts.map +1 -0
  426. package/dist/workspace.js +7 -0
  427. package/dist/workspace.js.map +1 -0
  428. package/package.json +7 -4
  429. package/dist/agent-harness.d.ts +0 -108
  430. package/dist/agent-harness.d.ts.map +0 -1
  431. package/dist/agent-harness.js +0 -2
  432. package/dist/agent-harness.js.map +0 -1
  433. package/dist/attachments-legacy.d.ts +0 -17
  434. package/dist/attachments-legacy.d.ts.map +0 -1
  435. package/dist/attachments-legacy.js +0 -273
  436. package/dist/attachments-legacy.js.map +0 -1
  437. package/dist/code-mode.d.ts +0 -20
  438. package/dist/code-mode.d.ts.map +0 -1
  439. package/dist/code-mode.js +0 -658
  440. package/dist/code-mode.js.map +0 -1
  441. package/dist/hook-dispatch.d.ts +0 -19
  442. package/dist/hook-dispatch.d.ts.map +0 -1
  443. package/dist/hook-dispatch.js +0 -37
  444. package/dist/hook-dispatch.js.map +0 -1
  445. package/dist/pi-agent-harness.d.ts +0 -40
  446. package/dist/pi-agent-harness.d.ts.map +0 -1
  447. package/dist/pi-agent-harness.js +0 -222
  448. package/dist/pi-agent-harness.js.map +0 -1
  449. package/dist/pi-harness.d.ts +0 -42
  450. package/dist/pi-harness.d.ts.map +0 -1
  451. package/dist/pi-harness.js +0 -142
  452. package/dist/pi-harness.js.map +0 -1
  453. package/dist/run-resolver.d.ts +0 -35
  454. package/dist/run-resolver.d.ts.map +0 -1
  455. package/dist/run-resolver.js +0 -84
  456. package/dist/run-resolver.js.map +0 -1
  457. package/dist/usage-budget.d.ts +0 -29
  458. package/dist/usage-budget.d.ts.map +0 -1
  459. package/dist/usage-budget.js +0 -145
  460. package/dist/usage-budget.js.map +0 -1
@@ -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"}
@@ -0,0 +1,88 @@
1
+ import type { AgentHarness, AgentManifest } from "@assemblyline-agents/core";
2
+ import type { BackgroundReviewExecutionResult } from "./background-review-types.js";
3
+ import type { LearningStore, PendingSkillChangeRecord, SkillRevisionRecord } from "./learning-store.js";
4
+ import type { RuntimeLogger } from "./logging.js";
5
+ import type { MemoryStore } from "./runtime-types.js";
6
+ import { type ResolvedSkillsConfig, type SkillStore } from "./self-improvement.js";
7
+ import type { MemoryScope, ResolvedStateAdapter, RunRecord } from "./state.js";
8
+ interface RuntimeLearningOptions {
9
+ state: ResolvedStateAdapter;
10
+ manifest: AgentManifest;
11
+ env: Record<string, string | undefined>;
12
+ logger: RuntimeLogger;
13
+ learningStore: LearningStore;
14
+ skillStore: SkillStore;
15
+ memoryStore: MemoryStore;
16
+ skillsConfigForSurface(surfacePath: string): ResolvedSkillsConfig;
17
+ skillScopeForSurface(surfacePath: string): string;
18
+ anySkillsEnabled(): boolean;
19
+ memoryScopeForRun(run: RunRecord): MemoryScope;
20
+ resolveAgentHarness(modelSpec?: string): Promise<AgentHarness>;
21
+ now(): Date;
22
+ }
23
+ export interface RuntimeSkillWriteInput {
24
+ name: string;
25
+ body: string;
26
+ origin?: "agent" | "user" | "background-review";
27
+ sourceRunId?: string;
28
+ reviewJobId?: string;
29
+ }
30
+ export declare class RuntimeLearningManager {
31
+ private readonly options;
32
+ private readonly seededSurfaces;
33
+ private readonly migratedSurfaceScopes;
34
+ private skillScopeMigrated;
35
+ constructor(options: RuntimeLearningOptions);
36
+ ensureSkillsSeeded(surfacePath?: string): Promise<void>;
37
+ listSkills(surfacePath?: string): Promise<Array<{
38
+ name: string;
39
+ description: string;
40
+ origin: string;
41
+ pending: boolean;
42
+ }>>;
43
+ saveSkill(input: RuntimeSkillWriteInput, surfacePath?: string): Promise<{
44
+ name: string;
45
+ pending: boolean;
46
+ }>;
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<{
50
+ name: string;
51
+ pending: boolean;
52
+ }>;
53
+ listPendingSkillChanges(surfacePath?: string): Promise<PendingSkillChangeRecord[]>;
54
+ approveSkillChange(id: string, surfacePath?: string): Promise<{
55
+ name: string;
56
+ action: string;
57
+ }>;
58
+ rejectSkillChange(id: string, surfacePath?: string): Promise<void>;
59
+ recordRunFeedback(runId: string, feedback: {
60
+ rating: "positive" | "negative";
61
+ comment?: string;
62
+ }): Promise<{
63
+ jobId: string;
64
+ status: string;
65
+ }>;
66
+ listBackgroundReviews(surfacePath?: string): Promise<import("./learning-store.js").BackgroundReviewJobRecord[]>;
67
+ runDueBackgroundReviews(options?: {
68
+ now?: Date;
69
+ limit?: number;
70
+ leaseForMs?: number;
71
+ }): Promise<BackgroundReviewExecutionResult[]>;
72
+ startBackgroundReviewWorker(options?: {
73
+ intervalMs?: number;
74
+ limit?: number;
75
+ leaseForMs?: number;
76
+ }): {
77
+ stop(): void;
78
+ } | undefined;
79
+ handleRuntimeEvent(runId: string, eventType: string): Promise<void>;
80
+ private assertEnabled;
81
+ private pendingSkillChange;
82
+ private migrateLegacySkillScope;
83
+ private migrateLegacyPendingSkills;
84
+ private backfillSkillRevisionMetadata;
85
+ private reviewHost;
86
+ }
87
+ export {};
88
+ //# sourceMappingURL=runtime-learning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-learning.d.ts","sourceRoot":"","sources":["../src/runtime-learning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,260 @@
1
+ import { enqueueBackgroundReviewForCompletedRun, enqueueBackgroundReviewForFeedback } from "./background-review-trigger.js";
2
+ import { runDueBackgroundReviews, startBackgroundReviewWorker } from "./background-review-worker.js";
3
+ import { archiveSkill, liveSkills, seedSkills, writeSkill } from "./self-improvement.js";
4
+ import { ROOT_AGENT_SURFACE, surfaceForPath, surfaceForRun } from "./agent-surface.js";
5
+ export class RuntimeLearningManager {
6
+ options;
7
+ seededSurfaces = new Set();
8
+ migratedSurfaceScopes = new Set();
9
+ skillScopeMigrated = false;
10
+ constructor(options) {
11
+ this.options = options;
12
+ }
13
+ async ensureSkillsSeeded(surfacePath = ROOT_AGENT_SURFACE) {
14
+ if (this.seededSurfaces.has(surfacePath))
15
+ return;
16
+ const surface = surfaceForPath(this.options.manifest, surfacePath);
17
+ await this.migrateLegacySkillScope(surfacePath);
18
+ await this.migrateLegacyPendingSkills(surfacePath);
19
+ await this.backfillSkillRevisionMetadata(surfacePath);
20
+ await seedSkills(this.options.skillStore, this.options.learningStore, this.options.skillScopeForSurface(surfacePath), surface.skills);
21
+ this.seededSurfaces.add(surfacePath);
22
+ }
23
+ async listSkills(surfacePath = ROOT_AGENT_SURFACE) {
24
+ await this.ensureSkillsSeeded(surfacePath);
25
+ return liveSkills(this.options.skillStore, this.options.skillScopeForSurface(surfacePath));
26
+ }
27
+ async saveSkill(input, surfacePath = ROOT_AGENT_SURFACE) {
28
+ const config = this.assertEnabled(surfacePath);
29
+ await this.ensureSkillsSeeded(surfacePath);
30
+ const record = await writeSkill(this.options.skillStore, this.options.learningStore, this.options.skillScopeForSurface(surfacePath), input, { requireApproval: config.writeApproval });
31
+ return { name: record.name, pending: record.pending ?? false };
32
+ }
33
+ async deleteSkill(name, surfacePath = ROOT_AGENT_SURFACE) {
34
+ const config = this.assertEnabled(surfacePath);
35
+ await this.ensureSkillsSeeded(surfacePath);
36
+ await archiveSkill(this.options.skillStore, this.options.learningStore, this.options.skillScopeForSurface(surfacePath), name, { requireApproval: config.writeApproval });
37
+ }
38
+ async listSkillRevisions(name, surfacePath = ROOT_AGENT_SURFACE) {
39
+ await this.ensureSkillsSeeded(surfacePath);
40
+ return this.options.learningStore.listSkillRevisions(this.options.skillScopeForSurface(surfacePath), name);
41
+ }
42
+ async restoreSkillRevision(name, revision, surfacePath = ROOT_AGENT_SURFACE) {
43
+ const config = this.assertEnabled(surfacePath);
44
+ await this.ensureSkillsSeeded(surfacePath);
45
+ const scope = this.options.skillScopeForSurface(surfacePath);
46
+ const historical = await this.options.learningStore.getSkillRevision(scope, name, revision);
47
+ if (!historical)
48
+ throw new Error(`Skill revision not found: ${name}@${revision}`);
49
+ const record = await writeSkill(this.options.skillStore, this.options.learningStore, scope, {
50
+ name,
51
+ body: historical.body,
52
+ origin: "user",
53
+ action: "restore"
54
+ }, { requireApproval: config.writeApproval });
55
+ return { name, pending: record.pending ?? false };
56
+ }
57
+ listPendingSkillChanges(surfacePath = ROOT_AGENT_SURFACE) {
58
+ return this.options.learningStore.listPendingSkillChanges(this.options.skillScopeForSurface(surfacePath));
59
+ }
60
+ async approveSkillChange(id, surfacePath = ROOT_AGENT_SURFACE) {
61
+ const pending = await this.pendingSkillChange(id, surfacePath);
62
+ if (pending.action === "write") {
63
+ if (pending.body === undefined)
64
+ throw new Error(`Pending skill write has no body: ${id}`);
65
+ await writeSkill(this.options.skillStore, this.options.learningStore, pending.scope, {
66
+ name: pending.name,
67
+ body: pending.body,
68
+ origin: pending.origin,
69
+ action: pending.revisionAction ?? "write",
70
+ ...(pending.sourceRunId ? { sourceRunId: pending.sourceRunId } : {}),
71
+ ...(pending.reviewJobId ? { reviewJobId: pending.reviewJobId } : {})
72
+ }, { requireApproval: false });
73
+ }
74
+ else {
75
+ await archiveSkill(this.options.skillStore, this.options.learningStore, pending.scope, pending.name, {
76
+ requireApproval: false,
77
+ origin: pending.origin,
78
+ ...(pending.sourceRunId ? { sourceRunId: pending.sourceRunId } : {}),
79
+ ...(pending.reviewJobId ? { reviewJobId: pending.reviewJobId } : {})
80
+ });
81
+ }
82
+ await this.options.learningStore.deletePendingSkillChange(id);
83
+ return { name: pending.name, action: pending.action };
84
+ }
85
+ async rejectSkillChange(id, surfacePath = ROOT_AGENT_SURFACE) {
86
+ await this.pendingSkillChange(id, surfacePath);
87
+ await this.options.learningStore.deletePendingSkillChange(id);
88
+ }
89
+ async recordRunFeedback(runId, feedback) {
90
+ const job = await enqueueBackgroundReviewForFeedback(this.reviewHost(), runId, feedback);
91
+ return { jobId: job.id, status: job.status };
92
+ }
93
+ listBackgroundReviews(surfacePath = ROOT_AGENT_SURFACE) {
94
+ return this.options.learningStore.listBackgroundReviews(this.options.skillScopeForSurface(surfacePath));
95
+ }
96
+ runDueBackgroundReviews(options = {}) {
97
+ return runDueBackgroundReviews(this.reviewHost(), options);
98
+ }
99
+ startBackgroundReviewWorker(options = {}) {
100
+ return startBackgroundReviewWorker(this.reviewHost(), options);
101
+ }
102
+ async handleRuntimeEvent(runId, eventType) {
103
+ if (eventType !== "run.completed")
104
+ return;
105
+ await enqueueBackgroundReviewForCompletedRun(this.reviewHost(), runId).catch((error) => {
106
+ this.options.logger.warn("background review enqueue failed", {
107
+ runId,
108
+ error: error instanceof Error ? error.message : String(error)
109
+ });
110
+ });
111
+ }
112
+ assertEnabled(surfacePath) {
113
+ const config = this.options.skillsConfigForSurface(surfacePath);
114
+ if (!config.enabled) {
115
+ throw new Error("Self-improvement is disabled (selfImprovement.enabled is false).");
116
+ }
117
+ return config;
118
+ }
119
+ async pendingSkillChange(id, surfacePath) {
120
+ const pending = await this.options.learningStore.getPendingSkillChange(id);
121
+ if (!pending || pending.scope !== this.options.skillScopeForSurface(surfacePath)) {
122
+ throw new Error(`Pending skill change not found: ${id}`);
123
+ }
124
+ return pending;
125
+ }
126
+ async migrateLegacySkillScope(surfacePath) {
127
+ if (surfacePath !== ROOT_AGENT_SURFACE || this.skillScopeMigrated)
128
+ return;
129
+ this.skillScopeMigrated = true;
130
+ const scope = this.options.skillScopeForSurface(surfacePath);
131
+ const legacyScope = this.options.manifest.agentRevision;
132
+ if (scope === legacyScope || (await this.options.skillStore.list(scope)).length > 0)
133
+ return;
134
+ for (const skill of await this.options.skillStore.list(legacyScope)) {
135
+ let migratedRevision;
136
+ const revisions = await this.options.learningStore.listSkillRevisions(legacyScope, skill.name);
137
+ for (const revision of revisions) {
138
+ const migrated = await this.options.learningStore.appendSkillRevision({
139
+ scope,
140
+ name: revision.name,
141
+ action: revision.action,
142
+ body: revision.body,
143
+ bodySha256: revision.bodySha256,
144
+ origin: revision.origin,
145
+ ...(migratedRevision ? { previousRevision: migratedRevision } : {}),
146
+ ...(revision.sourceRunId ? { sourceRunId: revision.sourceRunId } : {}),
147
+ ...(revision.reviewJobId ? { reviewJobId: revision.reviewJobId } : {})
148
+ });
149
+ migratedRevision = migrated.revision;
150
+ }
151
+ const { revision: _legacyRevision, ...stored } = skill;
152
+ await this.options.skillStore.put(scope, {
153
+ ...stored,
154
+ ...(migratedRevision ? { revision: migratedRevision } : {})
155
+ });
156
+ }
157
+ for (const pending of await this.options.learningStore.listPendingSkillChanges(legacyScope)) {
158
+ await this.options.learningStore.putPendingSkillChange({
159
+ scope,
160
+ name: pending.name,
161
+ action: pending.action,
162
+ ...(pending.revisionAction ? { revisionAction: pending.revisionAction } : {}),
163
+ ...(pending.body ? { body: pending.body } : {}),
164
+ origin: pending.origin,
165
+ ...(pending.sourceRunId ? { sourceRunId: pending.sourceRunId } : {}),
166
+ ...(pending.reviewJobId ? { reviewJobId: pending.reviewJobId } : {})
167
+ });
168
+ }
169
+ }
170
+ async migrateLegacyPendingSkills(surfacePath) {
171
+ const scope = this.options.skillScopeForSurface(surfacePath);
172
+ if (this.migratedSurfaceScopes.has(`pending:${scope}`))
173
+ return;
174
+ this.migratedSurfaceScopes.add(`pending:${scope}`);
175
+ const pendingChanges = await this.options.learningStore.listPendingSkillChanges(scope);
176
+ for (const skill of await this.options.skillStore.list(scope)) {
177
+ if (!skill.pending)
178
+ continue;
179
+ const alreadyMigrated = pendingChanges.some((pending) => pending.name === skill.name && pending.action === "write" && pending.body === skill.body);
180
+ if (!alreadyMigrated) {
181
+ pendingChanges.push(await this.options.learningStore.putPendingSkillChange({
182
+ scope,
183
+ name: skill.name,
184
+ action: "write",
185
+ revisionAction: "write",
186
+ body: skill.body,
187
+ origin: skill.origin
188
+ }));
189
+ }
190
+ await this.options.skillStore.delete(scope, skill.name);
191
+ }
192
+ }
193
+ async backfillSkillRevisionMetadata(surfacePath) {
194
+ const scope = this.options.skillScopeForSurface(surfacePath);
195
+ if (this.migratedSurfaceScopes.has(`revisions:${scope}`))
196
+ return;
197
+ this.migratedSurfaceScopes.add(`revisions:${scope}`);
198
+ for (const skill of await this.options.skillStore.list(scope)) {
199
+ if (skill.revision !== undefined)
200
+ continue;
201
+ const history = await this.options.learningStore.listSkillRevisions(scope, skill.name);
202
+ const matching = [...history].reverse().find((revision) => revision.bodySha256 === skill.bodySha256);
203
+ const revision = matching ?? await this.options.learningStore.appendSkillRevision({
204
+ scope,
205
+ name: skill.name,
206
+ action: skill.archived ? "archive" : skill.origin === "seeded" ? "seed" : "write",
207
+ body: skill.body,
208
+ bodySha256: skill.bodySha256,
209
+ origin: skill.origin,
210
+ ...(history.at(-1) ? { previousRevision: history.at(-1).revision } : {})
211
+ });
212
+ await this.options.skillStore.put(scope, { ...skill, revision: revision.revision });
213
+ }
214
+ }
215
+ reviewHost() {
216
+ const options = this.options;
217
+ return {
218
+ ...options,
219
+ anySkillsEnabled: options.anySkillsEnabled,
220
+ skillsConfigForRun: (run) => options.skillsConfigForSurface(surfaceForRun(options.manifest, run).path),
221
+ skillScopeForRun: (run) => options.skillScopeForSurface(surfaceForRun(options.manifest, run).path),
222
+ memoryScopeForRun: options.memoryScopeForRun,
223
+ resolveAgentHarness: options.resolveAgentHarness,
224
+ saveReviewSkill: async (input) => {
225
+ const record = await writeSkill(options.skillStore, options.learningStore, input.scope, {
226
+ name: input.name,
227
+ body: input.body,
228
+ origin: "background-review",
229
+ sourceRunId: input.sourceRunId,
230
+ reviewJobId: input.reviewJobId
231
+ }, { requireApproval: input.requireApproval });
232
+ return { name: record.name, pending: record.pending ?? false };
233
+ },
234
+ archiveReviewSkill: async (input) => {
235
+ return archiveSkill(options.skillStore, options.learningStore, input.scope, input.name, {
236
+ requireApproval: input.requireApproval,
237
+ origin: "background-review",
238
+ sourceRunId: input.sourceRunId,
239
+ reviewJobId: input.reviewJobId
240
+ });
241
+ },
242
+ restoreReviewSkill: async (input) => {
243
+ const historical = await options.learningStore.getSkillRevision(input.scope, input.name, input.revision);
244
+ if (!historical)
245
+ throw new Error(`Skill revision not found: ${input.name}@${input.revision}`);
246
+ const record = await writeSkill(options.skillStore, options.learningStore, input.scope, {
247
+ name: input.name,
248
+ body: historical.body,
249
+ origin: "background-review",
250
+ action: "restore",
251
+ sourceRunId: input.sourceRunId,
252
+ reviewJobId: input.reviewJobId
253
+ }, { requireApproval: input.requireApproval });
254
+ return { name: record.name, pending: record.pending ?? false };
255
+ },
256
+ now: options.now
257
+ };
258
+ }
259
+ }
260
+ //# sourceMappingURL=runtime-learning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-learning.js","sourceRoot":"","sources":["../src/runtime-learning.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sCAAsC,EACtC,kCAAkC,EACnC,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAQrG,OAAO,EACL,YAAY,EACZ,UAAU,EACV,UAAU,EACV,UAAU,EAGX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA0BvF,MAAM,OAAO,sBAAsB;IAKJ;IAJZ,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAC;IACnD,kBAAkB,GAAG,KAAK,CAAC;IAEnC,YAA6B,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;IAAG,CAAC;IAEhE,KAAK,CAAC,kBAAkB,CAAC,WAAW,GAAG,kBAAkB;QACvD,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC;YAAE,OAAO;QACjD,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACnE,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,UAAU,CACd,IAAI,CAAC,OAAO,CAAC,UAAU,EACvB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAC9C,OAAO,CAAC,MAAM,CACf,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAW,GAAG,kBAAkB;QAC/C,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC3C,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAA6B,EAAE,WAAW,GAAG,kBAAkB;QAC7E,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B,IAAI,CAAC,OAAO,CAAC,UAAU,EACvB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAC9C,KAAK,EACL,EAAE,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,CAC1C,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,WAAW,GAAG,kBAAkB;QAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,YAAY,CAChB,IAAI,CAAC,OAAO,CAAC,UAAU,EACvB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAC9C,IAAI,EACJ,EAAE,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,CAC1C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY,EAAE,WAAW,GAAG,kBAAkB;QACrE,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7G,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,IAAY,EAAE,QAAgB,EAAE,WAAW,GAAG,kBAAkB;QACzF,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC5F,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,IAAI,QAAQ,EAAE,CAAC,CAAC;QAClF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE;YAC1F,IAAI;YACJ,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,SAAS;SAClB,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;IACpD,CAAC;IAED,uBAAuB,CAAC,WAAW,GAAG,kBAAkB;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5G,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EAAU,EAAE,WAAW,GAAG,kBAAkB;QACnE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAC/D,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,EAAE,EAAE,CAAC,CAAC;YAC1F,MAAM,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,EAAE;gBACnF,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,MAAM,EAAE,OAAO,CAAC,cAAc,IAAI,OAAO;gBACzC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE;gBACnG,eAAe,EAAE,KAAK;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrE,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAC9D,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,EAAU,EAAE,WAAW,GAAG,kBAAkB;QAClE,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,KAAa,EACb,QAA+D;QAE/D,MAAM,GAAG,GAAG,MAAM,kCAAkC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzF,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;IAC/C,CAAC;IAED,qBAAqB,CAAC,WAAW,GAAG,kBAAkB;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,uBAAuB,CACrB,UAA+D,EAAE;QAEjE,OAAO,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,2BAA2B,CACzB,UAAwE,EAAE;QAE1E,OAAO,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAAa,EAAE,SAAiB;QACvD,IAAI,SAAS,KAAK,eAAe;YAAE,OAAO;QAC1C,MAAM,sCAAsC,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACrF,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;gBAC3D,KAAK;gBACL,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,aAAa,CAAC,WAAmB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,EAAU,EAAE,WAAmB;QAC9D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC;YACjF,MAAM,IAAI,KAAK,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,uBAAuB,CAAC,WAAmB;QACvD,IAAI,WAAW,KAAK,kBAAkB,IAAI,IAAI,CAAC,kBAAkB;YAAE,OAAO;QAC1E,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QACxD,IAAI,KAAK,KAAK,WAAW,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QAC5F,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACpE,IAAI,gBAAoC,CAAC;YACzC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/F,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC;oBACpE,KAAK;oBACL,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;oBACnB,UAAU,EAAE,QAAQ,CAAC,UAAU;oBAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;oBACvB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnE,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtE,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvE,CAAC,CAAC;gBACH,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACvC,CAAC;YACD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,CAAC;YACvD,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE;gBACvC,GAAG,MAAM;gBACT,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5D,CAAC,CAAC;QACL,CAAC;QACD,KAAK,MAAM,OAAO,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5F,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC;gBACrD,KAAK;gBACL,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7E,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,0BAA0B,CAAC,WAAmB;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC;YAAE,OAAO;QAC/D,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;QACnD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACvF,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,SAAS;YAC7B,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACtD,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CACzF,CAAC;YACF,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,cAAc,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC;oBACzE,KAAK;oBACL,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,OAAO;oBACf,cAAc,EAAE,OAAO;oBACvB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB,CAAC,CAAC,CAAC;YACN,CAAC;YACD,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,6BAA6B,CAAC,WAAmB;QAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,aAAa,KAAK,EAAE,CAAC;YAAE,OAAO;QACjE,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;QACrD,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;gBAAE,SAAS;YAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACvF,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC;YACrG,MAAM,QAAQ,GAAG,QAAQ,IAAI,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC;gBAChF,KAAK;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;gBACjF,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1E,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,OAAO;YACL,GAAG,OAAO;YACV,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,kBAAkB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;YACtG,gBAAgB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;YAClG,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;YAC5C,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;YAChD,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC/B,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE;oBACtF,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,mBAAmB;oBAC3B,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;iBAC/B,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;gBAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;YACjE,CAAC;YACD,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAClC,OAAO,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;oBACtF,eAAe,EAAE,KAAK,CAAC,eAAe;oBACtC,MAAM,EAAE,mBAAmB;oBAC3B,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;iBAC/B,CAAC,CAAC;YACL,CAAC;YACD,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAClC,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACzG,IAAI,CAAC,UAAU;oBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC9F,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,EAAE;oBACtF,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,MAAM,EAAE,mBAAmB;oBAC3B,MAAM,EAAE,SAAS;oBACjB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,WAAW,EAAE,KAAK,CAAC,WAAW;iBAC/B,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;gBAC/C,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;YACjE,CAAC;YACD,GAAG,EAAE,OAAO,CAAC,GAAG;SACjB,CAAC;IACJ,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import type { AgentHarness, AgentManifest, ConnectionPrincipal, ContentCaptureLevel, ContentCapturePolicy, JsonObject, JsonSchema, JsonValue, MemoryListInput, MemoryReadInput, MemorySearchInput, MemoryWriteInput, ReasoningLevel, ResourceKind, ResourceMetadata, SandboxSession, SandboxSnapshotPolicy, ScheduleTriggerDefinition, TriggerTarget } from "@assemblyline-agents/core";
1
+ import type { AgentPrincipal, AgentAudience, AgentHarness, AgentManifest, CompiledAutomationLifecycle, ConnectionPrincipal, ContentCaptureLevel, ContentCapturePolicy, JsonObject, JsonSchema, JsonValue, MemoryListInput, MemoryReadInput, MemorySearchInput, MemoryWriteInput, ReasoningLevel, ResourceKind, ResourceMetadata, SandboxSession, SandboxEnvironmentEnsureInput, SandboxEnvironmentResolution, SandboxSnapshotPolicy, ScheduleTriggerDefinition, TriggerTarget } from "@assemblyline-agents/core";
2
2
  import type { ChannelTurn } from "./channel.js";
3
3
  import type { EvalRunOptions } from "./eval-run-options.js";
4
4
  import type { CheckpointRetentionPolicy } from "./checkpoints.js";
@@ -7,9 +7,12 @@ import type { ConnectionAuthorizationSessionStore, ConnectionGrantStore, Connect
7
7
  import type { RuntimePause } from "./harness-continuation.js";
8
8
  import type { RuntimeLogger } from "./logging.js";
9
9
  import type { SchedulerAdapter } from "./scheduler.js";
10
+ import type { MediaProcessor } from "./media-processor.js";
10
11
  import type { CoreToolPolicy } from "./security.js";
11
12
  import type { ConnectionDefinitionStore, ScheduleStore, SkillStore } from "./self-improvement.js";
13
+ import type { LearningStore } from "./learning-store.js";
12
14
  import type { DeliveryObligation, MemoryDocument, MemoryEmbeddingProvider, MemoryScope, MemorySearchResult, RunEvent, RunRecord, StateAdapter, StateStores, ToolCallRecord } from "./state.js";
15
+ import type { ConnectionEventStore } from "./connection-event-store.js";
13
16
  import type { TelemetrySink, TelemetrySpan } from "./telemetry.js";
14
17
  /**
15
18
  * Runtime option/result/adapter contracts shared by the AssemblyLineRuntime class
@@ -25,6 +28,13 @@ export interface BlobPutOptions {
25
28
  export interface BlobAdapter {
26
29
  put(key: string, value: string | Uint8Array, contentTypeOrOptions?: string | BlobPutOptions): Promise<BlobRecord>;
27
30
  get(key: string): Promise<Uint8Array | undefined>;
31
+ delete(key: string): Promise<boolean>;
32
+ list(prefix?: string): Promise<BlobObjectRecord[]>;
33
+ }
34
+ export interface BlobObjectRecord {
35
+ key: string;
36
+ size: number;
37
+ modifiedAt?: string;
28
38
  }
29
39
  export interface BlobRecord {
30
40
  id: string;
@@ -37,8 +47,12 @@ export interface BlobRecord {
37
47
  }
38
48
  export interface SandboxAdapter {
39
49
  provider?: string;
40
- acquire(run: RunRecord): Promise<SandboxSession>;
41
- create?(run: RunRecord, input?: SandboxCreateInput): Promise<SandboxSession>;
50
+ /** Deployment-time environment reconciliation; runtime-only providers may omit it. */
51
+ ensureEnvironment?(input: SandboxEnvironmentEnsureInput): Promise<SandboxEnvironmentResolution>;
52
+ /** Optional convenience entrypoint for callers that do not manage durable session identity. */
53
+ acquire?(run: RunRecord): Promise<SandboxSession>;
54
+ /** Runtime entrypoint. Implementations must derive provider identity from input.sessionKey. */
55
+ create(run: RunRecord, input: SandboxCreateInput): Promise<SandboxSession>;
42
56
  lookup?(input: SandboxLookupInput): Promise<SandboxLookupResult | undefined>;
43
57
  connect?(input: SandboxReconnectInput): Promise<SandboxSession | undefined>;
44
58
  wake?(input: SandboxReconnectInput): Promise<SandboxSession | undefined>;
@@ -50,11 +64,15 @@ export interface SandboxAdapter {
50
64
  }
51
65
  export interface SandboxCreateInput {
52
66
  sessionKey: string;
67
+ agentScope: string;
68
+ logicalSessionKey: string;
53
69
  snapshotId?: string;
54
70
  metadata?: JsonObject;
55
71
  }
56
72
  export interface SandboxLookupInput {
57
73
  sessionKey: string;
74
+ agentScope: string;
75
+ logicalSessionKey: string;
58
76
  runId: string;
59
77
  agentRevision: string;
60
78
  manifest?: JsonObject;
@@ -68,7 +86,9 @@ export interface SandboxLookupResult {
68
86
  export interface SandboxReconnectInput {
69
87
  runId: string;
70
88
  sandboxId: string;
71
- sessionKey?: string;
89
+ sessionKey: string;
90
+ agentScope: string;
91
+ logicalSessionKey: string;
72
92
  root?: string;
73
93
  manifest?: JsonObject;
74
94
  }
@@ -93,6 +113,10 @@ export interface RuntimeSandboxHandle {
93
113
  current(): SandboxSession | undefined;
94
114
  get(): Promise<SandboxSession>;
95
115
  getWrapped(): Promise<SandboxSession>;
116
+ /** Stop publishing a still-pending acquisition after its caller timed out or was cancelled. */
117
+ abandonAcquisition(): void;
118
+ /** Dispose the selected session so a changed hook profile is acquired lazily. */
119
+ reset(): Promise<void>;
96
120
  dispose(): Promise<void>;
97
121
  }
98
122
  export interface SandboxTombstone {
@@ -125,10 +149,14 @@ export interface RuntimeOptions {
125
149
  manifest: AgentManifest;
126
150
  /** Built artifact root used for runtime module-cache package resolution. */
127
151
  artifactRoot?: string;
152
+ /** Byte-for-byte skill bundle resource root (`<artifact>/resources`), when present. */
153
+ resourcesRoot?: string;
128
154
  state?: StateAdapter | StateStores;
129
155
  blob?: BlobAdapter;
130
156
  sandbox?: SandboxAdapter;
131
157
  scheduler?: SchedulerAdapter;
158
+ /** Gateway-provided attachment processors executed before model context construction. */
159
+ mediaProcessors?: MediaProcessor[];
132
160
  /** Persist delivery obligations without invoking channel senders (for evals and dry runs). */
133
161
  deliveryMode?: "send" | "record-only";
134
162
  /**
@@ -138,7 +166,7 @@ export interface RuntimeOptions {
138
166
  * model-output bounding still apply; connection tools are not stubbable.
139
167
  */
140
168
  toolStubs?: Record<string, (input: unknown) => unknown | Promise<unknown>>;
141
- /** Optional pi model catalog override, forwarded to `piAgentHarness({ models })`. */
169
+ /** Optional Pi provider registry override, forwarded to `piAgentHarness({ models })`. */
142
170
  models?: unknown;
143
171
  /** Provider-prefix model harnesses; `agentHarness` remains higher precedence. */
144
172
  modelHarnesses?: Record<string, AgentHarness>;
@@ -152,14 +180,18 @@ export interface RuntimeOptions {
152
180
  connections?: Record<string, unknown>;
153
181
  env?: Record<string, string | undefined>;
154
182
  fetch?: typeof fetch;
183
+ /** DNS seam for attachment SSRF validation; defaults to the system resolver. */
184
+ attachmentHostResolver?: import("./outbound-http-policy.js").AttachmentHostResolver;
155
185
  telemetry?: TelemetrySink;
156
186
  /** Host/gateway-supplied instrumentation overrides; win over `instrumentation.ts`. */
157
187
  instrumentation?: RuntimeInstrumentationOverride;
158
188
  logger?: RuntimeLogger;
159
189
  connectionGrantStore?: ConnectionGrantStore;
160
190
  connectionAuthorizationSessionStore?: ConnectionAuthorizationSessionStore;
191
+ connectionEventStore?: ConnectionEventStore;
161
192
  connectionCallbackBaseUrl?: string;
162
193
  skillStore?: SkillStore;
194
+ learningStore?: LearningStore;
163
195
  scheduleStore?: ScheduleStore;
164
196
  connectionDefinitionStore?: ConnectionDefinitionStore;
165
197
  schedulerEnabled?: boolean;
@@ -176,12 +208,12 @@ export interface RuntimeOptions {
176
208
  deliveryQueueMaxAttempts?: number;
177
209
  deliveryQueueIntervalMs?: number;
178
210
  runHeartbeatMs?: number;
179
- /** Wall-clock cap per active run execution segment (env `OPENEVE_MAX_RUN_DURATION_MS`). Default 1h; 0 disables. */
211
+ /** Wall-clock cap per active run execution segment (env `ASSEMBLY_LINE_MAX_RUN_DURATION_MS`). Default 1h; 0 disables. */
180
212
  maxRunDurationMs?: number;
181
213
  runRecoveryIntervalMs?: number;
182
- /** Max simultaneously executing brand-new runs (env `OPENEVE_MAX_CONCURRENT_RUNS`). Default Infinity. Resumes never count against this. */
214
+ /** Max simultaneously executing brand-new runs (env `ASSEMBLY_LINE_MAX_CONCURRENT_RUNS`). Default Infinity. Resumes never count against this. */
183
215
  maxConcurrentRuns?: number;
184
- /** Max brand-new runs waiting for a slot before rejection (env `OPENEVE_MAX_QUEUED_RUNS`). Default 0. */
216
+ /** Max brand-new runs waiting for a slot before rejection (env `ASSEMBLY_LINE_MAX_QUEUED_RUNS`). Default 0. */
185
217
  maxQueuedRuns?: number;
186
218
  checkpointRetention?: CheckpointRetentionPolicy;
187
219
  memoryEmbeddingProvider?: MemoryEmbeddingProvider;
@@ -194,9 +226,13 @@ export interface DynamicConnectionGrantInput {
194
226
  principal?: ConnectionPrincipal;
195
227
  principalKey?: string;
196
228
  }
229
+ /** Non-secret, authenticated host intent for one connection's sandbox credential. */
230
+ export interface SandboxCredentialRequest extends JsonObject {
231
+ repository: string;
232
+ capability: string;
233
+ }
197
234
  export interface RunAgentOptions {
198
235
  message: string;
199
- model?: string;
200
236
  toolName?: string;
201
237
  input?: unknown;
202
238
  approve?: boolean;
@@ -205,21 +241,39 @@ export interface RunAgentOptions {
205
241
  attachments?: JsonObject[];
206
242
  turn?: ChannelTurn;
207
243
  metadata?: JsonObject;
244
+ /** Exact per-connection resource/capability requests. Persisted for audit; never contains credential values. */
245
+ sandboxCredentials?: Record<string, SandboxCredentialRequest>;
208
246
  eventId?: string;
209
247
  userId?: string;
248
+ /** Canonical current actor. Authenticated channel/host code owns this value. */
249
+ principal?: AgentPrincipal;
250
+ /** Canonical actor that originally started the conversation. */
251
+ initiator?: AgentPrincipal;
252
+ /** Immutable trust boundary. Direct runs default to the whole agent. */
253
+ audience?: AgentAudience;
210
254
  conversationId?: string;
211
255
  projectId?: string;
256
+ /** Select an existing durable workspace instead of resolving one from the run scope. */
257
+ workspaceId?: string;
258
+ /** Tenant boundary used to authorize explicit workspace selection. */
259
+ tenantId?: string;
212
260
  delivery?: JsonObject;
213
261
  existingRun?: RunRecord;
214
262
  target?: TriggerTarget;
215
263
  promptContext?: JsonObject;
216
264
  trustedAttachmentProvider?: string;
265
+ /** Explicitly permit generic public HTTP(S) attachment metadata for this direct run. */
266
+ allowRemoteAttachments?: boolean;
217
267
  /**
218
268
  * Eval harness options (tool stubs, approval auto-resolve, record-only
219
269
  * delivery). Persisted verbatim into RunRecord.input.eval so the block is
220
270
  * auditable in run detail and survives crash-resume.
221
271
  */
222
272
  eval?: EvalRunOptions;
273
+ /** Runtime-owned frozen context used only by exact run replay. */
274
+ contextSnapshot?: ContextBundle;
275
+ /** Durable provenance for a runtime-owned exact-input replay. */
276
+ replay?: RunReplayProvenance;
223
277
  /**
224
278
  * Pre-acquired capacity admission from a host entry point that claimed the
225
279
  * slot before consuming an idempotency key. Internal; `run()` releases it.
@@ -238,6 +292,14 @@ export interface RunAgentOptions {
238
292
  */
239
293
  onRunCreated?: (run: RunRecord) => Promise<void> | void;
240
294
  }
295
+ export interface RunReplayProvenance {
296
+ sourceRunId: string;
297
+ sourceAgentRevision: string;
298
+ inputSha256: string;
299
+ contextSha256: string;
300
+ attachmentSha256s: string[];
301
+ deliveryMode: "record-only";
302
+ }
241
303
  export interface RunAgentResult {
242
304
  run: RunRecord;
243
305
  events: RunEvent[];
@@ -296,20 +358,25 @@ export interface RuntimeScheduleExecution {
296
358
  message: string;
297
359
  channel: string;
298
360
  trigger?: ScheduleTriggerDefinition;
361
+ lifecycle?: CompiledAutomationLifecycle;
299
362
  target?: TriggerTarget;
300
363
  automationEvent?: import("@assemblyline-agents/core").AutomationEvent;
301
364
  metadata: JsonObject;
302
365
  definition: JsonObject;
303
366
  userId?: string;
367
+ principal?: AgentPrincipal;
368
+ initiator?: AgentPrincipal;
369
+ audience?: AgentAudience;
304
370
  conversationId?: string;
305
371
  projectId?: string;
372
+ workspaceId?: string;
373
+ tenantId?: string;
306
374
  delivery?: JsonObject;
307
375
  turnMetadata?: JsonObject;
308
376
  }
309
377
  export interface FilesystemSyncResult {
310
378
  memoryRevision: string;
311
379
  memoryFiles: BlobRecord[];
312
- artifacts: BlobRecord[];
313
380
  fileRevisions: JsonObject[];
314
381
  }
315
382
  /** Engine-neutral session state the runtime persists alongside an opaque harness continuation. */
@@ -337,6 +404,8 @@ export interface HarnessLoopState {
337
404
  defaultToolNames: Set<string>;
338
405
  connectionRegistry: RuntimeConnectionRegistry;
339
406
  discoveredConnectionTools: Map<string, ConnectionToolMetadata>;
407
+ /** Deferred tools registered with an engine-native discovery surface. */
408
+ exposedDeferredToolNames: Set<string>;
340
409
  setPause: (pause: RuntimePause) => void;
341
410
  }
342
411
  /** Engine-neutral fields restored from a persisted harness continuation checkpoint. */