@assemblyline-agents/runtime 2.0.0 → 3.1.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
@@ -1,6 +1,6 @@
1
1
  import type { JsonObject } from "@assemblyline-agents/core";
2
2
  import type { ChannelTurn } from "./channel.js";
3
- import type { DeliveryObligation, RunRecord, StateAdapter } from "./index.js";
3
+ import type { DeliveryObligation, RunDeliveryStatus, RunRecord, StateAdapter } from "./index.js";
4
4
  import type { RuntimeLogger } from "./logging.js";
5
5
  /**
6
6
  * Durable delivery queue: lease/retry record helpers shared by the state
@@ -10,6 +10,8 @@ import type { RuntimeLogger } from "./logging.js";
10
10
  * `for update skip locked`).
11
11
  */
12
12
  export declare const DEFAULT_DELIVERY_QUEUE_MAX_ATTEMPTS = 5;
13
+ export declare const DEFAULT_DELIVERY_FILE_MAX_COUNT = 10;
14
+ export declare const DEFAULT_DELIVERY_FILE_MAX_BYTES: number;
13
15
  export type DeliveryObligationInput = Omit<DeliveryObligation, "id" | "createdAt" | "updatedAt" | "attemptCount" | "maxAttempts" | "nextAttemptAt"> & {
14
16
  attemptCount?: number;
15
17
  maxAttempts?: number;
@@ -52,6 +54,12 @@ export interface DeliveryQueueHost {
52
54
  sendQueuedDelivery(delivery: DeliveryObligation): Promise<QueuedDeliverySendOutcome>;
53
55
  agentEnabled(): Promise<boolean>;
54
56
  }
57
+ export declare function isDeliveryFailureNotice(delivery: DeliveryObligation): boolean;
58
+ export declare function recordPrimaryDeliveryStatus(state: StateAdapter, delivery: DeliveryObligation, status: RunDeliveryStatus, options?: {
59
+ error?: string;
60
+ attempts?: number;
61
+ }): Promise<void>;
62
+ export declare function enqueueDeliveryFailureNotice(state: StateAdapter, delivery: DeliveryObligation, error: string, attempts: number, now?: Date): Promise<DeliveryObligation | undefined>;
55
63
  export declare function createDeliveryRecord(input: DeliveryObligationInput): DeliveryObligation;
56
64
  /** Fill queue defaults on rows persisted before the durable delivery queue existed. */
57
65
  export declare function normalizeDeliveryRecord(delivery: DeliveryObligation): DeliveryObligation;
@@ -77,6 +85,18 @@ export declare function deferFailedDelivery(input: {
77
85
  /** Recover expired leases, lease due deliveries, and attempt each send once. */
78
86
  export declare function runDueDeliveriesImpl(host: DeliveryQueueHost, options?: DeliveryLeaseOptions): Promise<DeliveryExecutionResult[]>;
79
87
  export declare function finalDeliveryIdempotencyKey(run: RunRecord, channel: string, turn?: ChannelTurn): string;
88
+ /**
89
+ * Enqueue a user-visible notice that a run failed terminally, carrying the
90
+ * real error. Async channels (Slack, Discord, …) have no other way to learn
91
+ * the outcome — without this obligation a terminal failure is silence.
92
+ * Skipped when the run already has any delivery obligation: the real answer
93
+ * (or an earlier notice) already owns the conversation slot.
94
+ */
95
+ export declare function enqueueRunFailureNotice(host: {
96
+ state: StateAdapter;
97
+ deliveryQueueMaxAttempts: number;
98
+ now(): Date;
99
+ }, run: RunRecord, error: string): Promise<DeliveryObligation | undefined>;
80
100
  export declare function deliveryFileName(path: string): string;
81
101
  export declare function deliveryFileContentType(path: string): string;
82
102
  export declare function startDeliveryWorkerImpl(host: DeliveryQueueHost, options: {
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-queue.d.ts","sourceRoot":"","sources":["../src/delivery-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delivery-queue.d.ts","sourceRoot":"","sources":["../src/delivery-queue.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACjG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;;;;;GAMG;AAEH,eAAO,MAAM,mCAAmC,IAAI,CAAC;AACrD,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAClD,eAAO,MAAM,+BAA+B,QAAmB,CAAC;AAEhE,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,kBAAkB,EAClB,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,cAAc,GAAG,aAAa,GAAG,eAAe,CACpF,GAAG;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;KACnC,GAAG,IAAI,MAAM,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;CAC5H,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AAED,6DAA6D;AAC7D,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,IAAI,IAAI,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACrF,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAClC;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAE7E;AAED,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,kBAAkB,EAC5B,MAAM,EAAE,iBAAiB,EACzB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAClD,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,4BAA4B,CAChD,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,IAAiB,GACrB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CA6CzC;AAcD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,uBAAuB,GAAG,kBAAkB,CAYvF;AAED,uFAAuF;AACvF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,kBAAkB,CAYxF;AAID,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,uBAAuB,GAAG,kBAAkB,CAUlH;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAI9E;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAGtE;AAED,gGAAgG;AAChG,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAIvE;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,IAAI,CAAC;CACX,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAqB9B;AAED,gFAAgF;AAChF,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,iBAAiB,EACvB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CA+DpC;AAmED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,CAKvG;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE;IAAE,KAAK,EAAE,YAAY,CAAC;IAAC,wBAAwB,EAAE,MAAM,CAAC;IAAC,GAAG,IAAI,IAAI,CAAA;CAAE,EAC5E,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAqBzC;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAc5D;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACvE;IAAE,IAAI,IAAI,IAAI,CAAA;CAAE,GAAG,SAAS,CAkB9B"}
@@ -1,4 +1,5 @@
1
1
  import { randomUUID } from "node:crypto";
2
+ import { deliveryFileEntries, deliveryFileNames } from "./delivery-files.js";
2
3
  /**
3
4
  * Durable delivery queue: lease/retry record helpers shared by the state
4
5
  * adapters, plus the worker loop that drains deferred deliveries. Mirrors the
@@ -7,6 +8,68 @@ import { randomUUID } from "node:crypto";
7
8
  * `for update skip locked`).
8
9
  */
9
10
  export const DEFAULT_DELIVERY_QUEUE_MAX_ATTEMPTS = 5;
11
+ export const DEFAULT_DELIVERY_FILE_MAX_COUNT = 10;
12
+ export const DEFAULT_DELIVERY_FILE_MAX_BYTES = 50 * 1024 * 1024;
13
+ export function isDeliveryFailureNotice(delivery) {
14
+ return delivery.payload.deliveryFailureNotice === true;
15
+ }
16
+ export async function recordPrimaryDeliveryStatus(state, delivery, status, options = {}) {
17
+ if (isDeliveryFailureNotice(delivery))
18
+ return;
19
+ await state.updateRun(delivery.runId, {
20
+ deliveryStatus: status,
21
+ deliveryError: options.error,
22
+ ...(options.attempts !== undefined ? { deliveryAttempts: options.attempts } : {})
23
+ });
24
+ }
25
+ export async function enqueueDeliveryFailureNotice(state, delivery, error, attempts, now = new Date()) {
26
+ if (isDeliveryFailureNotice(delivery))
27
+ return undefined;
28
+ const idempotencyKey = `${delivery.idempotencyKey}:failure-notice`;
29
+ const existing = (await state.listDeliveries(delivery.runId))
30
+ .find((candidate) => candidate.idempotencyKey === idempotencyKey);
31
+ if (existing)
32
+ return existing;
33
+ const files = deliveryFileEntries(delivery.payload);
34
+ const hasFiles = files.length > 0;
35
+ const fileNames = deliveryFileNames(delivery.payload);
36
+ const originalResponse = typeof delivery.payload.response === "string"
37
+ ? delivery.payload.response.trim()
38
+ : "";
39
+ const attemptLabel = `${attempts} ${attempts === 1 ? "attempt" : "attempts"}`;
40
+ const preservedFiles = fileNames.map((name) => `\`${name}\``).join(", ");
41
+ const notice = [
42
+ hasFiles
43
+ ? `⚠️ The result was completed, but ${files.length === 1 ? "its file attachment" : "its file attachments"} could not be delivered after ${attemptLabel}. ${files.length === 1 ? "The preserved file is" : "The preserved files are"} ${preservedFiles}.`
44
+ : `⚠️ The result was completed, but channel delivery failed after ${attemptLabel}.`,
45
+ ...(hasFiles ? ["Ask me to send the preserved file again."] : []),
46
+ ...(!hasFiles && originalResponse ? [originalResponse] : []),
47
+ `Delivery error: ${error}`
48
+ ].join("\n\n");
49
+ const failureNotice = await state.createDelivery({
50
+ runId: delivery.runId,
51
+ channel: delivery.channel,
52
+ payload: {
53
+ response: notice,
54
+ eventId: delivery.payload.eventId ?? null,
55
+ conversationId: delivery.payload.conversationId ?? null,
56
+ delivery: delivery.payload.delivery ?? null,
57
+ deliveryFailureNotice: true,
58
+ sourceDeliveryId: delivery.id
59
+ },
60
+ idempotencyKey,
61
+ status: "pending",
62
+ maxAttempts: delivery.maxAttempts,
63
+ nextAttemptAt: now.toISOString()
64
+ });
65
+ await state.appendEvent(delivery.runId, "delivery.failure_notice_created", {
66
+ deliveryId: failureNotice.id,
67
+ sourceDeliveryId: delivery.id,
68
+ error,
69
+ attempts
70
+ });
71
+ return failureNotice;
72
+ }
10
73
  function timestamp() {
11
74
  return new Date().toISOString();
12
75
  }
@@ -110,6 +173,33 @@ export async function runDueDeliveriesImpl(host, options = {}) {
110
173
  const now = options.now ?? host.now();
111
174
  const recovered = await state.recoverExpiredDeliveries?.(now) ?? [];
112
175
  for (const delivery of recovered) {
176
+ if (delivery.status === "failed") {
177
+ // The lease expired on the final attempt: the recovery terminalized it.
178
+ await state.appendEvent(delivery.runId, "delivery.failed", {
179
+ deliveryId: delivery.id,
180
+ error: delivery.lastError ?? "Delivery lease expired after the final attempt.",
181
+ attempts: delivery.attemptCount,
182
+ queued: true
183
+ });
184
+ host.logger.warn("delivery permanently failed", {
185
+ deliveryId: delivery.id,
186
+ runId: delivery.runId,
187
+ channel: delivery.channel,
188
+ attempts: delivery.attemptCount,
189
+ error: delivery.lastError ?? "Delivery lease expired after the final attempt."
190
+ });
191
+ const error = delivery.lastError ?? "Delivery lease expired after the final attempt.";
192
+ await recordPrimaryDeliveryStatus(state, delivery, "failed", {
193
+ error,
194
+ attempts: delivery.attemptCount
195
+ });
196
+ await enqueueDeliveryFailureNotice(state, delivery, error, delivery.attemptCount, now);
197
+ continue;
198
+ }
199
+ await recordPrimaryDeliveryStatus(state, delivery, "pending", {
200
+ ...(delivery.lastError ? { error: delivery.lastError } : {}),
201
+ attempts: delivery.attemptCount
202
+ });
113
203
  await state.appendEvent(delivery.runId, "delivery.retrying", {
114
204
  deliveryId: delivery.id,
115
205
  reason: "expired_lease",
@@ -125,13 +215,26 @@ export async function runDueDeliveriesImpl(host, options = {}) {
125
215
  });
126
216
  const results = [];
127
217
  for (const delivery of leased) {
128
- results.push(await processLeasedDelivery(host, delivery));
218
+ try {
219
+ results.push(await processLeasedDelivery(host, delivery));
220
+ }
221
+ catch (error) {
222
+ // A settle-path throw (lease expired mid-send, adapter blip) must not
223
+ // abandon the rest of the already-leased batch.
224
+ host.logger.warn("delivery settle failed; lease recovery will retry", {
225
+ deliveryId: delivery.id,
226
+ runId: delivery.runId,
227
+ error: errorMessage(error)
228
+ });
229
+ results.push({ deliveryId: delivery.id, runId: delivery.runId, status: "retrying", error: errorMessage(error) });
230
+ }
129
231
  }
130
232
  return results;
131
233
  }
132
234
  async function processLeasedDelivery(host, delivery) {
133
235
  const { state } = host;
134
236
  const leaseToken = delivery.leaseToken ?? "";
237
+ await recordPrimaryDeliveryStatus(state, delivery, "sending", { attempts: delivery.attemptCount });
135
238
  let outcome;
136
239
  try {
137
240
  outcome = await host.sendQueuedDelivery(delivery);
@@ -150,6 +253,7 @@ async function processLeasedDelivery(host, delivery) {
150
253
  queued: true,
151
254
  metadata: send
152
255
  });
256
+ await recordPrimaryDeliveryStatus(state, delivery, "sent", { attempts: completed.attemptCount });
153
257
  return { deliveryId: delivery.id, runId: delivery.runId, status: "sent" };
154
258
  }
155
259
  const error = outcome.error ?? "Channel delivery failed.";
@@ -172,6 +276,11 @@ async function processLeasedDelivery(host, delivery) {
172
276
  attempts: failed.attemptCount,
173
277
  error
174
278
  });
279
+ await recordPrimaryDeliveryStatus(state, delivery, "failed", {
280
+ error,
281
+ attempts: failed.attemptCount
282
+ });
283
+ await enqueueDeliveryFailureNotice(state, delivery, error, failed.attemptCount, host.now());
175
284
  return { deliveryId: delivery.id, runId: delivery.runId, status: "failed", error };
176
285
  }
177
286
  await state.appendEvent(delivery.runId, "delivery.retrying", {
@@ -181,6 +290,10 @@ async function processLeasedDelivery(host, delivery) {
181
290
  maxAttempts: failed.maxAttempts,
182
291
  nextAttemptAt: failed.nextAttemptAt
183
292
  });
293
+ await recordPrimaryDeliveryStatus(state, delivery, "pending", {
294
+ error,
295
+ attempts: failed.attemptCount
296
+ });
184
297
  return { deliveryId: delivery.id, runId: delivery.runId, status: "retrying", error };
185
298
  }
186
299
  export function finalDeliveryIdempotencyKey(run, channel, turn) {
@@ -190,6 +303,36 @@ export function finalDeliveryIdempotencyKey(run, channel, turn) {
190
303
  return `delivery:${channel}:${eventId}:final`;
191
304
  return `delivery:${run.id}`;
192
305
  }
306
+ /**
307
+ * Enqueue a user-visible notice that a run failed terminally, carrying the
308
+ * real error. Async channels (Slack, Discord, …) have no other way to learn
309
+ * the outcome — without this obligation a terminal failure is silence.
310
+ * Skipped when the run already has any delivery obligation: the real answer
311
+ * (or an earlier notice) already owns the conversation slot.
312
+ */
313
+ export async function enqueueRunFailureNotice(host, run, error) {
314
+ const existing = await host.state.listDeliveries(run.id);
315
+ if (existing.length > 0)
316
+ return undefined;
317
+ const channel = typeof run.input.channel === "string" ? run.input.channel : "local";
318
+ const delivery = await host.state.createDelivery({
319
+ runId: run.id,
320
+ channel,
321
+ payload: {
322
+ response: `⚠️ The request failed: ${error}`,
323
+ eventId: typeof run.input.eventId === "string" ? run.input.eventId : null,
324
+ conversationId: typeof run.input.conversationId === "string" ? run.input.conversationId : null,
325
+ delivery: run.input.delivery ?? null,
326
+ failed: true
327
+ },
328
+ idempotencyKey: finalDeliveryIdempotencyKey(run, channel),
329
+ status: "pending",
330
+ maxAttempts: host.deliveryQueueMaxAttempts,
331
+ nextAttemptAt: host.now().toISOString()
332
+ });
333
+ await host.state.appendEvent(run.id, "delivery.obligation_created", { deliveryId: delivery.id, failureNotice: true });
334
+ return delivery;
335
+ }
193
336
  export function deliveryFileName(path) {
194
337
  return path.split("/").filter(Boolean).at(-1) ?? "artifact";
195
338
  }
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-queue.js","sourceRoot":"","sources":["../src/delivery-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delivery-queue.js","sourceRoot":"","sources":["../src/delivery-queue.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { AgentManifest, CompiledChannel, JsonObject, SandboxSession } from
2
2
  import type { ChannelContext, ChannelModule, ChannelTurn, ChannelTurnLifecycle } from "./channel.js";
3
3
  import type { RuntimeLogger } from "./logging.js";
4
4
  import type { BlobAdapter, DeliverySendResult, EmitSpanOptions, RunAgentResult, RuntimeSandboxHandle } from "./runtime-types.js";
5
- import type { DeliveryObligation, RunRecord, SandboxSyncJobRecord, StateAdapter } from "./state.js";
5
+ import type { DeliveryObligation, RunRecord, StateAdapter, WorkspaceManifestEntry } from "./state.js";
6
6
  /** Narrow slice of the runtime the delivery send path needs. */
7
7
  export interface DeliverySendHost {
8
8
  state: StateAdapter;
@@ -17,6 +17,7 @@ export interface DeliverySendHost {
17
17
  deliveryQueueLeaseMs: number;
18
18
  deliveryQueueMaxAttempts: number;
19
19
  sandboxSyncMaxAttempts: number;
20
+ workspaceFilesForDelivery(run: RunRecord): Promise<WorkspaceManifestEntry[]>;
20
21
  result(run: RunRecord, response: string, waitingForApproval?: boolean, waitingForInput?: boolean, waitingForConnection?: boolean): Promise<RunAgentResult>;
21
22
  sandboxSessionKey(run: RunRecord): string;
22
23
  debugSwallow(message: string, fields: JsonObject): (error: unknown) => undefined;
@@ -35,7 +36,6 @@ export interface ChannelTurnStart {
35
36
  }
36
37
  export declare function completeRunImpl(host: DeliverySendHost, run: RunRecord, sandboxHandle: RuntimeSandboxHandle, response: string, channel: string, turn?: ChannelTurn, conversationId?: string): Promise<RunAgentResult>;
37
38
  export declare function latestRunFailureMessageImpl(host: DeliverySendHost, runId: string): Promise<string | undefined>;
38
- export declare function enqueueSandboxSyncAfterDeliveryImpl(host: DeliverySendHost, run: RunRecord, sandboxSession: SandboxSession): Promise<SandboxSyncJobRecord>;
39
39
  export declare function beginChannelTurnImpl(host: DeliverySendHost, channelName: string, turn: ChannelTurn | undefined): Promise<ChannelTurnStart>;
40
40
  export declare function recordChannelTurnStartImpl(host: DeliverySendHost, start: ChannelTurnStart, run: RunRecord, channelName: string): Promise<void>;
41
41
  export declare function stopUnclaimedChannelTurnImpl(host: DeliverySendHost, start: ChannelTurnStart | undefined, channelName: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-send.d.ts","sourceRoot":"","sources":["../src/delivery-send.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delivery-send.d.ts","sourceRoot":"","sources":["../src/delivery-send.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,UAAU,EACV,cAAc,EACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EACb,WAAW,EACX,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAgBtB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EACV,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EACV,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAkBpB,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACxC,QAAQ,EAAE,aAAa,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,aAAa,CAAC;IACrC,GAAG,IAAI,IAAI,CAAC;IACZ,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yBAAyB,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;IAC7E,MAAM,CACJ,GAAG,EAAE,SAAS,EACd,QAAQ,EAAE,MAAM,EAChB,kBAAkB,CAAC,EAAE,OAAO,EAC5B,eAAe,CAAC,EAAE,OAAO,EACzB,oBAAoB,CAAC,EAAE,OAAO,GAC7B,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3B,iBAAiB,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAAC;IAC1C,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC;IACjF,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5G,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAClE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,sBAAsB,CACpB,GAAG,EAAE,SAAS,EACd,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,eAAe,GAAG,iBAAiB,GAAG,mBAAmB,GAC/D,OAAO,CAAC,SAAS,CAAC,CAAC;IACtB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACpE,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAAC;CAC1D;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,OAAO,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,gBAAgB,EACtB,GAAG,EAAE,SAAS,EACd,aAAa,EAAE,oBAAoB,EACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,WAAW,EAClB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,CAyBzB;AAgPD,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAUpH;AA+ND,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,WAAW,GAAG,SAAS,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CA+B3B;AAED,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,gBAAgB,EACvB,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,gBAAgB,GAAG,SAAS,EACnC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,oBAAoB,GAAG,SAAS,EAC3C,GAAG,EAAE,SAAS,EACd,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAmBf;AAyDD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,WAAW,EAClB,GAAG,CAAC,EAAE,SAAS,GACd,OAAO,CAAC,kBAAkB,CAAC,CAmD7B"}