@assemblyline-agents/runtime 0.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 (331) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +19 -0
  3. package/dist/agent-harness.d.ts +108 -0
  4. package/dist/agent-harness.d.ts.map +1 -0
  5. package/dist/agent-harness.js +2 -0
  6. package/dist/agent-harness.js.map +1 -0
  7. package/dist/attachments-legacy.d.ts +17 -0
  8. package/dist/attachments-legacy.d.ts.map +1 -0
  9. package/dist/attachments-legacy.js +273 -0
  10. package/dist/attachments-legacy.js.map +1 -0
  11. package/dist/attachments.d.ts +49 -0
  12. package/dist/attachments.d.ts.map +1 -0
  13. package/dist/attachments.js +832 -0
  14. package/dist/attachments.js.map +1 -0
  15. package/dist/builtin-tool-executors.d.ts +96 -0
  16. package/dist/builtin-tool-executors.d.ts.map +1 -0
  17. package/dist/builtin-tool-executors.js +501 -0
  18. package/dist/builtin-tool-executors.js.map +1 -0
  19. package/dist/builtin-tools.d.ts +30 -0
  20. package/dist/builtin-tools.d.ts.map +1 -0
  21. package/dist/builtin-tools.js +690 -0
  22. package/dist/builtin-tools.js.map +1 -0
  23. package/dist/capability-catalog.d.ts +27 -0
  24. package/dist/capability-catalog.d.ts.map +1 -0
  25. package/dist/capability-catalog.js +193 -0
  26. package/dist/capability-catalog.js.map +1 -0
  27. package/dist/channel-http-util.d.ts +34 -0
  28. package/dist/channel-http-util.d.ts.map +1 -0
  29. package/dist/channel-http-util.js +93 -0
  30. package/dist/channel-http-util.js.map +1 -0
  31. package/dist/channel-ingress.d.ts +56 -0
  32. package/dist/channel-ingress.d.ts.map +1 -0
  33. package/dist/channel-ingress.js +273 -0
  34. package/dist/channel-ingress.js.map +1 -0
  35. package/dist/channel.d.ts +146 -0
  36. package/dist/channel.d.ts.map +1 -0
  37. package/dist/channel.js +2 -0
  38. package/dist/channel.js.map +1 -0
  39. package/dist/checkpoints.d.ts +34 -0
  40. package/dist/checkpoints.d.ts.map +1 -0
  41. package/dist/checkpoints.js +86 -0
  42. package/dist/checkpoints.js.map +1 -0
  43. package/dist/code-mode.d.ts +20 -0
  44. package/dist/code-mode.d.ts.map +1 -0
  45. package/dist/code-mode.js +658 -0
  46. package/dist/code-mode.js.map +1 -0
  47. package/dist/computer-relay-protocol.d.ts +36 -0
  48. package/dist/computer-relay-protocol.d.ts.map +1 -0
  49. package/dist/computer-relay-protocol.js +127 -0
  50. package/dist/computer-relay-protocol.js.map +1 -0
  51. package/dist/concurrency.d.ts +68 -0
  52. package/dist/concurrency.d.ts.map +1 -0
  53. package/dist/concurrency.js +193 -0
  54. package/dist/concurrency.js.map +1 -0
  55. package/dist/connection-auth-util.d.ts +56 -0
  56. package/dist/connection-auth-util.d.ts.map +1 -0
  57. package/dist/connection-auth-util.js +154 -0
  58. package/dist/connection-auth-util.js.map +1 -0
  59. package/dist/connection-clients.d.ts +50 -0
  60. package/dist/connection-clients.d.ts.map +1 -0
  61. package/dist/connection-clients.js +402 -0
  62. package/dist/connection-clients.js.map +1 -0
  63. package/dist/connection-stores.d.ts +108 -0
  64. package/dist/connection-stores.d.ts.map +1 -0
  65. package/dist/connection-stores.js +127 -0
  66. package/dist/connection-stores.js.map +1 -0
  67. package/dist/connection-util.d.ts +27 -0
  68. package/dist/connection-util.d.ts.map +1 -0
  69. package/dist/connection-util.js +118 -0
  70. package/dist/connection-util.js.map +1 -0
  71. package/dist/connections.d.ts +152 -0
  72. package/dist/connections.d.ts.map +1 -0
  73. package/dist/connections.js +838 -0
  74. package/dist/connections.js.map +1 -0
  75. package/dist/content-capture.d.ts +32 -0
  76. package/dist/content-capture.d.ts.map +1 -0
  77. package/dist/content-capture.js +77 -0
  78. package/dist/content-capture.js.map +1 -0
  79. package/dist/context-policy-util.d.ts +45 -0
  80. package/dist/context-policy-util.d.ts.map +1 -0
  81. package/dist/context-policy-util.js +120 -0
  82. package/dist/context-policy-util.js.map +1 -0
  83. package/dist/conversation-context.d.ts +55 -0
  84. package/dist/conversation-context.d.ts.map +1 -0
  85. package/dist/conversation-context.js +179 -0
  86. package/dist/conversation-context.js.map +1 -0
  87. package/dist/conversation-transcript.d.ts +49 -0
  88. package/dist/conversation-transcript.d.ts.map +1 -0
  89. package/dist/conversation-transcript.js +77 -0
  90. package/dist/conversation-transcript.js.map +1 -0
  91. package/dist/conversation-turn-dispatch.d.ts +46 -0
  92. package/dist/conversation-turn-dispatch.d.ts.map +1 -0
  93. package/dist/conversation-turn-dispatch.js +201 -0
  94. package/dist/conversation-turn-dispatch.js.map +1 -0
  95. package/dist/delivery-queue.d.ts +89 -0
  96. package/dist/delivery-queue.d.ts.map +1 -0
  97. package/dist/delivery-queue.js +244 -0
  98. package/dist/delivery-queue.js.map +1 -0
  99. package/dist/delivery-send.d.ts +44 -0
  100. package/dist/delivery-send.d.ts.map +1 -0
  101. package/dist/delivery-send.js +494 -0
  102. package/dist/delivery-send.js.map +1 -0
  103. package/dist/env-config.d.ts +6 -0
  104. package/dist/env-config.d.ts.map +1 -0
  105. package/dist/env-config.js +27 -0
  106. package/dist/env-config.js.map +1 -0
  107. package/dist/eval-run-options.d.ts +37 -0
  108. package/dist/eval-run-options.d.ts.map +1 -0
  109. package/dist/eval-run-options.js +106 -0
  110. package/dist/eval-run-options.js.map +1 -0
  111. package/dist/harness-continuation.d.ts +54 -0
  112. package/dist/harness-continuation.d.ts.map +1 -0
  113. package/dist/harness-continuation.js +58 -0
  114. package/dist/harness-continuation.js.map +1 -0
  115. package/dist/harness-loop.d.ts +110 -0
  116. package/dist/harness-loop.d.ts.map +1 -0
  117. package/dist/harness-loop.js +575 -0
  118. package/dist/harness-loop.js.map +1 -0
  119. package/dist/hook-dispatch.d.ts +19 -0
  120. package/dist/hook-dispatch.d.ts.map +1 -0
  121. package/dist/hook-dispatch.js +37 -0
  122. package/dist/hook-dispatch.js.map +1 -0
  123. package/dist/http.d.ts +26 -0
  124. package/dist/http.d.ts.map +1 -0
  125. package/dist/http.js +114 -0
  126. package/dist/http.js.map +1 -0
  127. package/dist/in-memory-conversation-turn-store.d.ts +29 -0
  128. package/dist/in-memory-conversation-turn-store.d.ts.map +1 -0
  129. package/dist/in-memory-conversation-turn-store.js +166 -0
  130. package/dist/in-memory-conversation-turn-store.js.map +1 -0
  131. package/dist/in-memory-run-store.d.ts +39 -0
  132. package/dist/in-memory-run-store.d.ts.map +1 -0
  133. package/dist/in-memory-run-store.js +332 -0
  134. package/dist/in-memory-run-store.js.map +1 -0
  135. package/dist/in-memory-sandbox-session-store.d.ts +33 -0
  136. package/dist/in-memory-sandbox-session-store.d.ts.map +1 -0
  137. package/dist/in-memory-sandbox-session-store.js +186 -0
  138. package/dist/in-memory-sandbox-session-store.js.map +1 -0
  139. package/dist/in-memory-small-stores.d.ts +117 -0
  140. package/dist/in-memory-small-stores.d.ts.map +1 -0
  141. package/dist/in-memory-small-stores.js +340 -0
  142. package/dist/in-memory-small-stores.js.map +1 -0
  143. package/dist/in-memory-usage-store.d.ts +15 -0
  144. package/dist/in-memory-usage-store.d.ts.map +1 -0
  145. package/dist/in-memory-usage-store.js +49 -0
  146. package/dist/in-memory-usage-store.js.map +1 -0
  147. package/dist/index.d.ts +467 -0
  148. package/dist/index.d.ts.map +1 -0
  149. package/dist/index.js +2046 -0
  150. package/dist/index.js.map +1 -0
  151. package/dist/json-util.d.ts +19 -0
  152. package/dist/json-util.d.ts.map +1 -0
  153. package/dist/json-util.js +59 -0
  154. package/dist/json-util.js.map +1 -0
  155. package/dist/local-sandbox.d.ts +16 -0
  156. package/dist/local-sandbox.d.ts.map +1 -0
  157. package/dist/local-sandbox.js +327 -0
  158. package/dist/local-sandbox.js.map +1 -0
  159. package/dist/logging.d.ts +16 -0
  160. package/dist/logging.d.ts.map +1 -0
  161. package/dist/logging.js +41 -0
  162. package/dist/logging.js.map +1 -0
  163. package/dist/mcp-client.d.ts +27 -0
  164. package/dist/mcp-client.d.ts.map +1 -0
  165. package/dist/mcp-client.js +169 -0
  166. package/dist/mcp-client.js.map +1 -0
  167. package/dist/model-harnesses.d.ts +4 -0
  168. package/dist/model-harnesses.d.ts.map +1 -0
  169. package/dist/model-harnesses.js +6 -0
  170. package/dist/model-harnesses.js.map +1 -0
  171. package/dist/model-media.d.ts +36 -0
  172. package/dist/model-media.d.ts.map +1 -0
  173. package/dist/model-media.js +234 -0
  174. package/dist/model-media.js.map +1 -0
  175. package/dist/operator-controls.d.ts +31 -0
  176. package/dist/operator-controls.d.ts.map +1 -0
  177. package/dist/operator-controls.js +71 -0
  178. package/dist/operator-controls.js.map +1 -0
  179. package/dist/pi-agent-harness.d.ts +40 -0
  180. package/dist/pi-agent-harness.d.ts.map +1 -0
  181. package/dist/pi-agent-harness.js +222 -0
  182. package/dist/pi-agent-harness.js.map +1 -0
  183. package/dist/pi-harness.d.ts +42 -0
  184. package/dist/pi-harness.d.ts.map +1 -0
  185. package/dist/pi-harness.js +142 -0
  186. package/dist/pi-harness.js.map +1 -0
  187. package/dist/relay-mcp-client.d.ts +17 -0
  188. package/dist/relay-mcp-client.d.ts.map +1 -0
  189. package/dist/relay-mcp-client.js +119 -0
  190. package/dist/relay-mcp-client.js.map +1 -0
  191. package/dist/replay-resume.d.ts +107 -0
  192. package/dist/replay-resume.d.ts.map +1 -0
  193. package/dist/replay-resume.js +495 -0
  194. package/dist/replay-resume.js.map +1 -0
  195. package/dist/resource-projection-util.d.ts +58 -0
  196. package/dist/resource-projection-util.d.ts.map +1 -0
  197. package/dist/resource-projection-util.js +298 -0
  198. package/dist/resource-projection-util.js.map +1 -0
  199. package/dist/resource-projection.d.ts +45 -0
  200. package/dist/resource-projection.d.ts.map +1 -0
  201. package/dist/resource-projection.js +481 -0
  202. package/dist/resource-projection.js.map +1 -0
  203. package/dist/run-heartbeat.d.ts +34 -0
  204. package/dist/run-heartbeat.d.ts.map +1 -0
  205. package/dist/run-heartbeat.js +62 -0
  206. package/dist/run-heartbeat.js.map +1 -0
  207. package/dist/run-outcome.d.ts +47 -0
  208. package/dist/run-outcome.d.ts.map +1 -0
  209. package/dist/run-outcome.js +92 -0
  210. package/dist/run-outcome.js.map +1 -0
  211. package/dist/run-recovery.d.ts +117 -0
  212. package/dist/run-recovery.d.ts.map +1 -0
  213. package/dist/run-recovery.js +466 -0
  214. package/dist/run-recovery.js.map +1 -0
  215. package/dist/run-resolver.d.ts +35 -0
  216. package/dist/run-resolver.d.ts.map +1 -0
  217. package/dist/run-resolver.js +84 -0
  218. package/dist/run-resolver.js.map +1 -0
  219. package/dist/run-stream.d.ts +37 -0
  220. package/dist/run-stream.d.ts.map +1 -0
  221. package/dist/run-stream.js +78 -0
  222. package/dist/run-stream.js.map +1 -0
  223. package/dist/runs-query.d.ts +29 -0
  224. package/dist/runs-query.d.ts.map +1 -0
  225. package/dist/runs-query.js +142 -0
  226. package/dist/runs-query.js.map +1 -0
  227. package/dist/runtime-bundle.d.ts +3 -0
  228. package/dist/runtime-bundle.d.ts.map +1 -0
  229. package/dist/runtime-bundle.js +18 -0
  230. package/dist/runtime-bundle.js.map +1 -0
  231. package/dist/runtime-types.d.ts +397 -0
  232. package/dist/runtime-types.d.ts.map +1 -0
  233. package/dist/runtime-types.js +2 -0
  234. package/dist/runtime-types.js.map +1 -0
  235. package/dist/runtime-util.d.ts +45 -0
  236. package/dist/runtime-util.d.ts.map +1 -0
  237. package/dist/runtime-util.js +116 -0
  238. package/dist/runtime-util.js.map +1 -0
  239. package/dist/sandbox-cli-client.d.ts +20 -0
  240. package/dist/sandbox-cli-client.d.ts.map +1 -0
  241. package/dist/sandbox-cli-client.js +97 -0
  242. package/dist/sandbox-cli-client.js.map +1 -0
  243. package/dist/sandbox-fs.d.ts +56 -0
  244. package/dist/sandbox-fs.d.ts.map +1 -0
  245. package/dist/sandbox-fs.js +276 -0
  246. package/dist/sandbox-fs.js.map +1 -0
  247. package/dist/sandbox-session-key.d.ts +8 -0
  248. package/dist/sandbox-session-key.d.ts.map +1 -0
  249. package/dist/sandbox-session-key.js +32 -0
  250. package/dist/sandbox-session-key.js.map +1 -0
  251. package/dist/sandbox-snapshot-policy.d.ts +27 -0
  252. package/dist/sandbox-snapshot-policy.d.ts.map +1 -0
  253. package/dist/sandbox-snapshot-policy.js +94 -0
  254. package/dist/sandbox-snapshot-policy.js.map +1 -0
  255. package/dist/sandbox-sync-worker.d.ts +63 -0
  256. package/dist/sandbox-sync-worker.d.ts.map +1 -0
  257. package/dist/sandbox-sync-worker.js +448 -0
  258. package/dist/sandbox-sync-worker.js.map +1 -0
  259. package/dist/schedule-execution.d.ts +59 -0
  260. package/dist/schedule-execution.d.ts.map +1 -0
  261. package/dist/schedule-execution.js +951 -0
  262. package/dist/schedule-execution.js.map +1 -0
  263. package/dist/scheduler.d.ts +19 -0
  264. package/dist/scheduler.d.ts.map +1 -0
  265. package/dist/scheduler.js +38 -0
  266. package/dist/scheduler.js.map +1 -0
  267. package/dist/security.d.ts +20 -0
  268. package/dist/security.d.ts.map +1 -0
  269. package/dist/security.js +145 -0
  270. package/dist/security.js.map +1 -0
  271. package/dist/self-improvement.d.ts +245 -0
  272. package/dist/self-improvement.d.ts.map +1 -0
  273. package/dist/self-improvement.js +554 -0
  274. package/dist/self-improvement.js.map +1 -0
  275. package/dist/source-loader.d.ts +19 -0
  276. package/dist/source-loader.d.ts.map +1 -0
  277. package/dist/source-loader.js +160 -0
  278. package/dist/source-loader.js.map +1 -0
  279. package/dist/state-store-helpers.d.ts +28 -0
  280. package/dist/state-store-helpers.d.ts.map +1 -0
  281. package/dist/state-store-helpers.js +164 -0
  282. package/dist/state-store-helpers.js.map +1 -0
  283. package/dist/state-stores.d.ts +25 -0
  284. package/dist/state-stores.d.ts.map +1 -0
  285. package/dist/state-stores.js +157 -0
  286. package/dist/state-stores.js.map +1 -0
  287. package/dist/state.d.ts +736 -0
  288. package/dist/state.d.ts.map +1 -0
  289. package/dist/state.js +46 -0
  290. package/dist/state.js.map +1 -0
  291. package/dist/storage.d.ts +188 -0
  292. package/dist/storage.d.ts.map +1 -0
  293. package/dist/storage.js +752 -0
  294. package/dist/storage.js.map +1 -0
  295. package/dist/subagent-execution.d.ts +80 -0
  296. package/dist/subagent-execution.d.ts.map +1 -0
  297. package/dist/subagent-execution.js +135 -0
  298. package/dist/subagent-execution.js.map +1 -0
  299. package/dist/telemetry.d.ts +49 -0
  300. package/dist/telemetry.d.ts.map +1 -0
  301. package/dist/telemetry.js +60 -0
  302. package/dist/telemetry.js.map +1 -0
  303. package/dist/tool-apis.d.ts +22 -0
  304. package/dist/tool-apis.d.ts.map +1 -0
  305. package/dist/tool-apis.js +344 -0
  306. package/dist/tool-apis.js.map +1 -0
  307. package/dist/tool-execution.d.ts +143 -0
  308. package/dist/tool-execution.d.ts.map +1 -0
  309. package/dist/tool-execution.js +573 -0
  310. package/dist/tool-execution.js.map +1 -0
  311. package/dist/trusted-attachments.d.ts +20 -0
  312. package/dist/trusted-attachments.d.ts.map +1 -0
  313. package/dist/trusted-attachments.js +276 -0
  314. package/dist/trusted-attachments.js.map +1 -0
  315. package/dist/usage-accounting.d.ts +37 -0
  316. package/dist/usage-accounting.d.ts.map +1 -0
  317. package/dist/usage-accounting.js +181 -0
  318. package/dist/usage-accounting.js.map +1 -0
  319. package/dist/usage-budget.d.ts +29 -0
  320. package/dist/usage-budget.d.ts.map +1 -0
  321. package/dist/usage-budget.js +145 -0
  322. package/dist/usage-budget.js.map +1 -0
  323. package/dist/usage-reconciliation.d.ts +76 -0
  324. package/dist/usage-reconciliation.d.ts.map +1 -0
  325. package/dist/usage-reconciliation.js +463 -0
  326. package/dist/usage-reconciliation.js.map +1 -0
  327. package/dist/usage-records.d.ts +24 -0
  328. package/dist/usage-records.d.ts.map +1 -0
  329. package/dist/usage-records.js +445 -0
  330. package/dist/usage-records.js.map +1 -0
  331. package/package.json +51 -0
@@ -0,0 +1,501 @@
1
+ import { isConnectionAuthorizationRequiredError, shellQuote } from "@assemblyline-agents/core";
2
+ import { CORE_HARNESS_TOOL_NAMES, LOAD_SKILL_TOOL_NAME, runtimeToolsForManifest, TOOL_DESCRIBE_TOOL_NAME, TOOL_SEARCH_TOOL_NAME } from "./builtin-tools.js";
3
+ import { connectionSearchResultForModel, normalizeDeferredToolSearchInput } from "./capability-catalog.js";
4
+ import { CONNECTION_SEARCH_TOOL_NAME, parseQualifiedName, RuntimeConnectionRegistry } from "./connections.js";
5
+ import { evalRunOptionsForRun } from "./eval-run-options.js";
6
+ import { isJsonObject, redactedToolInput, safeJson } from "./json-util.js";
7
+ import { failRun } from "./run-outcome.js";
8
+ import { skillNameFromSkillPath } from "./resource-projection-util.js";
9
+ import { normalizeConnectionApproval, stringValue } from "./runtime-util.js";
10
+ import { parseSkillBody } from "./self-improvement.js";
11
+ /**
12
+ * Runtime-handled tool executors: the builtin skill/discovery tools
13
+ * (load_skill, tool_search, tool_describe), the deferred local tool catalog,
14
+ * the tool-call bookkeeping those paths share, and the connection tool
15
+ * executors together with the connection-registry factories they run against.
16
+ * None of these route through an authored tool definition, so their records
17
+ * are written here rather than by executeToolWithRecord in
18
+ * ./tool-execution.js. Imports only the {@link ToolExecutionHost} type from
19
+ * ./tool-execution.js, so the value-level module graph stays acyclic.
20
+ */
21
+ export async function skillLoadDetailsImpl(host, skillName) {
22
+ await host.ensureSkillsSeeded();
23
+ const skill = await host.skillStore.get(host.skillScope(), skillName);
24
+ if (!skill || skill.pending)
25
+ throw new Error(`Skill not found: ${skillName}`);
26
+ const parsed = parseSkillBody(skill.body);
27
+ return {
28
+ name: skill.name,
29
+ description: parsed.description || `Skill ${skill.name}`,
30
+ declaredTools: parsed.allowedTools,
31
+ instructions: parsed.instructions,
32
+ origin: skill.origin,
33
+ path: `/skills/${skill.name}/SKILL.md`
34
+ };
35
+ }
36
+ export function createConnectionRegistryImpl(host, channel, turn) {
37
+ const session = { channel };
38
+ if (turn?.conversationId)
39
+ session.conversationId = turn.conversationId;
40
+ if (turn?.userId)
41
+ session.userId = turn.userId;
42
+ if (turn?.metadata)
43
+ session.metadata = turn.metadata;
44
+ return new RuntimeConnectionRegistry({
45
+ connections: host.mergedConnections(),
46
+ env: host.env,
47
+ fetch: host.fetch,
48
+ session,
49
+ grantStore: host.connectionGrantStore,
50
+ authorizationSessionStore: host.connectionAuthorizationSessionStore,
51
+ ...(host.connectionCallbackBaseUrl ? { callbackBaseUrl: host.connectionCallbackBaseUrl } : {}),
52
+ loadDefinition: async (connection) => host.loadConnectionDefinition(connection)
53
+ });
54
+ }
55
+ export function createConnectionRegistryForRunImpl(host, run, fallbackChannel, sandboxHandle) {
56
+ const session = {
57
+ channel: typeof run.input.channel === "string" ? run.input.channel : fallbackChannel
58
+ };
59
+ if (typeof run.input.conversationId === "string")
60
+ session.conversationId = run.input.conversationId;
61
+ if (typeof run.input.userId === "string")
62
+ session.userId = run.input.userId;
63
+ if (isJsonObject(run.input.metadata))
64
+ session.metadata = run.input.metadata;
65
+ const subagentName = typeof run.input.subagent === "string" ? run.input.subagent : undefined;
66
+ const scopedConnectionNames = subagentName
67
+ ? new Set(host.manifest.subagents.find((subagent) => subagent.name === subagentName)?.connections ?? [])
68
+ : undefined;
69
+ return new RuntimeConnectionRegistry({
70
+ connections: scopedConnectionNames
71
+ ? host.mergedConnections().filter((connection) => scopedConnectionNames.has(connection.name))
72
+ : host.mergedConnections(),
73
+ env: host.env,
74
+ fetch: host.fetch,
75
+ session,
76
+ grantStore: host.connectionGrantStore,
77
+ authorizationSessionStore: host.connectionAuthorizationSessionStore,
78
+ ...(host.connectionCallbackBaseUrl ? { callbackBaseUrl: host.connectionCallbackBaseUrl } : {}),
79
+ loadDefinition: async (connection) => host.loadConnectionDefinition(connection),
80
+ ...(sandboxHandle ? {
81
+ executeSandboxCli: async (invocation) => {
82
+ const activeRun = await host.state.getRun(run.id) ?? run;
83
+ const sandbox = await sandboxHandle.get();
84
+ for (const path of invocation.hydratePaths ?? []) {
85
+ await host.hydrateLogicalPathForTool(activeRun, sandbox, path);
86
+ }
87
+ const wrapped = await sandboxHandle.getWrapped();
88
+ const command = [invocation.command, ...invocation.args].map(shellQuote).join(" ");
89
+ return wrapped.shell(command, {
90
+ ...(invocation.cwd ? { cwd: invocation.cwd } : {}),
91
+ ...(invocation.timeoutMs !== undefined ? { timeoutMs: invocation.timeoutMs } : {})
92
+ });
93
+ }
94
+ } : {})
95
+ });
96
+ }
97
+ /**
98
+ * Operator-initiated authorization (dashboards, CLIs) outside any run. The
99
+ * session mirrors what a run would carry so user-subject connections mint
100
+ * their grant under the same principal a later run resolves; app-subject
101
+ * connections ignore the session entirely.
102
+ */
103
+ export async function beginConnectionAuthorizationImpl(host, connectionName, session = {}) {
104
+ const resolverSession = {
105
+ channel: session.channel ?? "http"
106
+ };
107
+ if (session.conversationId)
108
+ resolverSession.conversationId = session.conversationId;
109
+ if (session.userId)
110
+ resolverSession.userId = session.userId;
111
+ const registry = new RuntimeConnectionRegistry({
112
+ connections: host.mergedConnections(),
113
+ env: host.env,
114
+ fetch: host.fetch,
115
+ session: resolverSession,
116
+ grantStore: host.connectionGrantStore,
117
+ authorizationSessionStore: host.connectionAuthorizationSessionStore,
118
+ ...(host.connectionCallbackBaseUrl ? { callbackBaseUrl: host.connectionCallbackBaseUrl } : {}),
119
+ loadDefinition: async (connection) => host.loadConnectionDefinition(connection)
120
+ });
121
+ return registry.beginAuthorization(connectionName);
122
+ }
123
+ export function createConnectionRegistryForSessionImpl(host, session) {
124
+ return new RuntimeConnectionRegistry({
125
+ connections: host.mergedConnections(),
126
+ env: host.env,
127
+ fetch: host.fetch,
128
+ session: session.session,
129
+ grantStore: host.connectionGrantStore,
130
+ authorizationSessionStore: host.connectionAuthorizationSessionStore,
131
+ ...(host.connectionCallbackBaseUrl ? { callbackBaseUrl: host.connectionCallbackBaseUrl } : {}),
132
+ loadDefinition: async (connection) => host.loadConnectionDefinition(connection)
133
+ });
134
+ }
135
+ export async function executeLoadSkillTool(host, run, state, input, idempotencyKey) {
136
+ const raw = isJsonObject(input) ? input : {};
137
+ const requested = stringValue(raw.name) || stringValue(raw.skillName) || stringValue(raw.path);
138
+ const skillName = requested ? skillNameFromSkillPath(requested) ?? requested : "";
139
+ const toolCall = await recordRuntimeHandledToolStart(host, run, LOAD_SKILL_TOOL_NAME, input, idempotencyKey);
140
+ try {
141
+ if (!skillName)
142
+ throw new Error("load_skill requires name.");
143
+ const loaded = await skillLoadDetailsImpl(host, skillName);
144
+ let sandboxProjected = false;
145
+ const activeSandbox = state.sandboxHandle.current();
146
+ if (activeSandbox) {
147
+ try {
148
+ await host.projectSkillIntoSandbox(run, activeSandbox, loaded.name);
149
+ sandboxProjected = true;
150
+ }
151
+ catch (error) {
152
+ await host.state.appendEvent(run.id, "skill.projection_failed", {
153
+ skill: loaded.name,
154
+ error: error instanceof Error ? error.message : String(error)
155
+ });
156
+ }
157
+ }
158
+ const output = {
159
+ name: loaded.name,
160
+ skillName: loaded.name,
161
+ description: loaded.description,
162
+ origin: loaded.origin,
163
+ path: loaded.path,
164
+ sandboxProjected,
165
+ instructions: loaded.instructions
166
+ };
167
+ if (loaded.declaredTools.length > 0)
168
+ output.declaredTools = loaded.declaredTools;
169
+ await completeRuntimeHandledTool(host, run, toolCall, LOAD_SKILL_TOOL_NAME, output);
170
+ await host.state.appendEvent(run.id, "skill.loaded", {
171
+ skill: loaded.name,
172
+ origin: loaded.origin,
173
+ path: loaded.path,
174
+ sandboxProjected
175
+ });
176
+ return { run: await host.state.getRun(run.id) ?? run, modelOutput: output, skillName: loaded.name };
177
+ }
178
+ catch (error) {
179
+ return failRuntimeHandledTool(host, run, toolCall, LOAD_SKILL_TOOL_NAME, error, { recoverable: true });
180
+ }
181
+ }
182
+ export async function executeToolSearchTool(host, run, state, input, idempotencyKey) {
183
+ const request = normalizeDeferredToolSearchInput(input);
184
+ const toolCall = await recordRuntimeHandledToolStart(host, run, TOOL_SEARCH_TOOL_NAME, input, idempotencyKey);
185
+ try {
186
+ const local = await searchDeferredLocalTools(host, request.query, request.limit);
187
+ const connectionResults = state.connectionRegistry.hasLiveConnections()
188
+ ? await state.connectionRegistry.search({
189
+ keywords: request.query,
190
+ ...(request.connection ? { connection: request.connection } : {}),
191
+ limit: request.limit
192
+ }, {
193
+ runId: run.id,
194
+ toolCallId: toolCall.id,
195
+ toolName: TOOL_SEARCH_TOOL_NAME
196
+ })
197
+ : [];
198
+ for (const result of connectionResults) {
199
+ if (!result.qualifiedName || !result.tool || !result.inputSchema)
200
+ continue;
201
+ const metadata = {
202
+ connection: result.connection,
203
+ name: result.tool,
204
+ qualifiedName: result.qualifiedName,
205
+ description: result.description,
206
+ inputSchema: result.inputSchema
207
+ };
208
+ if (result.outputSchema)
209
+ metadata.outputSchema = result.outputSchema;
210
+ state.discoveredConnectionTools.set(result.qualifiedName, metadata);
211
+ }
212
+ const output = {
213
+ query: request.query,
214
+ totalAvailable: deferredLocalTools(host).length + connectionResults.length,
215
+ matches: [
216
+ ...local.map((tool) => ({
217
+ name: tool.name,
218
+ kind: "tool",
219
+ description: tool.description,
220
+ tags: tool.tags ?? [],
221
+ aliases: tool.aliases ?? []
222
+ })),
223
+ ...connectionResults.map(connectionSearchResultForModel)
224
+ ].slice(0, request.limit)
225
+ };
226
+ await completeRuntimeHandledTool(host, run, toolCall, TOOL_SEARCH_TOOL_NAME, output);
227
+ return { run: await host.state.getRun(run.id) ?? run, modelOutput: output };
228
+ }
229
+ catch (error) {
230
+ return failRuntimeHandledTool(host, run, toolCall, TOOL_SEARCH_TOOL_NAME, error, { recoverable: true });
231
+ }
232
+ }
233
+ export async function executeToolDescribeTool(host, run, state, input, idempotencyKey) {
234
+ const raw = isJsonObject(input) ? input : {};
235
+ const name = stringValue(raw.name);
236
+ const toolCall = await recordRuntimeHandledToolStart(host, run, TOOL_DESCRIBE_TOOL_NAME, input, idempotencyKey);
237
+ try {
238
+ if (!name)
239
+ throw new Error("tool_describe requires name.");
240
+ const local = deferredLocalTools(host).find((tool) => tool.name === name);
241
+ if (local) {
242
+ const definition = await host.loadTool(local);
243
+ const output = {
244
+ name: local.name,
245
+ kind: "tool",
246
+ description: definition.description ?? local.description,
247
+ inputSchema: safeJson(definition.inputSchema ?? local.inputSchema),
248
+ outputSchema: safeJson(definition.outputSchema ?? local.outputSchema ?? {})
249
+ };
250
+ await completeRuntimeHandledTool(host, run, toolCall, TOOL_DESCRIBE_TOOL_NAME, output);
251
+ return { run: await host.state.getRun(run.id) ?? run, modelOutput: output };
252
+ }
253
+ let connection = state.discoveredConnectionTools.get(name);
254
+ if (!connection && parseQualifiedName(name) && state.connectionRegistry.hasLiveConnections()) {
255
+ const parsed = parseQualifiedName(name);
256
+ const results = parsed
257
+ ? await state.connectionRegistry.search({ keywords: parsed.toolName, connection: parsed.connectionName, limit: 10 }, {
258
+ runId: run.id,
259
+ toolCallId: toolCall.id,
260
+ toolName: TOOL_DESCRIBE_TOOL_NAME
261
+ })
262
+ : [];
263
+ const result = results.find((candidate) => candidate.qualifiedName === name);
264
+ if (result?.qualifiedName && result.tool && result.inputSchema) {
265
+ connection = {
266
+ connection: result.connection,
267
+ name: result.tool,
268
+ qualifiedName: result.qualifiedName,
269
+ description: result.description,
270
+ inputSchema: result.inputSchema,
271
+ ...(result.outputSchema ? { outputSchema: result.outputSchema } : {})
272
+ };
273
+ state.discoveredConnectionTools.set(name, connection);
274
+ }
275
+ }
276
+ if (!connection)
277
+ throw new Error(`Deferred tool not found: ${name}`);
278
+ const output = {
279
+ name: connection.qualifiedName,
280
+ kind: "connection_tool",
281
+ connection: connection.connection,
282
+ description: connection.description,
283
+ inputSchema: safeJson(connection.inputSchema),
284
+ outputSchema: safeJson(connection.outputSchema ?? {})
285
+ };
286
+ await completeRuntimeHandledTool(host, run, toolCall, TOOL_DESCRIBE_TOOL_NAME, output);
287
+ return { run: await host.state.getRun(run.id) ?? run, modelOutput: output };
288
+ }
289
+ catch (error) {
290
+ return failRuntimeHandledTool(host, run, toolCall, TOOL_DESCRIBE_TOOL_NAME, error, { recoverable: true });
291
+ }
292
+ }
293
+ export function deferredLocalTools(host) {
294
+ return runtimeToolsForManifest(host.manifest)
295
+ .filter((tool) => !CORE_HARNESS_TOOL_NAMES.includes(tool.name))
296
+ .filter((tool) => tool.visibility !== "hidden");
297
+ }
298
+ async function searchDeferredLocalTools(host, query, limit) {
299
+ const lower = query.toLowerCase();
300
+ return deferredLocalTools(host)
301
+ .map((tool) => ({
302
+ tool,
303
+ haystack: [
304
+ tool.name,
305
+ tool.description,
306
+ ...(tool.tags ?? []),
307
+ ...(tool.aliases ?? []),
308
+ tool.namespace ?? ""
309
+ ].join(" ").toLowerCase()
310
+ }))
311
+ .filter((entry) => !lower || entry.haystack.includes(lower))
312
+ .map((entry) => entry.tool)
313
+ .slice(0, limit);
314
+ }
315
+ async function recordRuntimeHandledToolStart(host, run, toolName, input, idempotencyKey) {
316
+ await host.state.appendEvent(run.id, "tool.call_requested", { toolName, input: redactedToolInput(input) });
317
+ let toolCall = await host.state.createToolCall({
318
+ runId: run.id,
319
+ toolName,
320
+ status: "requested",
321
+ input: redactedToolInput(input),
322
+ idempotencyKey
323
+ });
324
+ toolCall = await host.state.updateToolCall(toolCall.id, { status: "running" });
325
+ await host.state.appendEvent(run.id, "tool.execution_started", { toolCallId: toolCall.id, toolName });
326
+ return toolCall;
327
+ }
328
+ async function completeRuntimeHandledTool(host, run, toolCall, toolName, output) {
329
+ await host.state.updateToolCall(toolCall.id, {
330
+ status: "completed",
331
+ result: safeJson(output),
332
+ modelOutput: safeJson(output)
333
+ });
334
+ await host.state.appendEvent(run.id, "tool.execution_completed", {
335
+ toolCallId: toolCall.id,
336
+ toolName,
337
+ modelOutput: safeJson(output)
338
+ });
339
+ }
340
+ export async function failRuntimeHandledTool(host, run, toolCall, toolName, error, options) {
341
+ const message = error instanceof Error ? error.message : String(error);
342
+ await host.state.updateToolCall(toolCall.id, { status: "failed", error: message });
343
+ await host.state.appendEvent(run.id, "tool.execution_failed", { toolCallId: toolCall.id, toolName, error: message });
344
+ if (options?.recoverable) {
345
+ // Model-invoked discovery tools: return the error to the model to reason
346
+ // over rather than irreversibly failing the whole run.
347
+ return { run, modelOutput: { error: message } };
348
+ }
349
+ const failedRun = await failRun({ state: host.state }, run.id, {
350
+ reason: "tool.execution_failed",
351
+ error: message,
352
+ data: { toolCallId: toolCall.id, toolName }
353
+ });
354
+ return { run: failedRun, modelOutput: { error: message } };
355
+ }
356
+ export async function executeConnectionSearchTool(host, run, registry, input, idempotencyKey) {
357
+ await host.state.appendEvent(run.id, "tool.call_requested", { toolName: CONNECTION_SEARCH_TOOL_NAME, input: redactedToolInput(input) });
358
+ const toolCall = await host.state.createToolCall({
359
+ runId: run.id,
360
+ toolName: CONNECTION_SEARCH_TOOL_NAME,
361
+ status: "requested",
362
+ input: redactedToolInput(input),
363
+ idempotencyKey
364
+ });
365
+ await host.state.updateToolCall(toolCall.id, { status: "running" });
366
+ await host.state.appendEvent(run.id, "tool.execution_started", { toolCallId: toolCall.id, toolName: CONNECTION_SEARCH_TOOL_NAME });
367
+ try {
368
+ const raw = isJsonObject(input) ? input : {};
369
+ const searchInput = {
370
+ keywords: typeof raw.keywords === "string" ? raw.keywords : ""
371
+ };
372
+ if (typeof raw.connection === "string")
373
+ searchInput.connection = raw.connection;
374
+ if (typeof raw.limit === "number")
375
+ searchInput.limit = raw.limit;
376
+ const results = await registry.search(searchInput, {
377
+ runId: run.id,
378
+ toolCallId: toolCall.id,
379
+ toolName: CONNECTION_SEARCH_TOOL_NAME
380
+ });
381
+ await host.state.updateToolCall(toolCall.id, {
382
+ status: "completed",
383
+ result: safeJson(results),
384
+ modelOutput: safeJson(results)
385
+ });
386
+ await host.state.appendEvent(run.id, "tool.execution_completed", {
387
+ toolCallId: toolCall.id,
388
+ toolName: CONNECTION_SEARCH_TOOL_NAME,
389
+ modelOutput: safeJson(results)
390
+ });
391
+ return { run: await host.state.getRun(run.id) ?? run, results };
392
+ }
393
+ catch (error) {
394
+ // Recoverable: model-invoked discovery, so return the error, don't fail the run.
395
+ const message = error instanceof Error ? error.message : String(error);
396
+ await host.state.updateToolCall(toolCall.id, { status: "failed", error: message });
397
+ await host.state.appendEvent(run.id, "tool.execution_failed", { toolCallId: toolCall.id, toolName: CONNECTION_SEARCH_TOOL_NAME, error: message });
398
+ return { run: await host.state.getRun(run.id) ?? run, results: [{ connection: "connection_search", description: "Connection search failed.", error: message }] };
399
+ }
400
+ }
401
+ export async function executeConnectionTool(host, run, registry, toolName, input, approved, idempotencyKey) {
402
+ await host.state.appendEvent(run.id, "tool.call_requested", { toolName, input: redactedToolInput(input) });
403
+ let toolCall = await host.state.createToolCall({
404
+ runId: run.id,
405
+ toolName,
406
+ status: "requested",
407
+ input: redactedToolInput(input),
408
+ idempotencyKey
409
+ });
410
+ const parsed = parseQualifiedName(toolName);
411
+ const approval = parsed
412
+ ? normalizeConnectionApproval(await registry.getConnectionApproval(parsed.connectionName, parsed.toolName))
413
+ : { mode: "never" };
414
+ if (approval.mode !== "never" && !approved && evalRunOptionsForRun(run)?.autoApproveTools) {
415
+ // Eval harness: same auto-resolve as authored tools — record the request
416
+ // durably, then execute in the same tick. Connection tools are never
417
+ // stubbed, so the real provider call still runs (documented).
418
+ await host.state.appendEvent(run.id, "tool.approval_requested", {
419
+ toolCallId: toolCall.id,
420
+ toolName,
421
+ reason: approval.reason ?? "Approval required before connection tool call."
422
+ });
423
+ await host.state.appendEvent(run.id, "tool.approval_auto_resolved", {
424
+ toolCallId: toolCall.id,
425
+ toolName,
426
+ source: "eval"
427
+ });
428
+ return executeConnectionToolWithRecordImpl(host, run, registry, toolName, toolCall, input);
429
+ }
430
+ if (approval.mode !== "never" && !approved) {
431
+ toolCall = await host.state.updateToolCall(toolCall.id, { status: "waiting_for_approval" });
432
+ const waitingRun = await host.state.updateRun(run.id, { status: "waiting_for_approval" });
433
+ await host.state.appendEvent(run.id, "tool.approval_requested", {
434
+ toolCallId: toolCall.id,
435
+ toolName,
436
+ reason: approval.reason ?? "Approval required before connection tool call."
437
+ });
438
+ await host.createCheckpoint({
439
+ runId: run.id,
440
+ name: "tool.approval_requested",
441
+ data: { toolCallId: toolCall.id, toolName }
442
+ });
443
+ return { run: waitingRun, waitingForApproval: true, toolCallId: toolCall.id, toolName };
444
+ }
445
+ return executeConnectionToolWithRecordImpl(host, run, registry, toolName, toolCall, input);
446
+ }
447
+ export async function executeConnectionToolWithRecordImpl(host, run, registry, toolName, toolCall, input) {
448
+ await host.state.updateToolCall(toolCall.id, { status: "running" });
449
+ await host.state.appendEvent(run.id, "tool.execution_started", { toolCallId: toolCall.id, toolName });
450
+ try {
451
+ const result = await registry.executeQualifiedTool(toolName, input, {
452
+ runId: run.id,
453
+ toolCallId: toolCall.id,
454
+ toolName
455
+ });
456
+ await host.state.updateToolCall(toolCall.id, {
457
+ status: "completed",
458
+ result: safeJson(result),
459
+ modelOutput: safeJson(result)
460
+ });
461
+ await host.state.appendEvent(run.id, "tool.execution_completed", {
462
+ toolCallId: toolCall.id,
463
+ toolName,
464
+ modelOutput: safeJson(result)
465
+ });
466
+ await host.createCheckpoint({
467
+ runId: run.id,
468
+ name: "tool.execution_completed",
469
+ data: { toolCallId: toolCall.id, toolName }
470
+ });
471
+ return { run: await host.state.getRun(run.id) ?? run, modelOutput: result, toolCallId: toolCall.id, toolName };
472
+ }
473
+ catch (error) {
474
+ if (isConnectionAuthorizationRequiredError(error)) {
475
+ await host.state.updateToolCall(toolCall.id, { status: "failed", error: error.message });
476
+ const waitingRun = await host.state.updateRun(run.id, { status: "waiting_for_connection" });
477
+ const authorizationSessionId = isJsonObject(error.challenge) && typeof error.challenge.sessionId === "string" ? error.challenge.sessionId : undefined;
478
+ await host.state.appendEvent(run.id, "authorization.required", {
479
+ toolCallId: toolCall.id,
480
+ toolName,
481
+ connectionName: error.connectionName,
482
+ reason: error.reason,
483
+ challenge: safeJson(error.challenge ?? {})
484
+ });
485
+ const out = { run: waitingRun, waitingForConnection: true, toolCallId: toolCall.id, toolName };
486
+ if (authorizationSessionId)
487
+ out.authorizationSessionId = authorizationSessionId;
488
+ return out;
489
+ }
490
+ const message = error instanceof Error ? error.message : String(error);
491
+ await host.state.updateToolCall(toolCall.id, { status: "failed", error: message });
492
+ await host.state.appendEvent(run.id, "tool.execution_failed", { toolCallId: toolCall.id, toolName, error: message });
493
+ const failedRun = await failRun({ state: host.state }, run.id, {
494
+ reason: "connection.tool_failed",
495
+ error: message,
496
+ data: { toolCallId: toolCall.id, toolName }
497
+ });
498
+ return { run: failedRun, modelOutput: { error: message }, toolCallId: toolCall.id, toolName };
499
+ }
500
+ }
501
+ //# sourceMappingURL=builtin-tool-executors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-tool-executors.js","sourceRoot":"","sources":["../src/builtin-tool-executors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { type AgentManifest, type CompiledTool, type JsonObject, type ToolDefinition } from "@assemblyline-agents/core";
2
+ export declare const READ_TOOL_NAME = "read";
3
+ export declare const WRITE_TOOL_NAME = "write";
4
+ export declare const EDIT_TOOL_NAME = "edit";
5
+ export declare const DELETE_TOOL_NAME = "delete";
6
+ export declare const LIST_TOOL_NAME = "list";
7
+ export declare const GREP_TOOL_NAME = "grep";
8
+ export declare const BASH_TOOL_NAME = "bash";
9
+ export declare const ASK_QUESTION_TOOL_NAME = "ask_question";
10
+ export declare const SPAWN_SUBAGENT_TOOL_NAME = "spawn_subagent";
11
+ export declare const LOAD_SKILL_TOOL_NAME = "load_skill";
12
+ export declare const TOOL_SEARCH_TOOL_NAME = "tool_search";
13
+ export declare const TOOL_DESCRIBE_TOOL_NAME = "tool_describe";
14
+ export declare const TOOL_CALL_TOOL_NAME = "tool_call";
15
+ export declare const CORE_HARNESS_TOOL_NAMES: readonly ["read", "write", "edit", "delete", "list", "grep", "bash", "ask_question", "spawn_subagent", "load_skill", "tool_search", "tool_describe", "tool_call"];
16
+ export declare function runtimeToolsForManifest(manifest: AgentManifest): CompiledTool[];
17
+ export declare function builtInToolDefinition(name: string): ToolDefinition | undefined;
18
+ export declare function isBuiltInToolName(name: string): boolean;
19
+ export declare function builtInToolContext(tool: CompiledTool): JsonObject | undefined;
20
+ /**
21
+ * The built-in tool implementations, exported so an authored override at
22
+ * `tools/<name>.ts` can wrap the default instead of rewriting it:
23
+ *
24
+ * export default defineTool({ ...builtInToolDefaults.write, execute: guarded });
25
+ *
26
+ * The deferred bridge tools (load_skill, tool_search, tool_describe, tool_call)
27
+ * are runtime-handled and have no wrappable executor, so they are not listed.
28
+ */
29
+ export declare const builtInToolDefaults: Readonly<Record<string, ToolDefinition>>;
30
+ //# sourceMappingURL=builtin-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-tools.d.ts","sourceRoot":"","sources":["../src/builtin-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,UAAU,EAMf,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,gBAAgB,WAAW,CAAC;AACzC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,cAAc,SAAS,CAAC;AACrC,eAAO,MAAM,sBAAsB,iBAAiB,CAAC;AACrD,eAAO,MAAM,wBAAwB,mBAAmB,CAAC;AACzD,eAAO,MAAM,oBAAoB,eAAe,CAAC;AACjD,eAAO,MAAM,qBAAqB,gBAAgB,CAAC;AACnD,eAAO,MAAM,uBAAuB,kBAAkB,CAAC;AACvD,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAE/C,eAAO,MAAM,uBAAuB,mKAc1B,CAAC;AAyUX,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,aAAa,GAAG,YAAY,EAAE,CAa/E;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAe9E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAoRD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS,CAM7E;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAUvE,CAAC"}