eve 0.81.1 → 0.83.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 (687) hide show
  1. package/CHANGELOG.md +93 -0
  2. package/NOTICE +1 -1
  3. package/dist/src/channel/channel-address.d.ts +21 -2
  4. package/dist/src/channel/channel-address.js +1 -1
  5. package/dist/src/channel/channel-operations.d.ts +32 -1
  6. package/dist/src/channel/channel-operations.js +1 -1
  7. package/dist/src/channel/delivery-idempotency.d.ts +4 -0
  8. package/dist/src/channel/delivery-idempotency.js +1 -0
  9. package/dist/src/channel/pending-authorization.d.ts +5 -0
  10. package/dist/src/channel/pending-authorization.js +1 -1
  11. package/dist/src/channel/routes.d.ts +6 -0
  12. package/dist/src/channel/session.d.ts +7 -0
  13. package/dist/src/channel/session.js +1 -1
  14. package/dist/src/channel/types.d.ts +19 -11
  15. package/dist/src/chunks/{use-eve-agent-DLkjJIm3.js → use-eve-agent-3-WRmJkd.js} +76 -5
  16. package/dist/src/chunks/{use-eve-agent-Bp6nbhfV.js → use-eve-agent-Ci5dr0aR.js} +76 -5
  17. package/dist/src/cli/dev/command-options.d.ts +1 -0
  18. package/dist/src/cli/dev/diagnostic-dump.js +1 -1
  19. package/dist/src/cli/dev/local-server-child.js +1 -1
  20. package/dist/src/cli/dev/local-server-cleanup.js +1 -1
  21. package/dist/src/cli/dev/tui/question-panel.d.ts +4 -1
  22. package/dist/src/cli/dev/tui/question-panel.js +1 -1
  23. package/dist/src/cli/dev/tui/terminal-renderer.js +4 -4
  24. package/dist/src/cli/run.d.ts +1 -0
  25. package/dist/src/cli/run.js +1 -1
  26. package/dist/src/client/eve-agent-store.d.ts +1 -1
  27. package/dist/src/client/eve-agent-store.js +1 -1
  28. package/dist/src/client/index.d.ts +2 -1
  29. package/dist/src/client/message-reducer-types.d.ts +7 -3
  30. package/dist/src/client/message-reducer.js +1 -1
  31. package/dist/src/client/session-controls.d.ts +6 -0
  32. package/dist/src/client/session-controls.js +1 -1
  33. package/dist/src/client/session.d.ts +4 -0
  34. package/dist/src/client/session.js +1 -1
  35. package/dist/src/client/transcript-reducer.d.ts +6 -3
  36. package/dist/src/client/transcript-reducer.js +1 -1
  37. package/dist/src/compiled/.vendor-stamp.json +8 -8
  38. package/dist/src/compiled/@eve/catalog/index.js +1 -1
  39. package/dist/src/compiled/@workflow/core/events-consumer.d.ts +2 -0
  40. package/dist/src/compiled/@workflow/core/index.js +2 -2
  41. package/dist/src/compiled/@workflow/core/private.d.ts +5 -3
  42. package/dist/src/compiled/@workflow/core/private.js +1 -1
  43. package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +1 -37
  44. package/dist/src/compiled/@workflow/core/runtime/event-limit-warning.d.ts +32 -0
  45. package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +5 -6
  46. package/dist/src/compiled/@workflow/core/runtime/helpers.js +1 -1
  47. package/dist/src/compiled/@workflow/core/runtime/runs.d.ts +8 -0
  48. package/dist/src/compiled/@workflow/core/runtime/start.d.ts +16 -0
  49. package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +15 -18
  50. package/dist/src/compiled/@workflow/core/runtime/vm-mode.d.ts +20 -0
  51. package/dist/src/compiled/@workflow/core/runtime.js +4 -4
  52. package/dist/src/compiled/@workflow/core/seeded-nanoid.d.ts +2 -0
  53. package/dist/src/compiled/@workflow/core/serialization/compression.d.ts +14 -3
  54. package/dist/src/compiled/@workflow/core/serialization.d.ts +1 -1
  55. package/dist/src/compiled/@workflow/core/serialization.js +1 -1
  56. package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +0 -18
  57. package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
  58. package/dist/src/compiled/@workflow/core/workflow.js +1 -1
  59. package/dist/src/compiled/@workflow/errors/index.d.ts +48 -0
  60. package/dist/src/compiled/@workflow/errors/index.js +1 -1
  61. package/dist/src/compiled/@workflow/world/env-config.d.ts +24 -0
  62. package/dist/src/compiled/@workflow/world/events.d.ts +126 -7
  63. package/dist/src/compiled/@workflow/world/index.d.ts +3 -3
  64. package/dist/src/compiled/@workflow/world/interfaces.d.ts +59 -8
  65. package/dist/src/compiled/@workflow/world/queue.d.ts +71 -9
  66. package/dist/src/compiled/@workflow/world/recovery.d.ts +6 -0
  67. package/dist/src/compiled/@workflow/world/test-support/duplicate-event-fixtures.d.ts +3 -0
  68. package/dist/src/compiled/@workflow/world/test-support/in-band-fence-conformance.d.ts +46 -0
  69. package/dist/src/compiled/@workflow/world-local/index.js +5 -5
  70. package/dist/src/compiled/@workflow/world-vercel/index.js +18 -18
  71. package/dist/src/compiled/_chunks/workflow/{attribute-changes-BW-kbMMn.js → attribute-changes-7se_SE2q.js} +3 -3
  72. package/dist/src/compiled/_chunks/workflow/dist-CcnNPAp4.js +1 -0
  73. package/dist/src/compiled/_chunks/workflow/dist-S9cZRway.js +3 -0
  74. package/dist/src/compiled/_chunks/workflow/helpers-CxNRXH0a.js +1 -0
  75. package/dist/src/compiled/_chunks/workflow/private-DLYTSBbu.js +1 -0
  76. package/dist/src/compiled/_chunks/workflow/resume-hook-CPiIfe8r.js +1 -0
  77. package/dist/src/compiled/_chunks/workflow/{run-DzdAqdb1.js → run-BJSLCXR4.js} +6 -6
  78. package/dist/src/compiled/_chunks/workflow/serialization-B9gneT9Z.js +15 -0
  79. package/dist/src/compiled/_chunks/workflow/sleep-BL0oQs3R.js +1 -0
  80. package/dist/src/compiled/_chunks/workflow/{wait-until-xbRRDuUf.js → wait-until-BPou0RGO.js} +1 -1
  81. package/dist/src/compiled/_chunks/workflow/workflow-routes-BaljomCk.js +1 -0
  82. package/dist/src/compiled/{@ai-sdk/code-mode → run}/LICENSE +1 -1
  83. package/dist/src/compiled/run/index.d.ts +384 -0
  84. package/dist/src/compiled/run/index.js +650 -0
  85. package/dist/src/compiler/extension-compatibility.d.ts +28 -20
  86. package/dist/src/compiler/extension-compatibility.js +1 -1
  87. package/dist/src/compiler/load-binding-namespace.d.ts +2 -0
  88. package/dist/src/compiler/load-binding-namespace.js +1 -1
  89. package/dist/src/compiler/manifest.js +1 -1
  90. package/dist/src/compiler/module-lifecycle.d.ts +1 -1
  91. package/dist/src/compiler/module-lifecycle.js +1 -1
  92. package/dist/src/compiler/module-map.js +1 -1
  93. package/dist/src/compiler/normalize-agent-config.js +1 -1
  94. package/dist/src/compiler/normalize-manifest.js +1 -1
  95. package/dist/src/compiler/normalize-sandbox.js +1 -1
  96. package/dist/src/compiler/project-sources.d.ts +6 -0
  97. package/dist/src/compiler/project-sources.js +1 -1
  98. package/dist/src/compiler/workspace-resources.js +1 -1
  99. package/dist/src/context/build-callback-context.js +1 -1
  100. package/dist/src/context/dynamic-skill-lifecycle.js +1 -1
  101. package/dist/src/context/keys.d.ts +2 -0
  102. package/dist/src/context/keys.js +1 -1
  103. package/dist/src/context/providers/sandbox.js +1 -1
  104. package/dist/src/discover/extension-specifier.d.ts +1 -0
  105. package/dist/src/discover/extension-specifier.js +1 -1
  106. package/dist/src/evals/cli/eval-state-directory.d.ts +7 -0
  107. package/dist/src/evals/cli/eval-state-directory.js +1 -0
  108. package/dist/src/evals/cli/eval.js +2 -2
  109. package/dist/src/evals/runner/artifacts.js +1 -1
  110. package/dist/src/evals/runner/derive-run-facts.d.ts +12 -0
  111. package/dist/src/evals/runner/derive-run-facts.js +1 -1
  112. package/dist/src/evals/runner/execute-task.js +1 -1
  113. package/dist/src/evals/types.d.ts +3 -2
  114. package/dist/src/eve-channel/index.js +1 -1
  115. package/dist/src/eve-channel/request.d.ts +0 -1
  116. package/dist/src/eve-channel/request.js +2 -2
  117. package/dist/src/eve-channel/support.d.ts +2 -0
  118. package/dist/src/eve-channel/support.js +1 -1
  119. package/dist/src/eve-channel/types.d.ts +7 -0
  120. package/dist/src/execution/agent-sessions/context.d.ts +3 -14
  121. package/dist/src/execution/agent-sessions/context.js +1 -1
  122. package/dist/src/execution/agent-sessions/runtime-overrides.d.ts +5 -0
  123. package/dist/src/execution/agent-sessions/session.d.ts +2 -2
  124. package/dist/src/execution/agent-sessions/session.js +1 -1
  125. package/dist/src/execution/agent-sessions/steps.d.ts +2 -0
  126. package/dist/src/execution/agent-sessions/steps.js +1 -1
  127. package/dist/src/execution/coordination-dispatch-shared.d.ts +8 -5
  128. package/dist/src/execution/coordination-dispatch-shared.js +1 -1
  129. package/dist/src/execution/coordination-dispatch-step.d.ts +17 -2
  130. package/dist/src/execution/coordination-dispatch-step.js +1 -1
  131. package/dist/src/execution/create-session-step.d.ts +5 -2
  132. package/dist/src/execution/create-session-step.js +1 -1
  133. package/dist/src/execution/deliver-payloads.js +1 -1
  134. package/dist/src/execution/durable-session-store.d.ts +0 -1
  135. package/dist/src/execution/dynamic-connection-recovery.js +1 -1
  136. package/dist/src/execution/dynamic-workflow/program-step.d.ts +7 -7
  137. package/dist/src/execution/dynamic-workflow/program-step.js +1 -1
  138. package/dist/src/execution/dynamic-workflow/schema.d.ts +18 -11
  139. package/dist/src/execution/dynamic-workflow/schema.js +1 -1
  140. package/dist/src/execution/dynamic-workflow/tool.js +1 -1
  141. package/dist/src/execution/dynamic-workflow/workflow.js +1 -1
  142. package/dist/src/execution/effective-agent-config.d.ts +8 -2
  143. package/dist/src/execution/effective-agent-config.js +1 -1
  144. package/dist/src/execution/eve-workflow-attributes.d.ts +3 -1
  145. package/dist/src/execution/eve-workflow-attributes.js +1 -1
  146. package/dist/src/execution/install-workflow-deployment-id.d.ts +3 -0
  147. package/dist/src/execution/install-workflow-deployment-id.js +1 -0
  148. package/dist/src/execution/invoke-tool.js +1 -1
  149. package/dist/src/execution/legacy-session/turn-workflow.js +1 -1
  150. package/dist/src/execution/node-step.d.ts +1 -0
  151. package/dist/src/execution/node-step.js +1 -1
  152. package/dist/src/execution/runtime-context.d.ts +2 -0
  153. package/dist/src/execution/runtime-context.js +1 -1
  154. package/dist/src/execution/sandbox/abort-bound-session.js +1 -1
  155. package/dist/src/execution/sandbox/active-connections.d.ts +28 -0
  156. package/dist/src/execution/sandbox/active-connections.js +1 -0
  157. package/dist/src/execution/sandbox/bindings/docker-cli.d.ts +10 -2
  158. package/dist/src/execution/sandbox/bindings/docker-cli.js +2 -2
  159. package/dist/src/execution/sandbox/bindings/docker-connection.d.ts +15 -0
  160. package/dist/src/execution/sandbox/bindings/docker-connection.js +2 -0
  161. package/dist/src/execution/sandbox/bindings/docker-container.d.ts +2 -0
  162. package/dist/src/execution/sandbox/bindings/docker-container.js +1 -1
  163. package/dist/src/execution/sandbox/bindings/docker-network.d.ts +5 -0
  164. package/dist/src/execution/sandbox/bindings/docker-network.js +1 -1
  165. package/dist/src/execution/sandbox/bindings/docker-templates.js +1 -1
  166. package/dist/src/execution/sandbox/bindings/docker.d.ts +12 -15
  167. package/dist/src/execution/sandbox/bindings/docker.js +1 -1
  168. package/dist/src/execution/sandbox/bindings/just-bash-runtime.d.ts +19 -29
  169. package/dist/src/execution/sandbox/bindings/just-bash-runtime.js +1 -1
  170. package/dist/src/execution/sandbox/bindings/just-bash.d.ts +2 -4
  171. package/dist/src/execution/sandbox/bindings/just-bash.js +1 -1
  172. package/dist/src/execution/sandbox/bindings/local-provider-utils.d.ts +0 -20
  173. package/dist/src/execution/sandbox/bindings/local-provider-utils.js +1 -1
  174. package/dist/src/execution/sandbox/bindings/local.d.ts +4 -6
  175. package/dist/src/execution/sandbox/bindings/local.js +1 -1
  176. package/dist/src/execution/sandbox/bindings/vercel-base-runtime.d.ts +2 -0
  177. package/dist/src/execution/sandbox/bindings/vercel-base-runtime.js +2 -2
  178. package/dist/src/execution/sandbox/bindings/vercel-errors.js +2 -2
  179. package/dist/src/execution/sandbox/bindings/vercel-lifecycle.d.ts +7 -5
  180. package/dist/src/execution/sandbox/bindings/vercel-lifecycle.js +1 -1
  181. package/dist/src/execution/sandbox/bindings/vercel.d.ts +5 -11
  182. package/dist/src/execution/sandbox/bindings/vercel.js +1 -2
  183. package/dist/src/execution/sandbox/development-cleanup.d.ts +0 -1
  184. package/dist/src/execution/sandbox/development-cleanup.js +1 -1
  185. package/dist/src/execution/sandbox/development-lazy-prewarm.js +1 -1
  186. package/dist/src/execution/sandbox/development-run.d.ts +0 -2
  187. package/dist/src/execution/sandbox/development-run.js +1 -1
  188. package/dist/src/execution/sandbox/dockerfile.d.ts +0 -4
  189. package/dist/src/execution/sandbox/dockerfile.js +1 -1
  190. package/dist/src/execution/sandbox/ensure.d.ts +23 -11
  191. package/dist/src/execution/sandbox/ensure.js +1 -1
  192. package/dist/src/execution/sandbox/glob-tool.js +3 -3
  193. package/dist/src/execution/sandbox/grep-tool.js +1 -1
  194. package/dist/src/execution/sandbox/logging-session.js +1 -1
  195. package/dist/src/execution/sandbox/prewarm.d.ts +23 -3
  196. package/dist/src/execution/sandbox/prewarm.js +2 -1
  197. package/dist/src/execution/sandbox/read-file.js +1 -1
  198. package/dist/src/execution/sandbox/require-sandbox.d.ts +3 -2
  199. package/dist/src/execution/sandbox/require-sandbox.js +1 -1
  200. package/dist/src/execution/sandbox/ripgrep-probe.js +1 -1
  201. package/dist/src/execution/sandbox/session.d.ts +10 -20
  202. package/dist/src/execution/sandbox/session.js +2 -2
  203. package/dist/src/execution/session/active-turn.js +1 -1
  204. package/dist/src/execution/session/admission.js +1 -1
  205. package/dist/src/execution/session/checkpoint-migrations.js +1 -1
  206. package/dist/src/execution/session/entry-input.d.ts +5 -6
  207. package/dist/src/execution/session/entry.js +1 -1
  208. package/dist/src/execution/session/finalization.js +1 -1
  209. package/dist/src/execution/session/handoff-state.d.ts +5 -0
  210. package/dist/src/execution/session/handoff-state.js +1 -0
  211. package/dist/src/execution/session/handoff-steps.d.ts +0 -5
  212. package/dist/src/execution/session/handoff-steps.js +1 -1
  213. package/dist/src/execution/session/handoff.d.ts +7 -9
  214. package/dist/src/execution/session/handoff.js +1 -1
  215. package/dist/src/execution/session/input-queue.d.ts +8 -1
  216. package/dist/src/execution/session/input-queue.js +1 -1
  217. package/dist/src/execution/session/next-input.d.ts +3 -0
  218. package/dist/src/execution/session/next-input.js +1 -1
  219. package/dist/src/execution/session/pending-history.d.ts +5 -0
  220. package/dist/src/execution/session/pending-history.js +1 -0
  221. package/dist/src/execution/session/pending-turn-state.js +1 -1
  222. package/dist/src/execution/session/program.d.ts +1 -1
  223. package/dist/src/execution/session/program.js +1 -1
  224. package/dist/src/execution/session/timeout-control.d.ts +22 -4
  225. package/dist/src/execution/session/timeout-control.js +1 -1
  226. package/dist/src/execution/session/timeout.d.ts +1 -2
  227. package/dist/src/execution/session/timeout.js +1 -1
  228. package/dist/src/execution/session/turn-control.d.ts +5 -2
  229. package/dist/src/execution/session/turn-control.js +1 -1
  230. package/dist/src/execution/session/turn-event-handler.js +1 -1
  231. package/dist/src/execution/session/turn-step-result.js +1 -1
  232. package/dist/src/execution/session/turn-step.js +1 -1
  233. package/dist/src/execution/session/turn-waiting-step.js +1 -1
  234. package/dist/src/execution/session/turn.js +1 -1
  235. package/dist/src/execution/session-inbox/inbox.d.ts +9 -1
  236. package/dist/src/execution/session-inbox/inbox.js +1 -1
  237. package/dist/src/execution/session-inbox/protocol.d.ts +2 -1
  238. package/dist/src/execution/session-inbox/protocol.js +1 -1
  239. package/dist/src/execution/session-inbox/resume.d.ts +2 -1
  240. package/dist/src/execution/session-inbox/resume.js +1 -1
  241. package/dist/src/execution/session-prewarm.d.ts +8 -0
  242. package/dist/src/execution/session-prewarm.js +1 -0
  243. package/dist/src/execution/session.d.ts +0 -12
  244. package/dist/src/execution/session.js +2 -2
  245. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  246. package/dist/src/execution/skills/instructions.js +1 -1
  247. package/dist/src/execution/tasks/model-step.js +1 -1
  248. package/dist/src/execution/tasks/start.d.ts +4 -4
  249. package/dist/src/execution/tasks/start.js +1 -1
  250. package/dist/src/execution/tasks/steps.js +1 -1
  251. package/dist/src/execution/terminate-child-sessions-step.js +1 -1
  252. package/dist/src/execution/tools/agent-router-workflow.js +1 -1
  253. package/dist/src/execution/tools/workflow/body.d.ts +2 -2
  254. package/dist/src/execution/tools/workflow/body.js +1 -1
  255. package/dist/src/execution/tools/workflow/step-context.d.ts +11 -0
  256. package/dist/src/execution/tools/workflow/step-execution.js +1 -1
  257. package/dist/src/execution/tools/workflow/step.js +1 -1
  258. package/dist/src/execution/workflow-runtime.d.ts +5 -1
  259. package/dist/src/execution/workflow-runtime.js +1 -1
  260. package/dist/src/extensions/git/extension/lib/github-shell-schema.js +1 -1
  261. package/dist/src/framework/sources/modules/sandbox.d.ts +1 -1
  262. package/dist/src/harness/attachment-staging.d.ts +0 -7
  263. package/dist/src/harness/attachment-staging.js +1 -1
  264. package/dist/src/harness/hitl/approvals.js +1 -1
  265. package/dist/src/harness/hitl/budget-request.d.ts +12 -6
  266. package/dist/src/harness/hitl/budget-request.js +1 -1
  267. package/dist/src/harness/hitl/budget.d.ts +7 -1
  268. package/dist/src/harness/hitl/budget.js +1 -1
  269. package/dist/src/harness/hitl/coordinator.js +1 -1
  270. package/dist/src/harness/hitl/delivery.d.ts +1 -1
  271. package/dist/src/harness/hitl/delivery.js +1 -1
  272. package/dist/src/harness/hitl/index.d.ts +2 -1
  273. package/dist/src/harness/hitl/index.js +1 -1
  274. package/dist/src/harness/hitl/intake.d.ts +2 -2
  275. package/dist/src/harness/hitl/intake.js +1 -1
  276. package/dist/src/harness/hitl/view.d.ts +1 -0
  277. package/dist/src/harness/hitl/view.js +1 -0
  278. package/dist/src/harness/messages.d.ts +5 -0
  279. package/dist/src/harness/messages.js +1 -1
  280. package/dist/src/harness/model-call/call.d.ts +2 -2
  281. package/dist/src/harness/model-call/request.d.ts +2 -2
  282. package/dist/src/harness/model-call/run.js +1 -1
  283. package/dist/src/harness/semantic-errors/rules/sandbox.d.ts +3 -5
  284. package/dist/src/harness/semantic-errors/rules/sandbox.js +1 -1
  285. package/dist/src/harness/session-machine/transitions.d.ts +3 -1
  286. package/dist/src/harness/session-machine/transitions.js +1 -1
  287. package/dist/src/harness/step/context.d.ts +3 -0
  288. package/dist/src/harness/step/context.js +1 -1
  289. package/dist/src/harness/step/intake.d.ts +5 -2
  290. package/dist/src/harness/step/intake.js +1 -1
  291. package/dist/src/harness/step/prompt.js +1 -1
  292. package/dist/src/harness/tool-history-repair.d.ts +9 -0
  293. package/dist/src/harness/tool-history-repair.js +1 -0
  294. package/dist/src/harness/tool-loop.js +1 -1
  295. package/dist/src/harness/tool-model-output.d.ts +19 -3
  296. package/dist/src/harness/tool-model-output.js +1 -1
  297. package/dist/src/harness/turn-tag-state.d.ts +7 -26
  298. package/dist/src/harness/turn-tag-state.js +1 -1
  299. package/dist/src/harness/types.d.ts +10 -25
  300. package/dist/src/internal/application/build-profile.d.ts +3 -0
  301. package/dist/src/internal/application/build-profile.js +1 -1
  302. package/dist/src/internal/application/compiled-artifacts.js +10 -6
  303. package/dist/src/internal/application/dev-environment.d.ts +13 -0
  304. package/dist/src/internal/application/dev-environment.js +1 -1
  305. package/dist/src/internal/application/optional-package-import.d.ts +10 -0
  306. package/dist/src/internal/application/optional-package-import.js +1 -1
  307. package/dist/src/internal/application/stamped-package-version.js +1 -1
  308. package/dist/src/internal/attachments/limited-read.d.ts +2 -2
  309. package/dist/src/internal/authored-definition/core.js +1 -1
  310. package/dist/src/internal/authored-module-build-options.d.ts +13 -0
  311. package/dist/src/internal/authored-module-build-options.js +1 -0
  312. package/dist/src/internal/authored-module-cache.d.ts +10 -0
  313. package/dist/src/internal/authored-module-cache.js +1 -0
  314. package/dist/src/internal/authored-module-graph.d.ts +13 -0
  315. package/dist/src/internal/authored-module-graph.js +1 -0
  316. package/dist/src/internal/authored-module-loader.d.ts +22 -1
  317. package/dist/src/internal/authored-module-loader.js +1 -3
  318. package/dist/src/internal/authored-module.d.ts +7 -0
  319. package/dist/src/internal/authored-module.js +1 -1
  320. package/dist/src/internal/authored-package-boundary.js +1 -1
  321. package/dist/src/internal/authored-relative-extension-resolver.js +1 -1
  322. package/dist/src/internal/bundler/nitro-rolldown.d.ts +8 -2
  323. package/dist/src/internal/bundler/nitro-rolldown.js +1 -1
  324. package/dist/src/internal/bundler/pseudo-packages.d.ts +11 -0
  325. package/dist/src/internal/bundler/pseudo-packages.js +1 -0
  326. package/dist/src/internal/development-programmatic-source-loader.d.ts +1 -0
  327. package/dist/src/internal/development-programmatic-source-loader.js +1 -1
  328. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  329. package/dist/src/internal/nitro/dev-runtime-generation-metadata.js +1 -1
  330. package/dist/src/internal/nitro/host/build-application.js +1 -1
  331. package/dist/src/internal/nitro/host/build-deployment-id.d.ts +8 -0
  332. package/dist/src/internal/nitro/host/build-deployment-id.js +1 -0
  333. package/dist/src/internal/nitro/host/build-extension.d.ts +6 -0
  334. package/dist/src/internal/nitro/host/build-extension.js +2 -2
  335. package/dist/src/internal/nitro/host/compiled-sandbox-provider-prune-plugin.d.ts +3 -1
  336. package/dist/src/internal/nitro/host/compiled-sandbox-provider-prune-plugin.js +3 -5
  337. package/dist/src/internal/nitro/host/create-application-nitro.d.ts +2 -3
  338. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  339. package/dist/src/internal/nitro/host/dev-authored-rebuild-coordinator.d.ts +2 -0
  340. package/dist/src/internal/nitro/host/dev-authored-rebuild-coordinator.js +1 -1
  341. package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
  342. package/dist/src/internal/nitro/host/dev-build-host.d.ts +83 -0
  343. package/dist/src/internal/nitro/host/dev-build-host.js +1 -0
  344. package/dist/src/internal/nitro/host/dev-build-operations.d.ts +6 -0
  345. package/dist/src/internal/nitro/host/dev-build-operations.js +1 -0
  346. package/dist/src/internal/nitro/host/dev-build-process.d.ts +1 -0
  347. package/dist/src/internal/nitro/host/dev-build-process.js +1 -0
  348. package/dist/src/internal/nitro/host/dev-server-state.js +1 -1
  349. package/dist/src/internal/nitro/host/development-runtime-prune-plugin.d.ts +4 -1
  350. package/dist/src/internal/nitro/host/development-runtime-prune-plugin.js +3 -2
  351. package/dist/src/internal/nitro/host/drained-nitro-dev-server.d.ts +13 -0
  352. package/dist/src/internal/nitro/host/drained-nitro-dev-server.js +1 -1
  353. package/dist/src/internal/nitro/host/optional-engine-dependency-plugin.js +1 -1
  354. package/dist/src/internal/nitro/host/prepare-application-host.d.ts +3 -0
  355. package/dist/src/internal/nitro/host/prepare-application-host.js +1 -1
  356. package/dist/src/internal/nitro/host/sandbox-shutdown-plugin.js +1 -1
  357. package/dist/src/internal/nitro/host/skill-server-assets.js +1 -1
  358. package/dist/src/internal/nitro/host/stage-build-deployment-id.d.ts +2 -0
  359. package/dist/src/internal/nitro/host/stage-build-deployment-id.js +1 -0
  360. package/dist/src/internal/nitro/host/start-development-server.js +2 -2
  361. package/dist/src/internal/nitro/host/start-production-server.d.ts +1 -0
  362. package/dist/src/internal/nitro/host/start-production-server.js +3 -3
  363. package/dist/src/internal/nitro/host/workflow-sandbox-runtime-plugin.js +1 -1
  364. package/dist/src/internal/nitro/host.js +1 -1
  365. package/dist/src/internal/nitro/routes/schedule-task.d.ts +3 -0
  366. package/dist/src/internal/nitro/routes/schedule-task.js +1 -1
  367. package/dist/src/internal/programmatic-source-loader.d.ts +1 -0
  368. package/dist/src/internal/programmatic-source-loader.js +1 -1
  369. package/dist/src/internal/schedules/disabled.d.ts +2 -0
  370. package/dist/src/internal/schedules/disabled.js +1 -0
  371. package/dist/src/internal/workflow/development-world-server.js +1 -1
  372. package/dist/src/internal/workflow/local-world-data-directory.d.ts +2 -1
  373. package/dist/src/internal/workflow/local-world-data-directory.js +1 -1
  374. package/dist/src/internal/workflow/local-world-delivery-auth.d.ts +17 -0
  375. package/dist/src/internal/workflow/local-world-delivery-auth.js +1 -0
  376. package/dist/src/internal/workflow/queue-namespace.d.ts +2 -0
  377. package/dist/src/internal/workflow/queue-namespace.js +1 -1
  378. package/dist/src/internal/workflow-bundle/builder-support.d.ts +0 -1
  379. package/dist/src/internal/workflow-bundle/builder-support.js +2 -2
  380. package/dist/src/internal/workflow-bundle/builder.js +2 -2
  381. package/dist/src/internal/workflow-bundle/vercel-workflow-output.d.ts +1 -1
  382. package/dist/src/internal/workflow-bundle/vercel-workflow-output.js +1 -1
  383. package/dist/src/protocol/message.d.ts +27 -1
  384. package/dist/src/protocol/message.js +2 -2
  385. package/dist/src/protocol/prewarm-session.d.ts +14 -0
  386. package/dist/src/protocol/prewarm-session.js +1 -0
  387. package/dist/src/protocol/routes.d.ts +2 -2
  388. package/dist/src/public/channels/chat-sdk/chatSdkChannel.d.ts +13 -0
  389. package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +2 -2
  390. package/dist/src/public/channels/chat-sdk/fetch-message.d.ts +10 -0
  391. package/dist/src/public/channels/chat-sdk/fetch-message.js +1 -0
  392. package/dist/src/public/channels/chat-sdk/index.d.ts +1 -1
  393. package/dist/src/public/channels/chat-sdk/reply-context.d.ts +15 -0
  394. package/dist/src/public/channels/chat-sdk/reply-context.js +2 -0
  395. package/dist/src/public/channels/discord/authorization.d.ts +45 -0
  396. package/dist/src/public/channels/discord/authorization.js +3 -0
  397. package/dist/src/public/channels/discord/defaults.d.ts +14 -3
  398. package/dist/src/public/channels/discord/defaults.js +2 -2
  399. package/dist/src/public/channels/discord/discordChannel.d.ts +18 -1
  400. package/dist/src/public/channels/discord/discordChannel.js +1 -1
  401. package/dist/src/public/channels/discord/gateway/connection.d.ts +26 -0
  402. package/dist/src/public/channels/discord/gateway/connection.js +1 -0
  403. package/dist/src/public/channels/discord/gateway/forwarder.d.ts +14 -0
  404. package/dist/src/public/channels/discord/gateway/forwarder.js +1 -0
  405. package/dist/src/public/channels/discord/gateway/index.d.ts +59 -0
  406. package/dist/src/public/channels/discord/gateway/index.js +1 -0
  407. package/dist/src/public/channels/discord/inbound.d.ts +10 -3
  408. package/dist/src/public/channels/discord/inbound.js +2 -2
  409. package/dist/src/public/channels/discord/index.d.ts +3 -2
  410. package/dist/src/public/channels/discord/index.js +1 -1
  411. package/dist/src/public/channels/discord/messages.d.ts +116 -0
  412. package/dist/src/public/channels/discord/messages.js +2 -0
  413. package/dist/src/public/channels/github/checkout.js +1 -1
  414. package/dist/src/public/channels/github/dispatch.js +1 -1
  415. package/dist/src/public/channels/github/githubChannel.d.ts +3 -0
  416. package/dist/src/public/channels/imessage-tapbacks.d.ts +74 -0
  417. package/dist/src/public/channels/imessage-tapbacks.js +1 -0
  418. package/dist/src/public/channels/index.d.ts +2 -1
  419. package/dist/src/public/channels/index.js +1 -1
  420. package/dist/src/public/channels/linear/linearChannel.d.ts +3 -0
  421. package/dist/src/public/channels/linear/linearChannel.js +1 -1
  422. package/dist/src/public/channels/linq/inboundContent.d.ts +7 -0
  423. package/dist/src/public/channels/linq/inboundContent.js +1 -1
  424. package/dist/src/public/channels/linq/index.d.ts +1 -0
  425. package/dist/src/public/channels/linq/index.js +1 -1
  426. package/dist/src/public/channels/linq/linqChannel.d.ts +21 -2
  427. package/dist/src/public/channels/linq/linqChannel.js +1 -1
  428. package/dist/src/public/channels/photon/inboundContent.d.ts +7 -0
  429. package/dist/src/public/channels/photon/inboundContent.js +2 -1
  430. package/dist/src/public/channels/photon/index.d.ts +1 -0
  431. package/dist/src/public/channels/photon/index.js +1 -1
  432. package/dist/src/public/channels/photon/photonIMessageChannel.d.ts +17 -1
  433. package/dist/src/public/channels/photon/photonIMessageChannel.js +1 -1
  434. package/dist/src/public/channels/same-environment-oidc.d.ts +7 -0
  435. package/dist/src/public/channels/same-environment-oidc.js +1 -0
  436. package/dist/src/public/channels/slack/api.d.ts +6 -0
  437. package/dist/src/public/channels/slack/api.js +1 -1
  438. package/dist/src/public/channels/slack/model-context.d.ts +7 -0
  439. package/dist/src/public/channels/slack/model-context.js +1 -1
  440. package/dist/src/public/channels/slack/reply-delivery.d.ts +5 -0
  441. package/dist/src/public/channels/slack/reply-delivery.js +1 -1
  442. package/dist/src/public/channels/slack/slackChannel.d.ts +17 -3
  443. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  444. package/dist/src/public/channels/teams/teamsChannel.d.ts +3 -0
  445. package/dist/src/public/channels/teams/teamsChannel.js +1 -1
  446. package/dist/src/public/channels/telegram/telegramChannel.d.ts +3 -0
  447. package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
  448. package/dist/src/public/definitions/agent.d.ts +1 -1
  449. package/dist/src/public/definitions/channel.d.ts +2 -2
  450. package/dist/src/public/definitions/channel.js +1 -1
  451. package/dist/src/public/definitions/hook.d.ts +1 -0
  452. package/dist/src/public/definitions/sandbox.d.ts +1 -1
  453. package/dist/src/public/index.d.ts +1 -1
  454. package/dist/src/public/next/server.js +1 -1
  455. package/dist/src/public/sandbox/docker-sandbox.d.ts +6 -1
  456. package/dist/src/public/sandbox/docker.d.ts +1 -8
  457. package/dist/src/public/sandbox/index.d.ts +3 -3
  458. package/dist/src/public/sandbox/just-bash-sandbox.d.ts +87 -7
  459. package/dist/src/public/sandbox/just-bash.d.ts +1 -1
  460. package/dist/src/public/sandbox/provider.d.ts +5 -1
  461. package/dist/src/public/sandbox/provider.js +1 -1
  462. package/dist/src/public/sandbox/vercel-sandbox.d.ts +16 -9
  463. package/dist/src/public/sandbox/vercel.d.ts +0 -1
  464. package/dist/src/public/sandbox/vercel.js +1 -1
  465. package/dist/src/public/tools/agent.d.ts +8 -1
  466. package/dist/src/public/tools/agent.js +1 -1
  467. package/dist/src/public/tools/index.d.ts +1 -1
  468. package/dist/src/react/use-eve-agent.d.ts +1 -1
  469. package/dist/src/runtime/agent/resolve-model.d.ts +4 -0
  470. package/dist/src/runtime/agent/resolve-model.js +1 -1
  471. package/dist/src/runtime/connections/openapi-client.d.ts +2 -0
  472. package/dist/src/runtime/connections/openapi-client.js +1 -1
  473. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  474. package/dist/src/runtime/resolve-agent.js +1 -1
  475. package/dist/src/runtime/resolve-channel.js +1 -1
  476. package/dist/src/runtime/resolve-sandbox.js +1 -1
  477. package/dist/src/runtime/sandbox/prepared-artifacts.js +1 -1
  478. package/dist/src/runtime/sandbox/registry.d.ts +2 -0
  479. package/dist/src/runtime/sandbox/registry.js +1 -1
  480. package/dist/src/runtime/sessions/compiled-agent-cache.js +1 -1
  481. package/dist/src/runtime/subagents/dynamic-agent-config.d.ts +2 -1
  482. package/dist/src/runtime/subagents/dynamic-agent-config.js +1 -1
  483. package/dist/src/runtime/subagents/workflow.d.ts +6 -0
  484. package/dist/src/runtime/subagents/workflow.js +1 -1
  485. package/dist/src/runtime/types.d.ts +3 -2
  486. package/dist/src/runtime/workspace/seed-files.d.ts +9 -12
  487. package/dist/src/runtime/workspace/seed-files.js +1 -1
  488. package/dist/src/runtime/workspace/spec.d.ts +1 -1
  489. package/dist/src/runtime/workspace/spec.js +1 -1
  490. package/dist/src/runtime/workspace/types.d.ts +2 -6
  491. package/dist/src/sandbox/provider.d.ts +185 -0
  492. package/dist/src/sandbox/provider.js +1 -0
  493. package/dist/src/sandbox/providers/default.d.ts +20 -19
  494. package/dist/src/sandbox/providers/default.js +1 -1
  495. package/dist/src/sandbox/providers/docker.d.ts +5 -2
  496. package/dist/src/sandbox/providers/docker.js +1 -1
  497. package/dist/src/sandbox/providers/just-bash.d.ts +4 -3
  498. package/dist/src/sandbox/providers/just-bash.js +1 -1
  499. package/dist/src/sandbox/providers/vercel.d.ts +4 -10
  500. package/dist/src/sandbox/providers/vercel.js +1 -1
  501. package/dist/src/sandbox/providers.d.ts +0 -1
  502. package/dist/src/sandbox/providers.js +1 -1
  503. package/dist/src/sandbox/state.d.ts +44 -0
  504. package/dist/src/sandbox/state.js +1 -1
  505. package/dist/src/self-modification/deployed-sandbox.d.ts +4 -9
  506. package/dist/src/self-modification/deployed-sandbox.js +1 -1
  507. package/dist/src/self-modification/filesystem.d.ts +3 -3
  508. package/dist/src/self-modification/remote/config.d.ts +2 -2
  509. package/dist/src/self-modification/remote/config.js +1 -1
  510. package/dist/src/self-modification/setup.d.ts +0 -1
  511. package/dist/src/self-modification/setup.js +8 -8
  512. package/dist/src/setup/integrations/discord/api.d.ts +7 -0
  513. package/dist/src/setup/integrations/discord/api.js +1 -1
  514. package/dist/src/setup/integrations/discord/daemon.d.ts +18 -0
  515. package/dist/src/setup/integrations/discord/daemon.js +21 -0
  516. package/dist/src/setup/integrations/discord/setup.d.ts +24 -4
  517. package/dist/src/setup/integrations/discord/setup.js +5 -4
  518. package/dist/src/setup/integrations/self-modification/setup.js +1 -1
  519. package/dist/src/setup/scaffold/create/project.js +1 -1
  520. package/dist/src/setup/scaffold/update/web-options.js +1 -1
  521. package/dist/src/setup/scaffold/version-tokens.d.ts +0 -1
  522. package/dist/src/setup/scaffold/version-tokens.js +1 -1
  523. package/dist/src/shared/agent-definition.d.ts +33 -42
  524. package/dist/src/shared/built-server-start-failure.d.ts +12 -0
  525. package/dist/src/shared/built-server-start-failure.js +3 -0
  526. package/dist/src/shared/framework-eve-server.d.ts +2 -0
  527. package/dist/src/shared/framework-eve-server.js +2 -2
  528. package/dist/src/shared/sandbox-environment.d.ts +4 -10
  529. package/dist/src/shared/sandbox-environment.js +1 -1
  530. package/dist/src/shared/sandbox-network-policy.d.ts +45 -9
  531. package/dist/src/shared/sandbox-provider.d.ts +0 -103
  532. package/dist/src/shared/sandbox-provider.js +1 -1
  533. package/dist/src/shared/sandbox-recorded-data-error.d.ts +4 -0
  534. package/dist/src/shared/sandbox-recorded-data-error.js +1 -0
  535. package/dist/src/shared/sandbox-session-gone-error.d.ts +12 -0
  536. package/dist/src/shared/sandbox-session-gone-error.js +1 -0
  537. package/dist/src/shared/sandbox-session.d.ts +97 -83
  538. package/dist/src/shared/sandbox-template-error.d.ts +19 -4
  539. package/dist/src/shared/sandbox-template-error.js +1 -1
  540. package/dist/src/shared/sandbox-tool-session-error.d.ts +4 -0
  541. package/dist/src/shared/sandbox-tool-session-error.js +1 -0
  542. package/dist/src/shared/session-history.d.ts +22 -0
  543. package/dist/src/shared/session-history.js +1 -0
  544. package/dist/src/shared/skill-package.js +1 -1
  545. package/dist/src/shared/skill-paths.d.ts +4 -5
  546. package/dist/src/shared/skill-paths.js +2 -2
  547. package/dist/src/shared/workflow-sandbox.d.ts +4 -41
  548. package/dist/src/shared/workflow-sandbox.js +1 -1
  549. package/dist/src/subagents/tool.d.ts +1 -3
  550. package/dist/src/subagents/tool.js +1 -1
  551. package/dist/src/svelte/index.js +1 -1
  552. package/dist/src/svelte/use-eve-agent.d.ts +1 -1
  553. package/dist/src/svelte/use-eve-agent.js +1 -1
  554. package/dist/src/tools/model-output.d.ts +23 -5
  555. package/dist/src/tools/model-output.js +1 -1
  556. package/dist/src/tools/provided/ask-question-workflow.js +1 -1
  557. package/dist/src/tools/provided/glob.js +1 -1
  558. package/dist/src/tools/provided/grep.js +1 -1
  559. package/dist/src/tools/provided/read-file.js +1 -1
  560. package/dist/src/tools/provided/sleep-workflow.js +1 -1
  561. package/dist/src/tools/provided/workflow.js +1 -1
  562. package/dist/src/tools/provided/write-file.js +1 -1
  563. package/dist/src/tools/workflow-definition.d.ts +33 -5
  564. package/dist/src/tracing/eve/conversation-context.d.ts +4 -1
  565. package/dist/src/tracing/eve/conversation-context.js +1 -1
  566. package/dist/src/tracing/eve/invoke-tool-span.js +1 -1
  567. package/dist/src/tracing/eve/operation-input.d.ts +0 -5
  568. package/dist/src/tracing/eve/operation-input.js +1 -1
  569. package/dist/src/tracing/eve/otel-registration.js +1 -1
  570. package/dist/src/tracing/eve/session.d.ts +3 -2
  571. package/dist/src/tracing/eve/session.js +1 -1
  572. package/dist/src/vue/index.js +1 -1
  573. package/dist/src/vue/use-eve-agent.d.ts +1 -1
  574. package/dist/src/vue/use-eve-agent.js +1 -1
  575. package/docs/agent-config.md +86 -65
  576. package/docs/channels/chat-sdk.mdx +6 -1
  577. package/docs/channels/custom.mdx +41 -9
  578. package/docs/channels/discord.mdx +279 -7
  579. package/docs/channels/eve.mdx +58 -1
  580. package/docs/channels/linq.mdx +53 -2
  581. package/docs/channels/mcp.mdx +2 -2
  582. package/docs/channels/overview.mdx +1 -1
  583. package/docs/channels/photon.mdx +65 -1
  584. package/docs/channels/slack.mdx +4 -2
  585. package/docs/concepts/built-in-tools.md +32 -9
  586. package/docs/concepts/execution-model-and-durability.mdx +15 -103
  587. package/docs/concepts/security-model.md +2 -0
  588. package/docs/concepts/sessions-runs-and-streaming.md +52 -43
  589. package/docs/connections/openapi.mdx +2 -0
  590. package/docs/connections/overview.mdx +1 -1
  591. package/docs/evals/reporters.mdx +1 -1
  592. package/docs/evals/running.mdx +1 -1
  593. package/docs/experimental/dynamic-schedules.mdx +186 -0
  594. package/docs/experimental/meta.json +4 -0
  595. package/docs/guides/client/messages.mdx +1 -1
  596. package/docs/guides/client/streaming.mdx +1 -0
  597. package/docs/guides/deployment/overview.md +4 -4
  598. package/docs/guides/deployment/self-hosting.md +53 -1
  599. package/docs/guides/dev-tui.md +1 -1
  600. package/docs/guides/dynamic-capabilities.md +1 -1
  601. package/docs/guides/frontend/overview.mdx +26 -6
  602. package/docs/guides/hooks.md +21 -1
  603. package/docs/guides/instrumentation/agent-runs.mdx +16 -0
  604. package/docs/guides/self-modification.md +1 -1
  605. package/docs/guides/session-context.md +1 -1
  606. package/docs/instructions.mdx +1 -1
  607. package/docs/memory/overview.mdx +2 -1
  608. package/docs/patterns/dynamic-scheduling.md +3 -1
  609. package/docs/reference/agent-files.md +3 -3
  610. package/docs/reference/cli.md +21 -9
  611. package/docs/reference/typescript-api.md +9 -3
  612. package/docs/sandbox/custom-providers.mdx +254 -0
  613. package/docs/sandbox/default.mdx +71 -4
  614. package/docs/sandbox/docker.mdx +15 -3
  615. package/docs/sandbox/index.mdx +27 -103
  616. package/docs/sandbox/just-bash.mdx +54 -0
  617. package/docs/sandbox/meta.json +9 -1
  618. package/docs/sandbox/troubleshooting.mdx +215 -0
  619. package/docs/sandbox/vercel.mdx +48 -7
  620. package/docs/schedules.mdx +2 -0
  621. package/docs/skills.mdx +1 -1
  622. package/docs/subagents/index.mdx +3 -1
  623. package/docs/tools/overview.mdx +21 -1
  624. package/docs/tools/tasks-upgrade.md +12 -7
  625. package/docs/tools/tasks.md +10 -6
  626. package/docs/tools/workflows.mdx +109 -10
  627. package/docs/tutorial/connect-a-warehouse.mdx +1 -1
  628. package/docs/tutorial/run-analysis.mdx +3 -3
  629. package/package.json +14 -20
  630. package/dist/src/compiled/@ai-sdk/code-mode/_run.d.ts +0 -1
  631. package/dist/src/compiled/@ai-sdk/code-mode/index.d.ts +0 -325
  632. package/dist/src/compiled/@ai-sdk/code-mode/index.js +0 -660
  633. package/dist/src/compiled/_chunks/workflow/dist-CyBgVS7g.js +0 -1
  634. package/dist/src/compiled/_chunks/workflow/dist-T5NnW-0k.js +0 -3
  635. package/dist/src/compiled/_chunks/workflow/helpers-DlLD3ov_.js +0 -1
  636. package/dist/src/compiled/_chunks/workflow/private-tQUuwBoQ.js +0 -1
  637. package/dist/src/compiled/_chunks/workflow/resume-hook-DMsV_b4n.js +0 -1
  638. package/dist/src/compiled/_chunks/workflow/serialization-DPdYS_w2.js +0 -16
  639. package/dist/src/compiled/_chunks/workflow/sleep-BY6leHh8.js +0 -1
  640. package/dist/src/compiled/_chunks/workflow/workflow-routes-CwqB063q.js +0 -1
  641. package/dist/src/execution/run-session-limits.d.ts +0 -12
  642. package/dist/src/execution/run-session-limits.js +0 -1
  643. package/dist/src/execution/sandbox/active-handles.d.ts +0 -32
  644. package/dist/src/execution/sandbox/active-handles.js +0 -1
  645. package/dist/src/execution/sandbox/bindings/docker-session.d.ts +0 -6
  646. package/dist/src/execution/sandbox/bindings/docker-session.js +0 -2
  647. package/dist/src/execution/sandbox/bindings/immutable-resources.d.ts +0 -15
  648. package/dist/src/execution/sandbox/bindings/immutable-resources.js +0 -2
  649. package/dist/src/execution/sandbox/bindings/microsandbox-create.d.ts +0 -12
  650. package/dist/src/execution/sandbox/bindings/microsandbox-create.js +0 -1
  651. package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.d.ts +0 -42
  652. package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.js +0 -1
  653. package/dist/src/execution/sandbox/bindings/microsandbox-metadata.d.ts +0 -29
  654. package/dist/src/execution/sandbox/bindings/microsandbox-metadata.js +0 -1
  655. package/dist/src/execution/sandbox/bindings/microsandbox-network.d.ts +0 -18
  656. package/dist/src/execution/sandbox/bindings/microsandbox-network.js +0 -1
  657. package/dist/src/execution/sandbox/bindings/microsandbox-options.d.ts +0 -37
  658. package/dist/src/execution/sandbox/bindings/microsandbox-options.js +0 -1
  659. package/dist/src/execution/sandbox/bindings/microsandbox-platform.d.ts +0 -21
  660. package/dist/src/execution/sandbox/bindings/microsandbox-platform.js +0 -21
  661. package/dist/src/execution/sandbox/bindings/microsandbox-process.d.ts +0 -3
  662. package/dist/src/execution/sandbox/bindings/microsandbox-process.js +0 -1
  663. package/dist/src/execution/sandbox/bindings/microsandbox-provider-state.d.ts +0 -11
  664. package/dist/src/execution/sandbox/bindings/microsandbox-provider-state.js +0 -1
  665. package/dist/src/execution/sandbox/bindings/microsandbox-runtime.d.ts +0 -82
  666. package/dist/src/execution/sandbox/bindings/microsandbox-runtime.js +0 -1
  667. package/dist/src/execution/sandbox/bindings/microsandbox-templates.d.ts +0 -12
  668. package/dist/src/execution/sandbox/bindings/microsandbox-templates.js +0 -1
  669. package/dist/src/execution/sandbox/bindings/microsandbox.d.ts +0 -16
  670. package/dist/src/execution/sandbox/bindings/microsandbox.js +0 -1
  671. package/dist/src/execution/sandbox/provider-host-development.d.ts +0 -2
  672. package/dist/src/execution/sandbox/provider-host-development.js +0 -1
  673. package/dist/src/execution/sandbox/provider-host.d.ts +0 -2
  674. package/dist/src/execution/sandbox/provider-host.js +0 -1
  675. package/dist/src/execution/tool-session/sandbox.d.ts +0 -22
  676. package/dist/src/execution/tool-session/sandbox.js +0 -1
  677. package/dist/src/harness/session-usage-limits.d.ts +0 -49
  678. package/dist/src/harness/session-usage-limits.js +0 -1
  679. package/dist/src/public/sandbox/microsandbox-sandbox.d.ts +0 -48
  680. package/dist/src/public/sandbox/microsandbox.d.ts +0 -9
  681. package/dist/src/public/sandbox/microsandbox.js +0 -1
  682. package/dist/src/sandbox/providers/microsandbox.d.ts +0 -12
  683. package/dist/src/sandbox/providers/microsandbox.js +0 -1
  684. package/dist/src/subagents/token-budget.d.ts +0 -15
  685. package/dist/src/subagents/token-budget.js +0 -1
  686. package/docs/sandbox/microsandbox.mdx +0 -31
  687. /package/dist/src/{public/sandbox/microsandbox-sandbox.js → execution/agent-sessions/runtime-overrides.js} +0 -0
@@ -1 +1 @@
1
- import{createLogger,logError}from"#internal/logging.js";import{isCompiledChannel}from"#channel/compiled-channel.js";import{defaultDeliverResult}from"#channel/adapter.js";import{parseJsonObject}from"#shared/json.js";import{POST,defineChannel}from"#public/definitions/channel.js";import{mergeUploadPolicy}from"#public/channels/upload-policy.js";import{INACTIVE_REQUEST_NOTICE,respondOrRetireInactivePrompt}from"#channel/inactive-prompt.js";import{formatTelegramContextBlock,parseTelegramUpdate}from"#public/channels/telegram/inbound.js";import{answerTelegramCallbackQuery,callTelegramApi,editTelegramMessageReplyMarkup,editTelegramMessageText,sendTelegramChatAction,sendTelegramMessage,splitTelegramMessageText,telegramContinuationToken}from"#public/channels/telegram/api.js";import{TELEGRAM_AUTHORIZATION_CALLBACK_PREFIX}from"#public/channels/telegram/authorization.js";import{TELEGRAM_HITL_CALLBACK_PREFIX,isTelegramSyntheticResponse,resolveTelegramInputResponses,telegramCallbackInputResponse,telegramReplyInputResponses,telegramResolvedPromptText}from"#public/channels/telegram/hitl.js";import{buildTelegramTurnMessage,collectTelegramFileParts,createTelegramFetchFile}from"#public/channels/telegram/attachments.js";import{defaultEvents,defaultOnMessage,defaultTelegramAuth,isTelegramBotMentioned}from"#public/channels/telegram/defaults.js";import{verifyTelegramRequest}from"#public/channels/telegram/verify.js";import{dispatchTelegramAuthorizationCallback}from"#public/channels/telegram/authorization-callback.js";import{initialTelegramState,stateFromTelegramCallbackQuery,stateFromTelegramMessage,telegramContinuationTokenFromState}from"#public/channels/telegram/state.js";import{telegramInstrumentation}from"#public/channels/telegram/audience.js";const log=createLogger(`telegram.channel`);function telegramChannel(e={}){let t=mergeUploadPolicy(e.uploadPolicy),n=e.onMessage??defaultOnMessage,r={...defaultEvents,...e.events},i=defineChannel({kindHint:`telegram`,turnPolicy:e.turnPolicy,uploadPolicy:e.uploadPolicy,state:initialTelegramState(e.botUsername),...telegramInstrumentation,fetchFile:createTelegramFetchFile({api:e.api,credentials:e.credentials,policy:t}),context(t,n){return rebuildTelegramContext(t,n,e)},routes:[POST(e.route??`/eve/v1/telegram`,async(r,{from:i,resolveSession:a,waitUntil:o})=>{let s=await verifyInbound(r,e.credentials);if(s===null)return new Response(`unauthorized`,{status:401});let c;try{c=parseJsonObject(JSON.parse(s))}catch(e){return log.warn(`inbound Telegram body is not valid JSON`,{error:e}),new Response(`ok`)}let l=parseTelegramUpdate(c);return l===null?new Response(`ok`):l.kind===`message`?(o(dispatchMessage({config:e,message:l.message,onMessage:n,uploadPolicy:t,from:i})),new Response(`ok`)):(o(dispatchCallbackQuery({config:e,query:l.callbackQuery,from:i,resolveSession:a})),new Response(`ok`))})],async receive(t,{from:n}){let r=t.target,i=readChatId(r.chatId);if(i===void 0)throw Error(`telegramChannel().receive requires target.chatId.`);let a=typeof r.messageThreadId==`number`?r.messageThreadId:void 0,o=readChatId(r.conversationId),s=r.initialMessage;if(s!==void 0&&o!==void 0)throw Error("telegramChannel().receive: `conversationId` and `initialMessage` are mutually exclusive.");let c={...initialTelegramState(e.botUsername),chatId:i,conversationId:o??null,messageThreadId:a??null};return s!==void 0&&await buildTelegramHandle({config:e,state:c}).sendMessage(s),n(telegramContinuationTokenFromState(c)).send(t.message,{auth:t.auth,state:c})},events:r});return attachTelegramDeliver(i),i}function rebuildTelegramContext(e,t,n){return{state:e,telegram:buildTelegramHandle({config:n,session:t,state:e})}}function buildTelegramHandle(e){let t=e.config.api,n=e.state,r=e.config.credentials;function anchor(t){let r=n.chatType??t.chatType??null;n.chatType===null&&t.chatType!==void 0&&(n.chatType=t.chatType),t.id&&shouldAnchorTelegramConversation(r)&&(n.conversationId=t.id,n.chatId&&e.session?.continuation?.alias(telegramContinuationToken({chatId:n.chatId,conversationId:t.id,messageThreadId:n.messageThreadId??void 0})))}async function sendOne(e){let t=await sendMessage(e);return anchor(t),t}async function sendMessage(e){let i=n.chatId??``;if(!i)throw Error(`telegramChannel: missing chat id for outbound message.`);return sendTelegramMessage({apiBaseUrl:t?.apiBaseUrl,body:{...e,message_thread_id:e.message_thread_id??n.messageThreadId??void 0},credentials:r,fetch:t?.fetch,fileBaseUrl:t?.fileBaseUrl,chatId:i})}return{botUsername:n.botUsername??e.config.botUsername,chatId:n.chatId??``,chatType:n.chatType??void 0,conversationId:n.conversationId??void 0,messageThreadId:n.messageThreadId??void 0,answerCallbackQuery(e){return answerTelegramCallbackQuery({apiBaseUrl:t?.apiBaseUrl,callbackQueryId:e.callbackQueryId,credentials:r,fetch:t?.fetch,showAlert:e.showAlert,text:e.text})},editMessageReplyMarkup(e){let i=n.chatId??``;if(!i)throw Error(`telegramChannel: missing chat id for reply-markup edit.`);return editTelegramMessageReplyMarkup({apiBaseUrl:t?.apiBaseUrl,chatId:i,credentials:r,fetch:t?.fetch,messageId:e.messageId,replyMarkup:e.replyMarkup})},editMessageText(e){let i=n.chatId??``;if(!i)throw Error(`telegramChannel: missing chat id for text edit.`);return editTelegramMessageText({apiBaseUrl:t?.apiBaseUrl,chatId:i,credentials:r,fetch:t?.fetch,messageId:e.messageId,replyMarkup:e.replyMarkup,text:e.text})},post(e){return postTelegramMessage(e,sendOne)},postEphemeral(e,t,n){return postTelegramMessage({...typeof t==`string`?{text:t}:t,ephemeral_message_parameters:{...n?.callbackQueryId===void 0?{}:{callback_query_id:n.callbackQueryId},receiver_user_id:e}},sendMessage)},request(e,n){return callTelegramApi({apiBaseUrl:t?.apiBaseUrl,body:n,botToken:r?.botToken,fetch:t?.fetch,method:e})},sendMessage(e){return postTelegramMessage(e,sendOne)},async startTyping(e=`typing`){let i=n.chatId??``;if(i)try{await sendTelegramChatAction({action:e,apiBaseUrl:t?.apiBaseUrl,chatId:i,credentials:r,fetch:t?.fetch,messageThreadId:n.messageThreadId??void 0})}catch(e){logError(log,`Telegram typing indicator failed — swallowed`,e,{chatId:i})}}}}function shouldAnchorTelegramConversation(e){return e===`group`||e===`supergroup`}async function postTelegramMessage(e,t){let n=typeof e==`string`?{text:e}:e,r=splitTelegramMessageText(n.text),i;for(let[e,a]of r.entries()){let r=await t(e===0?{...n,text:a}:{...n.ephemeral_message_parameters===void 0?{}:{ephemeral_message_parameters:n.ephemeral_message_parameters},text:a});i===void 0&&(i=r)}return i??{id:``,raw:null}}async function verifyInbound(e,t){try{return await verifyTelegramRequest(e,{secretToken:t?.webhookVerifier?void 0:t?.webhookSecretToken,webhookVerifier:t?.webhookVerifier})}catch(e){return log.warn(`telegram inbound verification failed`,{error:e}),null}}async function dispatchMessage(e){if(e.message.from?.isBot===!0)return;let t=stateFromTelegramMessage(e.message,e.config.botUsername),n={telegram:buildTelegramHandle({config:e.config,state:t})},r;try{r=await e.onMessage(n,e.message)}catch(e){log.error(`message handler failed`,{error:e});return}if(r==null)return;let i=collectTelegramFileParts(e.message.attachments,e.uploadPolicy),a=buildTelegramTurnMessage(e.message,i),o=formatTelegramContextBlock({botUsername:e.config.botUsername,chatId:e.message.chat.id,chatTitle:e.message.chat.title,chatType:e.message.chat.type,isMentioned:isTelegramBotMentioned(e.message,e.config.botUsername),messageId:e.message.messageId,messageThreadId:e.message.messageThreadId,userId:e.message.from?.id,username:e.message.from?.username}),s=r.context??[];try{await e.from(telegramContinuationTokenFromState(t)).send(a,{auth:r.auth,context:[o,...s],state:t,title:r.title})}catch(e){log.error(`message delivery failed`,{error:e})}}async function dispatchCallbackQuery(e){let t=stateFromTelegramCallbackQuery(e.query,e.config.botUsername),n={telegram:buildTelegramHandle({config:e.config,state:t})};if(e.query.data?.startsWith(TELEGRAM_AUTHORIZATION_CALLBACK_PREFIX)===!0){await dispatchTelegramAuthorizationCallback({continuationToken:telegramContinuationTokenFromState(t),query:e.query,resolveSession:e.resolveSession,state:t,telegram:n});return}if(e.query.data?.startsWith(TELEGRAM_HITL_CALLBACK_PREFIX)===!0){let r=e.query.message,i=e.query.data,a=r&&t.chatId?await respondOrRetireInactivePrompt(()=>e.from(telegramContinuationTokenFromState(t)).respond([telegramCallbackInputResponse(i)],{auth:defaultTelegramAuth({...r,from:e.query.from})}),{retirePrompt:e=>retireInactivePrompt(n,r,e)},log):void 0;try{await n.telegram.answerCallbackQuery({callbackQueryId:e.query.id,text:a?.outcome===`inactive`?INACTIVE_REQUEST_NOTICE:`Answer received.`})}catch(e){log.warn(`Telegram callback-query acknowledgement failed`,{error:e})}a?.outcome===`inactive`&&await a.retirement;return}if(e.config.onCallbackQuery!==void 0){try{await e.config.onCallbackQuery(n,e.query)}catch(e){log.error(`custom callback-query handler failed`,{error:e})}return}try{await n.telegram.answerCallbackQuery({callbackQueryId:e.query.id,text:`Unsupported action.`})}catch(e){log.warn(`Telegram unsupported callback-query acknowledgement failed`,{error:e})}}async function retireInactivePrompt(e,t,n){let r={inline_keyboard:[]};if(t.text===void 0){await e.telegram.editMessageReplyMarkup({messageId:t.messageId,replyMarkup:r});return}await e.telegram.editMessageText({messageId:t.messageId,replyMarkup:r,text:telegramResolvedPromptText(t.text,n)})}function attachTelegramDeliver(e){if(!isCompiledChannel(e))return;let t=e.adapter;t.deliver=(e,t)=>{let n=e.state,r=[...e.inputResponses??[],...telegramReplyInputResponses(n?.replyToBotMessageId,e.message)];if(r.some(isTelegramSyntheticResponse)){let n=resolveTelegramInputResponses(t.state,r);return n.length>0?{inputResponses:n,context:e.context}:e.message===void 0?void 0:{message:e.message,context:e.context}}return defaultDeliverResult(e)}}function readChatId(e){if(typeof e==`string`&&e.length>0)return e;if(typeof e==`number`&&Number.isFinite(e))return String(e)}export{telegramChannel};
1
+ import{createLogger,logError}from"#internal/logging.js";import{isCompiledChannel}from"#channel/compiled-channel.js";import{defaultDeliverResult}from"#channel/adapter.js";import{parseJsonObject}from"#shared/json.js";import{POST,defineChannel}from"#public/definitions/channel.js";import{mergeUploadPolicy}from"#public/channels/upload-policy.js";import{INACTIVE_REQUEST_NOTICE,respondOrRetireInactivePrompt}from"#channel/inactive-prompt.js";import{formatTelegramContextBlock,parseTelegramUpdate}from"#public/channels/telegram/inbound.js";import{answerTelegramCallbackQuery,callTelegramApi,editTelegramMessageReplyMarkup,editTelegramMessageText,sendTelegramChatAction,sendTelegramMessage,splitTelegramMessageText,telegramContinuationToken}from"#public/channels/telegram/api.js";import{TELEGRAM_AUTHORIZATION_CALLBACK_PREFIX}from"#public/channels/telegram/authorization.js";import{TELEGRAM_HITL_CALLBACK_PREFIX,isTelegramSyntheticResponse,resolveTelegramInputResponses,telegramCallbackInputResponse,telegramReplyInputResponses,telegramResolvedPromptText}from"#public/channels/telegram/hitl.js";import{buildTelegramTurnMessage,collectTelegramFileParts,createTelegramFetchFile}from"#public/channels/telegram/attachments.js";import{defaultEvents,defaultOnMessage,defaultTelegramAuth,isTelegramBotMentioned}from"#public/channels/telegram/defaults.js";import{verifyTelegramRequest}from"#public/channels/telegram/verify.js";import{dispatchTelegramAuthorizationCallback}from"#public/channels/telegram/authorization-callback.js";import{initialTelegramState,stateFromTelegramCallbackQuery,stateFromTelegramMessage,telegramContinuationTokenFromState}from"#public/channels/telegram/state.js";import{telegramInstrumentation}from"#public/channels/telegram/audience.js";const log=createLogger(`telegram.channel`);function telegramChannel(e={}){let t=mergeUploadPolicy(e.uploadPolicy),n=e.onMessage??defaultOnMessage,r={...defaultEvents,...e.events},i=defineChannel({kindHint:`telegram`,turnPolicy:e.turnPolicy,uploadPolicy:e.uploadPolicy,state:initialTelegramState(e.botUsername),...telegramInstrumentation,fetchFile:createTelegramFetchFile({api:e.api,credentials:e.credentials,policy:t}),context(t,n){return rebuildTelegramContext(t,n,e)},routes:[POST(e.route??`/eve/v1/telegram`,async(r,{from:i,resolveSession:a,waitUntil:o})=>{let s=await verifyInbound(r,e.credentials);if(s===null)return new Response(`unauthorized`,{status:401});let c;try{c=parseJsonObject(JSON.parse(s))}catch(e){return log.warn(`inbound Telegram body is not valid JSON`,{error:e}),new Response(`ok`)}let l=parseTelegramUpdate(c);return l===null?new Response(`ok`):l.kind===`message`?(o(dispatchMessage({config:e,message:l.message,onMessage:n,uploadPolicy:t,from:i})),new Response(`ok`)):(o(dispatchCallbackQuery({config:e,query:l.callbackQuery,from:i,resolveSession:a})),new Response(`ok`))})],async receive(t,{from:n}){let r=t.target,i=readChatId(r.chatId);if(i===void 0)throw Error(`telegramChannel().receive requires target.chatId.`);let a=typeof r.messageThreadId==`number`?r.messageThreadId:void 0,o=readChatId(r.conversationId),s=r.initialMessage;if(s!==void 0&&o!==void 0)throw Error("telegramChannel().receive: `conversationId` and `initialMessage` are mutually exclusive.");let c={...initialTelegramState(e.botUsername),chatId:i,conversationId:o??null,messageThreadId:a??null};return s!==void 0&&await buildTelegramHandle({config:e,state:c}).sendMessage(s),n(telegramContinuationTokenFromState(c)).send(t.message,{auth:t.auth,state:c})},events:r});return attachTelegramDeliver(i),i}function rebuildTelegramContext(e,t,n){return{state:e,telegram:buildTelegramHandle({config:n,session:t,state:e})}}function buildTelegramHandle(e){let t=e.config.api,n=e.state,r=e.config.credentials;function anchor(t){let r=n.chatType??t.chatType??null;n.chatType===null&&t.chatType!==void 0&&(n.chatType=t.chatType),t.id&&shouldAnchorTelegramConversation(r)&&(n.conversationId=t.id,n.chatId&&e.session?.continuation?.alias(telegramContinuationToken({chatId:n.chatId,conversationId:t.id,messageThreadId:n.messageThreadId??void 0})))}async function sendOne(e){let t=await sendMessage(e);return anchor(t),t}async function sendMessage(e){let i=n.chatId??``;if(!i)throw Error(`telegramChannel: missing chat id for outbound message.`);return sendTelegramMessage({apiBaseUrl:t?.apiBaseUrl,body:{...e,message_thread_id:e.message_thread_id??n.messageThreadId??void 0},credentials:r,fetch:t?.fetch,fileBaseUrl:t?.fileBaseUrl,chatId:i})}return{botUsername:n.botUsername??e.config.botUsername,chatId:n.chatId??``,chatType:n.chatType??void 0,conversationId:n.conversationId??void 0,messageThreadId:n.messageThreadId??void 0,answerCallbackQuery(e){return answerTelegramCallbackQuery({apiBaseUrl:t?.apiBaseUrl,callbackQueryId:e.callbackQueryId,credentials:r,fetch:t?.fetch,showAlert:e.showAlert,text:e.text})},editMessageReplyMarkup(e){let i=n.chatId??``;if(!i)throw Error(`telegramChannel: missing chat id for reply-markup edit.`);return editTelegramMessageReplyMarkup({apiBaseUrl:t?.apiBaseUrl,chatId:i,credentials:r,fetch:t?.fetch,messageId:e.messageId,replyMarkup:e.replyMarkup})},editMessageText(e){let i=n.chatId??``;if(!i)throw Error(`telegramChannel: missing chat id for text edit.`);return editTelegramMessageText({apiBaseUrl:t?.apiBaseUrl,chatId:i,credentials:r,fetch:t?.fetch,messageId:e.messageId,replyMarkup:e.replyMarkup,text:e.text})},post(e){return postTelegramMessage(e,sendOne)},postEphemeral(e,t,n){return postTelegramMessage({...typeof t==`string`?{text:t}:t,ephemeral_message_parameters:{...n?.callbackQueryId===void 0?{}:{callback_query_id:n.callbackQueryId},receiver_user_id:e}},sendMessage)},request(e,n){return callTelegramApi({apiBaseUrl:t?.apiBaseUrl,body:n,botToken:r?.botToken,fetch:t?.fetch,method:e})},sendMessage(e){return postTelegramMessage(e,sendOne)},async startTyping(e=`typing`){let i=n.chatId??``;if(i)try{await sendTelegramChatAction({action:e,apiBaseUrl:t?.apiBaseUrl,chatId:i,credentials:r,fetch:t?.fetch,messageThreadId:n.messageThreadId??void 0})}catch(e){logError(log,`Telegram typing indicator failed — swallowed`,e,{chatId:i})}}}}function shouldAnchorTelegramConversation(e){return e===`group`||e===`supergroup`}async function postTelegramMessage(e,t){let n=typeof e==`string`?{text:e}:e,r=splitTelegramMessageText(n.text),i;for(let[e,a]of r.entries()){let r=await t(e===0?{...n,text:a}:{...n.ephemeral_message_parameters===void 0?{}:{ephemeral_message_parameters:n.ephemeral_message_parameters},text:a});i===void 0&&(i=r)}return i??{id:``,raw:null}}async function verifyInbound(e,t){try{return await verifyTelegramRequest(e,{secretToken:t?.webhookVerifier?void 0:t?.webhookSecretToken,webhookVerifier:t?.webhookVerifier})}catch(e){return log.warn(`telegram inbound verification failed`,{error:e}),null}}async function dispatchMessage(e){if(e.message.from?.isBot===!0)return;let t=stateFromTelegramMessage(e.message,e.config.botUsername),n={telegram:buildTelegramHandle({config:e.config,state:t})},r;try{r=await e.onMessage(n,e.message)}catch(e){log.error(`message handler failed`,{error:e});return}if(r==null)return;let i=collectTelegramFileParts(e.message.attachments,e.uploadPolicy),a=buildTelegramTurnMessage(e.message,i),o=formatTelegramContextBlock({botUsername:e.config.botUsername,chatId:e.message.chat.id,chatTitle:e.message.chat.title,chatType:e.message.chat.type,isMentioned:isTelegramBotMentioned(e.message,e.config.botUsername),messageId:e.message.messageId,messageThreadId:e.message.messageThreadId,userId:e.message.from?.id,username:e.message.from?.username}),s=r.context??[];try{await e.from(telegramContinuationTokenFromState(t)).send(a,{auth:r.auth,context:[o,...s],history:r.history,state:t,title:r.title})}catch(e){log.error(`message delivery failed`,{error:e})}}async function dispatchCallbackQuery(e){let t=stateFromTelegramCallbackQuery(e.query,e.config.botUsername),n={telegram:buildTelegramHandle({config:e.config,state:t})};if(e.query.data?.startsWith(TELEGRAM_AUTHORIZATION_CALLBACK_PREFIX)===!0){await dispatchTelegramAuthorizationCallback({continuationToken:telegramContinuationTokenFromState(t),query:e.query,resolveSession:e.resolveSession,state:t,telegram:n});return}if(e.query.data?.startsWith(TELEGRAM_HITL_CALLBACK_PREFIX)===!0){let r=e.query.message,i=e.query.data,a=r&&t.chatId?await respondOrRetireInactivePrompt(()=>e.from(telegramContinuationTokenFromState(t)).respond([telegramCallbackInputResponse(i)],{auth:defaultTelegramAuth({...r,from:e.query.from})}),{retirePrompt:e=>retireInactivePrompt(n,r,e)},log):void 0;try{await n.telegram.answerCallbackQuery({callbackQueryId:e.query.id,text:a?.outcome===`inactive`?INACTIVE_REQUEST_NOTICE:`Answer received.`})}catch(e){log.warn(`Telegram callback-query acknowledgement failed`,{error:e})}a?.outcome===`inactive`&&await a.retirement;return}if(e.config.onCallbackQuery!==void 0){try{await e.config.onCallbackQuery(n,e.query)}catch(e){log.error(`custom callback-query handler failed`,{error:e})}return}try{await n.telegram.answerCallbackQuery({callbackQueryId:e.query.id,text:`Unsupported action.`})}catch(e){log.warn(`Telegram unsupported callback-query acknowledgement failed`,{error:e})}}async function retireInactivePrompt(e,t,n){let r={inline_keyboard:[]};if(t.text===void 0){await e.telegram.editMessageReplyMarkup({messageId:t.messageId,replyMarkup:r});return}await e.telegram.editMessageText({messageId:t.messageId,replyMarkup:r,text:telegramResolvedPromptText(t.text,n)})}function attachTelegramDeliver(e){if(!isCompiledChannel(e))return;let t=e.adapter;t.deliver=(e,t)=>{let n=e.state,r=[...e.inputResponses??[],...telegramReplyInputResponses(n?.replyToBotMessageId,e.message)];if(r.some(isTelegramSyntheticResponse)){let n=resolveTelegramInputResponses(t.state,r);return n.length>0?{inputResponses:n,context:e.context}:e.message===void 0?void 0:{message:e.message,context:e.context}}return defaultDeliverResult(e)}}function readChatId(e){if(typeof e==`string`&&e.length>0)return e;if(typeof e==`number`&&Number.isFinite(e))return String(e)}export{telegramChannel};
@@ -3,7 +3,7 @@ import type { ExactDefinition } from "#public/definitions/exact.js";
3
3
  import type { RemoteAgentDefinition } from "#public/definitions/remote-agent.js";
4
4
  import type { DynamicEvents, DynamicSentinel } from "#dynamic/definition.js";
5
5
  declare const DEFINED_AGENT: unique symbol;
6
- export type { AgentModelResolveContext, AgentModelOptionsDefinition, AgentModelResolver, AgentReasoningDefinition, AgentBuildDefinition, PublicAgentDynamicModelDefinition as AgentDynamicModelDefinition, PublicAgentDynamicModelResult as AgentDynamicModelResult, AgentExperimentalDefinition, AgentLimitsDefinition, PublicAgentModelSelectionDefinition as AgentModelSelectionDefinition, AgentWorkflowDefinition, AgentWorkflowRetentionDefinition, AgentWorkflowWorldDefinition, PublicAgentModelDefinition as AgentModelDefinition, PublicAgentStaticModelDefinition as AgentStaticModelDefinition, PublicAgentCompactionDefinition as AgentCompactionDefinition, } from "#shared/agent-definition.js";
6
+ export type { AgentModelResolveContext, AgentModelOptionsDefinition, AgentModelResolver, AgentReasoningDefinition, AgentBuildDefinition, PublicAgentDynamicModelDefinition as AgentDynamicModelDefinition, PublicAgentDynamicModelResult as AgentDynamicModelResult, AgentExperimentalDefinition, AgentLimitsDefinition, SessionUsageLimit, PublicAgentModelSelectionDefinition as AgentModelSelectionDefinition, AgentWorkflowDefinition, AgentWorkflowRetentionDefinition, AgentWorkflowWorldDefinition, PublicAgentModelDefinition as AgentModelDefinition, PublicAgentStaticModelDefinition as AgentStaticModelDefinition, PublicAgentCompactionDefinition as AgentCompactionDefinition, } from "#shared/agent-definition.js";
7
7
  /**
8
8
  * Additive public agent configuration authored in `agent.ts`.
9
9
  *
@@ -1,6 +1,6 @@
1
1
  import { type ChannelReference } from "#channel/compiled-channel.js";
2
2
  import { type ChannelCorsOptions } from "#channel/cors.js";
3
- import type { ChannelFrom, ChannelReceiveContext, ChannelResolveSession, ChannelRespondOptions, ChannelSendOptions, ChannelSource } from "#channel/channel-operations.js";
3
+ import type { ChannelCreateOptions, ChannelCreateResult, ChannelFrom, ChannelReceiveContext, ChannelResolveSession, ChannelRespondOptions, ChannelSendOptions, ChannelSource } from "#channel/channel-operations.js";
4
4
  import type { RouteDefinition } from "#channel/routes.js";
5
5
  import type { Session } from "#channel/session.js";
6
6
  import type { TurnPolicy } from "#channel/types.js";
@@ -14,7 +14,7 @@ export type { Session, SessionHandle } from "#channel/session.js";
14
14
  export type { ChannelAudience } from "#shared/channel-audience.js";
15
15
  export type { AudienceCaller, AudienceContext, AudienceInput, AudiencePrincipal, ConversationEnvironment, } from "#shared/conversation-context.js";
16
16
  export type { SessionRespondOptions, SessionSendOptions } from "#channel/session.js";
17
- export type { ChannelFrom, ChannelReceiveContext, ChannelResolveSession, ChannelRespondOptions, ChannelSendOptions, ChannelSource, };
17
+ export type { ChannelCreateOptions, ChannelCreateResult, ChannelFrom, ChannelReceiveContext, ChannelResolveSession, ChannelRespondOptions, ChannelSendOptions, ChannelSource, };
18
18
  export type { ChannelCors, ChannelCorsOptions } from "#channel/cors.js";
19
19
  export type { AgentDescription, AgentSkillDescription, AgentSkillFileDescription, AgentToolDescription, } from "#channel/agent-description.js";
20
20
  export type { InvokeToolFn, InvokeToolOptions, InvokeToolResult } from "#channel/invoke-tool.js";
@@ -1 +1 @@
1
- import{createMetadataAudienceProjector}from"#channel/audience.js";import{CHANNEL_SENTINEL}from"#channel/compiled-channel.js";import{defaultDeliverResult}from"#channel/adapter.js";import{SessionStrandedError}from"#channel/session-stranded-error.js";import{buildCallbackContext}from"#context/build-callback-context.js";import{mergeUploadPolicy}from"#public/channels/upload-policy.js";import{normalizeChannelCors}from"#channel/cors.js";import{HTTP_ADAPTER_KIND}from"#channel/http.js";import{DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,WS}from"#channel/routes.js";const DISABLED_ROUTE_SENTINEL_KIND=`eve:disabled-channel`;function disableRoute(){return{kind:DISABLED_ROUTE_SENTINEL_KIND}}function isDisabledRouteSentinel(e){return typeof e==`object`&&!!e&&e.kind===DISABLED_ROUTE_SENTINEL_KIND}function defineChannel(e){let t=buildAdapter(e),n=normalizeChannelCors(e.cors);return{__kind:CHANNEL_SENTINEL,routes:e.routes,adapter:t,cors:n,receive:e.receive,turnPolicy:e.turnPolicy}}const eventTypes=Object.keys({"approval.candidate":null,"approval.settled":null,"context.cleared":null,"compaction.requested":null,"compaction.completed":null,"turn.started":null,"actions.requested":null,"action.partial":null,"action.result":null,"message.completed":null,"message.appended":null,"reasoning.appended":null,"reasoning.completed":null,"step.started":null,"step.completed":null,"input.requested":null,"input.resolved":null,"task.started":null,"task.settled":null,"turn.waiting":null,"turn.failed":null,"turn.completed":null,"turn.cancelled":null,"session.failed":null,"session.completed":null,"session.waiting":null,"authorization.required":null,"authorization.completed":null});function buildAdapter(e){let t=e.state!=null,n=e.context!=null,r=e.fetchFile!==void 0,i=e.metadata,a=i!==void 0,o=e.audience,s=e.uploadPolicy===void 0?void 0:mergeUploadPolicy(e.uploadPolicy),c=t||n||a||s!==void 0,l={},u=!1,d={kind:e.kindHint??`defineChannel`},f=e.events;for(let e of eventTypes){let t=f?.[e];t&&(u=!0,l[e]=(n,r)=>{let{session:i,...a}=r,o={...a,continuation:i?.continuation===void 0?void 0:{token:i.continuation.token,alias:e=>i.continuation?.alias(e)}};if(e===`session.failed`)return t(n,o);let s=buildCallbackContext();return t(n,o,s)})}return!c&&!u&&!r?{kind:e.kindHint??HTTP_ADAPTER_KIND,...o===void 0?void 0:{instrumentation:{audience:o}}}:{kind:e.kindHint??`defineChannel`,state:t?{...e.state}:{},fetchFile:e.fetchFile,uploadPolicy:s,instrumentation:i===void 0&&o===void 0?void 0:{...i===void 0?void 0:{metadata(e){let{audience:t,...n}=i(e);return n}},...o===void 0?i===void 0?void 0:{audience:createMetadataAudienceProjector(d,i)}:{audience:o}},createAdapterContext(t){let r=t.state,i=t.session;return{...n?e.context(r,i):{},state:r,ctx:t.ctx,session:i}},deliver(t,n){return e.deliver===void 0?defaultDeliverResult(t):e.deliver(t,n)},...l}}export{DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,SessionStrandedError,WS,defineChannel,disableRoute,isDisabledRouteSentinel};
1
+ import{SessionStrandedError}from"#channel/session-stranded-error.js";import{createMetadataAudienceProjector}from"#channel/audience.js";import{CHANNEL_SENTINEL}from"#channel/compiled-channel.js";import{defaultDeliverResult}from"#channel/adapter.js";import{buildCallbackContext}from"#context/build-callback-context.js";import{mergeUploadPolicy}from"#public/channels/upload-policy.js";import{DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,WS}from"#channel/routes.js";import{normalizeChannelCors}from"#channel/cors.js";import{HTTP_ADAPTER_KIND}from"#channel/http.js";const DISABLED_ROUTE_SENTINEL_KIND=`eve:disabled-channel`;function disableRoute(){return{kind:DISABLED_ROUTE_SENTINEL_KIND}}function isDisabledRouteSentinel(e){return typeof e==`object`&&!!e&&e.kind===DISABLED_ROUTE_SENTINEL_KIND}function defineChannel(e){let t=buildAdapter(e),n=normalizeChannelCors(e.cors);return{__kind:CHANNEL_SENTINEL,routes:e.routes,adapter:t,cors:n,receive:e.receive,turnPolicy:e.turnPolicy}}const eventTypes=Object.keys({"approval.candidate":null,"approval.settled":null,"context.cleared":null,"compaction.requested":null,"compaction.completed":null,"turn.started":null,"actions.requested":null,"action.partial":null,"action.result":null,"message.completed":null,"message.appended":null,"reasoning.appended":null,"reasoning.completed":null,"step.started":null,"step.completed":null,"input.requested":null,"input.resolved":null,"task.started":null,"task.settled":null,"turn.waiting":null,"turn.failed":null,"turn.completed":null,"turn.cancelled":null,"session.failed":null,"session.completed":null,"session.waiting":null,"authorization.required":null,"authorization.completed":null});function buildAdapter(e){let t=e.state!=null,n=e.context!=null,r=e.fetchFile!==void 0,i=e.metadata,a=i!==void 0,o=e.audience,s=e.uploadPolicy===void 0?void 0:mergeUploadPolicy(e.uploadPolicy),c=t||n||a||s!==void 0,l={},u=!1,d={kind:e.kindHint??`defineChannel`},f=e.events;for(let e of eventTypes){let t=f?.[e];t&&(u=!0,l[e]=(n,r)=>{let{session:i,...a}=r,o={...a,continuation:i?.continuation===void 0?void 0:{token:i.continuation.token,alias:e=>i.continuation?.alias(e)}};if(e===`session.failed`)return t(n,o);let s=buildCallbackContext();return t(n,o,s)})}return!c&&!u&&!r?{kind:e.kindHint??HTTP_ADAPTER_KIND,...o===void 0?void 0:{instrumentation:{audience:o}}}:{kind:e.kindHint??`defineChannel`,state:t?{...e.state}:{},fetchFile:e.fetchFile,uploadPolicy:s,instrumentation:i===void 0&&o===void 0?void 0:{...i===void 0?void 0:{metadata(e){let{audience:t,...n}=i(e);return n}},...o===void 0?i===void 0?void 0:{audience:createMetadataAudienceProjector(d,i)}:{audience:o}},createAdapterContext(t){let r=t.state,i=t.session;return{...n?e.context(r,i):{},state:r,ctx:t.ctx,session:i}},deliver(t,n){return e.deliver===void 0?defaultDeliverResult(t):e.deliver(t,n)},...l}}export{DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,SessionStrandedError,WS,defineChannel,disableRoute,isDisabledRouteSentinel};
@@ -24,6 +24,7 @@ export interface HookEventMap {
24
24
  readonly "compaction.completed": ProtocolEvent<"compaction.completed">;
25
25
  readonly "compaction.requested": ProtocolEvent<"compaction.requested">;
26
26
  readonly "context.cleared": ProtocolEvent<"context.cleared">;
27
+ readonly "history.imported": ProtocolEvent<"history.imported">;
27
28
  readonly "input.requested": ProtocolEvent<"input.requested">;
28
29
  readonly "input.resolved": ProtocolEvent<"input.resolved">;
29
30
  readonly "message.appended": ProtocolEvent<"message.appended">;
@@ -1,5 +1,5 @@
1
1
  import type { SandboxSelector } from "#shared/sandbox-environment.js";
2
- export type { SandboxCommandResult, SandboxProcess, SandboxReadBinaryFileOptions, SandboxReadFileOptions, SandboxRemovePathOptions, SandboxReadTextFileOptions, SandboxRunOptions, SandboxSession, RuntimeSandboxSession, RuntimeSandboxSessionFor, SandboxSpawnOptions, SandboxWriteBinaryFileOptions, SandboxWriteFileOptions, SandboxWriteTextFileOptions, } from "#shared/sandbox-session.js";
2
+ export type { SandboxCommandResult, SandboxProcess, SandboxReadBinaryFileOptions, SandboxReadFileOptions, SandboxRemovePathOptions, SandboxReadTextFileOptions, SandboxRunOptions, SandboxSession, RuntimeSandboxSession, RuntimeSandboxSessionFor, SandboxSpawnOptions, SandboxWriteBinaryFileOptions, SandboxWriteFileOptions, SandboxWriteFilesOptions, SandboxWriteTextFileOptions, } from "#shared/sandbox-session.js";
3
3
  export type { SandboxOpenArguments, SandboxEnvironment, SandboxSelector, SandboxSelectorContext, } from "#shared/sandbox-environment.js";
4
4
  export declare function defineSandbox(definition: SandboxSelector): SandboxSelector;
5
5
  export declare function defineParentSandbox(): SandboxSelector;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Core agent authoring helpers for `agent/agent.ts`.
3
3
  */
4
- export { type AgentCompactionDefinition, type AgentDefinition, type AgentExperimentalDefinition, type AgentLimitsDefinition, type AgentModelDefinition, type AgentModelOptionsDefinition, type AgentReasoningDefinition, type AgentStaticModelDefinition, type AgentWorkflowDefinition, type AgentWorkflowRetentionDefinition, type AgentWorkflowWorldDefinition, type DefinedAgent, type DynamicSubagentDefinition, type DynamicLocalSubagentDefinition, defineAgent, defineDynamic, } from "#public/definitions/agent.js";
4
+ export { type AgentCompactionDefinition, type AgentDefinition, type AgentExperimentalDefinition, type AgentLimitsDefinition, type AgentModelDefinition, type AgentModelOptionsDefinition, type AgentReasoningDefinition, type AgentStaticModelDefinition, type AgentWorkflowDefinition, type AgentWorkflowRetentionDefinition, type AgentWorkflowWorldDefinition, type DefinedAgent, type SessionUsageLimit, type DynamicSubagentDefinition, type DynamicLocalSubagentDefinition, defineAgent, defineDynamic, } from "#public/definitions/agent.js";
5
5
  export type { DynamicResolveContext, DynamicSentinel } from "#dynamic/definition.js";
6
6
  export { defineWorkspaceAgent, type WorkspaceAgentDefinition, type WorkspaceAgentTransport, } from "#public/definitions/workspace-agent.js";
7
7
  export { type RemoteAgentDefinition, type RemoteAgentDefinitionInput, type RemoteAgentUrl, defineRemoteAgent, } from "#public/definitions/remote-agent.js";
@@ -1 +1 @@
1
- import{resolveSharedEveDevServer,startEveProductionServer}from"#shared/framework-eve-server.js";const NEXT_PHASE_PRODUCTION_BUILD=`phase-production-build`,NEXT_PHASE_PRODUCTION_SERVER=`phase-production-server`,EVE_NEXT_HOST={label:`Next.js`,slug:`next`},globalStateSymbol=Symbol.for(`eve.next.state`);function getGlobalState(){let e=globalThis;return e[globalStateSymbol]??={servers:new Map},e[globalStateSymbol]}function readEveBaseUrlEnvironment(){let e=process.env.EVE_BASE_URL;if(e!==void 0&&e.trim().length!==0)return new URL(e).origin}async function ensureEveProductionServer(e){let t=getGlobalState(),n=`production:${e.appRoot}:${e.origin}`,r=t.servers.get(n);r===void 0&&(r=startEveProductionServer({appRoot:e.appRoot,host:EVE_NEXT_HOST,origin:e.origin}).catch(e=>{throw t.servers.delete(n),e}),t.servers.set(n,r)),await r}async function resolveEveDestinationPrefix(e){if(process.env.NODE_ENV===`production`)return e.productionDestinationPrefix;let t=readEveBaseUrlEnvironment();if(t!==void 0)return t;if(process.env.NODE_ENV!==`development`)return e.productionDestinationPrefix;let n=getGlobalState(),r=`dev:${e.appRoot}`,i=n.servers.get(r);return i===void 0&&(i=resolveSharedEveDevServer({appRoot:e.appRoot,host:EVE_NEXT_HOST,logLabel:e.logLabel,timeoutMs:e.devServerTimeoutMs,workspaceAgentName:e.workspaceAgentName}).catch(e=>{throw n.servers.delete(r),e}),n.servers.set(r,i)),(await i).origin}export{EVE_NEXT_HOST,NEXT_PHASE_PRODUCTION_BUILD,NEXT_PHASE_PRODUCTION_SERVER,ensureEveProductionServer,resolveEveDestinationPrefix};
1
+ import{resolveSharedEveDevServer,startEveProductionServer}from"#shared/framework-eve-server.js";const NEXT_PHASE_PRODUCTION_BUILD=`phase-production-build`,NEXT_PHASE_PRODUCTION_SERVER=`phase-production-server`,EVE_NEXT_HOST={label:`Next.js`,slug:`next`},globalStateSymbol=Symbol.for(`eve.next.state`);function getGlobalState(){let e=globalThis;return e[globalStateSymbol]??={servers:new Map},e[globalStateSymbol]}function readEveBaseUrlEnvironment(){let e=process.env.EVE_BASE_URL;if(e!==void 0&&e.trim().length!==0)return new URL(e).origin}async function ensureEveProductionServer(e){let t=getGlobalState(),n=`production:${e.appRoot}:${e.origin}`,r=t.servers.get(n);r===void 0&&(r=startEveProductionServer({appRoot:e.appRoot,host:EVE_NEXT_HOST,origin:e.origin,portRetryHint:`set EVE_NEXT_PRODUCTION_PORT to another port`}).catch(e=>{throw t.servers.delete(n),e}),t.servers.set(n,r)),await r}async function resolveEveDestinationPrefix(e){if(process.env.NODE_ENV===`production`)return e.productionDestinationPrefix;let t=readEveBaseUrlEnvironment();if(t!==void 0)return t;if(process.env.NODE_ENV!==`development`)return e.productionDestinationPrefix;let n=getGlobalState(),r=`dev:${e.appRoot}`,i=n.servers.get(r);return i===void 0&&(i=resolveSharedEveDevServer({appRoot:e.appRoot,host:EVE_NEXT_HOST,logLabel:e.logLabel,timeoutMs:e.devServerTimeoutMs,workspaceAgentName:e.workspaceAgentName}).catch(e=>{throw n.servers.delete(r),e}),n.servers.set(r,i)),(await i).origin}export{EVE_NEXT_HOST,NEXT_PHASE_PRODUCTION_BUILD,NEXT_PHASE_PRODUCTION_SERVER,ensureEveProductionServer,resolveEveDestinationPrefix};
@@ -4,6 +4,11 @@ import type { SandboxNetworkOptions, SandboxNetworkPolicy } from "#shared/sandbo
4
4
  export type DockerSandboxPullPolicy = "if-not-present" | "always" | "never";
5
5
  /** Coarse-grained egress policy for one live Docker sandbox. */
6
6
  export type DockerSandboxNetworkPolicy = Extract<SandboxNetworkPolicy, "allow-all" | "deny-all">;
7
+ /** Live sandbox capabilities exposed by a Docker environment. */
8
+ export interface DockerSandboxSession extends SandboxSession {
9
+ /** Applies a coarse egress policy to the live container. */
10
+ setNetworkPolicy(policy: DockerSandboxNetworkPolicy): Promise<void>;
11
+ }
7
12
  /** Options shared by every sandbox created from one Docker environment. */
8
13
  export interface DockerSandboxEnvironmentOptions {
9
14
  /** Base container image. Defaults to eve's published sandbox image. */
@@ -13,7 +18,7 @@ export interface DockerSandboxEnvironmentOptions {
13
18
  /** Base image pull behavior. @default "if-not-present" */
14
19
  readonly pullPolicy?: DockerSandboxPullPolicy;
15
20
  /** Idempotent setup captured in the prepared image. */
16
- readonly prepare?: (sandbox: SandboxSession) => Promise<void> | void;
21
+ readonly prepare?: (sandbox: DockerSandboxSession) => Promise<void> | void;
17
22
  }
18
23
  /** Options applied when eve creates one live Docker sandbox. */
19
24
  export interface DockerSandboxRuntimeOptions extends SandboxNetworkOptions {
@@ -1,9 +1,2 @@
1
- import type { SandboxSession } from "#shared/sandbox-session.js";
2
- import type { DockerSandboxNetworkPolicy } from "#public/sandbox/docker-sandbox.js";
3
- /** Live sandbox capabilities exposed by a Docker environment. */
4
- export interface DockerSandboxSession extends SandboxSession {
5
- /** Applies a coarse egress policy to the live container. */
6
- setNetworkPolicy(policy: DockerSandboxNetworkPolicy): Promise<void>;
7
- }
8
1
  export { DockerSandbox, type DockerSandboxEnvironmentOptions, type DockerSandboxRuntimeOptions, } from "#sandbox/providers/docker.js";
9
- export type { DockerSandboxNetworkPolicy, DockerSandboxPullPolicy, } from "#public/sandbox/docker-sandbox.js";
2
+ export type { DockerSandboxNetworkPolicy, DockerSandboxPullPolicy, DockerSandboxSession, } from "#public/sandbox/docker-sandbox.js";
@@ -1,4 +1,4 @@
1
- export { defineParentSandbox, defineSandbox, type SandboxOpenArguments, type SandboxEnvironment, type SandboxSelector, type SandboxSelectorContext, type SandboxCommandResult, type SandboxProcess, type SandboxReadBinaryFileOptions, type SandboxReadFileOptions, type SandboxReadTextFileOptions, type SandboxRunOptions, type SandboxSession, type RuntimeSandboxSession, type RuntimeSandboxSessionFor, type SandboxSpawnOptions, type SandboxWriteBinaryFileOptions, type SandboxWriteFileOptions, type SandboxWriteTextFileOptions, } from "#public/definitions/sandbox.js";
1
+ export { defineParentSandbox, defineSandbox, type SandboxOpenArguments, type SandboxEnvironment, type SandboxSelector, type SandboxSelectorContext, type SandboxCommandResult, type SandboxProcess, type SandboxReadBinaryFileOptions, type SandboxReadFileOptions, type SandboxReadTextFileOptions, type SandboxRunOptions, type SandboxSession, type RuntimeSandboxSession, type RuntimeSandboxSessionFor, type SandboxSpawnOptions, type SandboxRemovePathOptions, type SandboxWriteBinaryFileOptions, type SandboxWriteFileOptions, type SandboxWriteFilesOptions, type SandboxWriteTextFileOptions, } from "#public/definitions/sandbox.js";
2
2
  export { DefaultSandbox } from "#sandbox/providers/default.js";
3
- export type { DefaultSandboxEnvironmentOptions } from "#sandbox/providers/default.js";
4
- export type { SandboxNetworkOptions, SandboxNetworkPolicy, } from "#shared/sandbox-network-policy.js";
3
+ export type { DefaultSandboxEnvironmentOptions, DefaultSandboxRuntimeOptions, DefaultSandboxSession, } from "#sandbox/providers/default.js";
4
+ export type { SandboxNetworkMatch, SandboxNetworkMatcher, SandboxNetworkOptions, SandboxNetworkPolicy, SandboxNetworkRule, } from "#shared/sandbox-network-policy.js";
@@ -1,5 +1,86 @@
1
- import type { CustomCommand, IFileSystem } from "just-bash";
2
- import type { SandboxSession } from "#shared/sandbox-session.js";
1
+ /**
2
+ * The filesystem a just-bash interpreter runs on. just-bash's own filesystems,
3
+ * such as `ReadWriteFs`, `OverlayFs`, and `MountableFs`, satisfy it.
4
+ */
5
+ export interface JustBashFilesystem {
6
+ readFile(path: string, options?: {
7
+ encoding?: JustBashEncoding | null;
8
+ } | JustBashEncoding): Promise<string>;
9
+ readFileBuffer(path: string): Promise<Uint8Array>;
10
+ writeFile(path: string, content: string | Uint8Array, options?: {
11
+ encoding?: JustBashEncoding;
12
+ } | JustBashEncoding): Promise<void>;
13
+ appendFile(path: string, content: string | Uint8Array, options?: {
14
+ encoding?: JustBashEncoding;
15
+ } | JustBashEncoding): Promise<void>;
16
+ exists(path: string): Promise<boolean>;
17
+ stat(path: string): Promise<JustBashFileStat>;
18
+ lstat(path: string): Promise<JustBashFileStat>;
19
+ mkdir(path: string, options?: {
20
+ recursive?: boolean;
21
+ }): Promise<void>;
22
+ readdir(path: string): Promise<string[]>;
23
+ readdirWithFileTypes?(path: string): Promise<JustBashDirectoryEntry[]>;
24
+ rm(path: string, options?: {
25
+ force?: boolean;
26
+ recursive?: boolean;
27
+ }): Promise<void>;
28
+ cp(source: string, destination: string, options?: {
29
+ recursive?: boolean;
30
+ }): Promise<void>;
31
+ mv(source: string, destination: string): Promise<void>;
32
+ resolvePath(base: string, path: string): string;
33
+ getAllPaths(): string[];
34
+ chmod(path: string, mode: number): Promise<void>;
35
+ symlink(target: string, linkPath: string): Promise<void>;
36
+ link(existingPath: string, newPath: string): Promise<void>;
37
+ readlink(path: string): Promise<string>;
38
+ realpath(path: string): Promise<string>;
39
+ utimes(path: string, accessTime: Date, modificationTime: Date): Promise<void>;
40
+ }
41
+ type JustBashEncoding = "ascii" | "base64" | "binary" | "hex" | "latin1" | "utf-8" | "utf8";
42
+ export interface JustBashFileStat {
43
+ isDirectory: boolean;
44
+ isFile: boolean;
45
+ isSymbolicLink: boolean;
46
+ mode: number;
47
+ mtime: Date;
48
+ size: number;
49
+ }
50
+ export interface JustBashDirectoryEntry {
51
+ isDirectory: boolean;
52
+ isFile: boolean;
53
+ isSymbolicLink: boolean;
54
+ name: string;
55
+ }
56
+ /**
57
+ * A command registered in each live just-bash interpreter. just-bash's
58
+ * `defineCommand()` returns one; use it when a command needs the rest of
59
+ * just-bash's command context, such as standard input or `exec`.
60
+ */
61
+ export interface JustBashCommand {
62
+ readonly name: string;
63
+ /** Runs the command with direct access to Node.js globals, as `defineCommand()` does. */
64
+ readonly trusted?: boolean;
65
+ execute(args: string[], context: JustBashCommandContext): Promise<JustBashCommandResult>;
66
+ }
67
+ /** A command that just-bash loads on its first run. */
68
+ export interface JustBashLazyCommand {
69
+ readonly name: string;
70
+ load(): Promise<JustBashCommand>;
71
+ }
72
+ export type JustBashCustomCommand = JustBashCommand | JustBashLazyCommand;
73
+ export interface JustBashCommandContext {
74
+ readonly cwd: string;
75
+ readonly env: ReadonlyMap<string, string>;
76
+ readonly fs: JustBashFilesystem;
77
+ readonly signal?: AbortSignal;
78
+ }
79
+ export interface JustBashCommandResult {
80
+ readonly exitCode: number;
81
+ readonly stderr: string;
82
+ readonly stdout: string;
83
+ }
3
84
  /**
4
85
  * Context passed to a custom just-bash filesystem factory for each live handle.
5
86
  */
@@ -9,7 +90,7 @@ export interface JustBashFilesystemContext {
9
90
  /** Stable provider-private storage directory for this sandbox. */
10
91
  readonly storagePath: string;
11
92
  /** eve's durable, session-owned filesystem, including `/workspace`. */
12
- readonly defaultFilesystem: IFileSystem;
93
+ readonly defaultFilesystem: JustBashFilesystem;
13
94
  /** The just-bash engine resolved by eve after its optional installation check. */
14
95
  readonly justBash: typeof import("just-bash");
15
96
  }
@@ -39,7 +120,7 @@ export interface JustBashSandboxCreateOptions {
39
120
  * are responsible for validating their own inputs and cleaning up host
40
121
  * resources.
41
122
  */
42
- readonly customCommands?: ReadonlyArray<CustomCommand>;
123
+ readonly customCommands?: ReadonlyArray<JustBashCustomCommand>;
43
124
  /**
44
125
  * Composes the filesystem used by each live sandbox handle. The factory is
45
126
  * called when a handle opens with eve's durable default filesystem; return a
@@ -50,7 +131,6 @@ export interface JustBashSandboxCreateOptions {
50
131
  * a compatible `just-bash` version. It is not invoked during template
51
132
  * preparation.
52
133
  */
53
- readonly filesystem?: (context: JustBashFilesystemContext) => IFileSystem | Promise<IFileSystem>;
54
- /** Idempotent setup captured in the prepared virtual filesystem. */
55
- readonly prepare?: (sandbox: SandboxSession) => Promise<void> | void;
134
+ readonly filesystem?: (context: JustBashFilesystemContext) => JustBashFilesystem | Promise<JustBashFilesystem>;
56
135
  }
136
+ export {};
@@ -1,2 +1,2 @@
1
1
  export { JustBashSandbox, type JustBashEnvironmentOptions } from "#sandbox/providers/just-bash.js";
2
- export type { JustBashFilesystemContext } from "#public/sandbox/just-bash-sandbox.js";
2
+ export type { JustBashCommand, JustBashCommandContext, JustBashCommandResult, JustBashCustomCommand, JustBashDirectoryEntry, JustBashFileStat, JustBashFilesystem, JustBashFilesystemContext, JustBashLazyCommand, } from "#public/sandbox/just-bash-sandbox.js";
@@ -1 +1,5 @@
1
- export { defineSandboxProvider, type SandboxDeleteOptions, type SandboxPreparedArtifact, type SandboxProvider, type SandboxProviderDefinition, type SandboxProviderFiles, type SandboxProviderHandle, type SandboxProviderImplementation, type SandboxProviderPrepareContext, type SandboxProviderResourceFile, type SandboxProviderResources, type SandboxProviderResourceSource, type SandboxProviderResourceTree, type SandboxProviderSessionContext, type SandboxProviderTargetFile, } from "#shared/sandbox-provider.js";
1
+ export { defineSandboxProvider, type SandboxConnection, type SandboxIdentity, type SandboxJson, type SandboxPrepareContext, type SandboxPrepareOption, type SandboxProvider, type SandboxProviderDefinition, type SandboxProviderImplementation, type SandboxSessionContext, type SandboxSessionEndOptions, type WithPrepareOption, } from "#sandbox/provider.js";
2
+ export type { SandboxDeleteOptions, SandboxProviderFiles } from "#shared/sandbox-provider.js";
3
+ export { SANDBOX_AGENT_ENV } from "#execution/sandbox/session.js";
4
+ export { SandboxSessionGoneError } from "#shared/sandbox-session-gone-error.js";
5
+ export { SandboxTemplateNotProvisionedError } from "#shared/sandbox-template-error.js";
@@ -1 +1 @@
1
- import{defineSandboxProvider}from"#shared/sandbox-provider.js";export{defineSandboxProvider};
1
+ import{SANDBOX_AGENT_ENV}from"#execution/sandbox/session.js";import{SandboxSessionGoneError}from"#shared/sandbox-session-gone-error.js";import{SandboxTemplateNotProvisionedError}from"#shared/sandbox-template-error.js";import{defineSandboxProvider}from"#sandbox/provider.js";export{SANDBOX_AGENT_ENV,SandboxSessionGoneError,SandboxTemplateNotProvisionedError,defineSandboxProvider};
@@ -42,15 +42,22 @@ type VercelSandboxAuthorCreateOptions<T> = T extends unknown ? Omit<T, "mounts"
42
42
  */
43
43
  export type VercelSandboxCreateOptions = VercelSandboxAuthorCreateOptions<VercelCreateOptions>;
44
44
  /** Access mode for a Drive mounted into a Vercel Sandbox. */
45
- export type VercelSandboxMountMode = Vercel.SandboxMountMode;
46
- /** A Drive mounted at one absolute path in a Vercel Sandbox. */
47
- export type VercelSandboxMount = Vercel.SandboxMounts[string];
45
+ export type VercelSandboxMountMode = "read-write" | "snapshot";
46
+ /**
47
+ * A Drive mounted at one absolute path in a Vercel Sandbox: a `Drive` from
48
+ * `@vercel/sandbox`, mounted read-write, or a `{ drive, mode }` reference to
49
+ * a Drive by name, such as the one `drive.snapshot()` returns.
50
+ */
51
+ export type VercelSandboxMount = {
52
+ readonly name: string;
53
+ } | {
54
+ readonly drive: string;
55
+ readonly mode: VercelSandboxMountMode;
56
+ };
48
57
  /** Drive mounts keyed by absolute sandbox path. */
49
- export type VercelSandboxMounts = Vercel.SandboxMounts;
50
- /** Options resolved when eve creates a fresh live session sandbox. */
51
- export interface VercelSandboxMountOptions {
52
- readonly mounts?: VercelSandboxMounts;
53
- }
58
+ export type VercelSandboxMounts = Readonly<Record<string, VercelSandboxMount>>;
54
59
  /** Options accepted when creating one live Vercel sandbox from an environment. */
55
- export type VercelSandboxRuntimeOptions = Omit<VercelSandboxCreateOptions, "fetch" | "image" | "projectId" | "source" | "tags" | "teamId" | "token"> & SandboxNetworkOptions & VercelSandboxMountOptions;
60
+ export type VercelSandboxRuntimeOptions = Omit<VercelSandboxCreateOptions, "fetch" | "image" | "projectId" | "source" | "tags" | "teamId" | "token"> & SandboxNetworkOptions & {
61
+ readonly mounts?: VercelSandboxMounts;
62
+ };
56
63
  export {};
@@ -8,5 +8,4 @@ export interface VercelSandboxSession extends SandboxSession {
8
8
  setNetworkPolicy(policy: SandboxNetworkPolicy): Promise<void>;
9
9
  }
10
10
  export { VercelSandbox, type VercelSandboxEnvironmentOptions, type VercelSandboxRuntimeOptions, } from "#sandbox/providers/vercel.js";
11
- export { Drive } from "#compiled/@vercel/sandbox/index.js";
12
11
  export type { VercelSandboxMount, VercelSandboxMountMode, VercelSandboxMounts, } from "#public/sandbox/vercel-sandbox.js";
@@ -1 +1 @@
1
- import{VercelSandbox}from"#sandbox/providers/vercel.js";import{Drive}from"#compiled/@vercel/sandbox/index.js";export{Drive,VercelSandbox};
1
+ import{VercelSandbox}from"#sandbox/providers/vercel.js";export{VercelSandbox};
@@ -1 +1,8 @@
1
- export { agent, agent as default } from "#tools/framework/agent.js";
1
+ import { type AgentWithModelToolInput } from "#runtime/subagents/workflow.js";
2
+ import { agent } from "#tools/framework/agent.js";
3
+ import { type WorkflowServeToolDefinition } from "#tools/workflow-definition.js";
4
+ export { agent, agent as default };
5
+ export type { AgentWithModelToolInput };
6
+ export type AgentWithModelTool = WorkflowServeToolDefinition<AgentWithModelToolInput, unknown>;
7
+ /** Root-copy agent tool whose model-facing input selects the model for each new task. */
8
+ export declare const agentWithModel: AgentWithModelTool;
@@ -1 +1 @@
1
- import{agent,agent as agent_default}from"#tools/framework/agent.js";export{agent,agent_default as default};
1
+ import{defineJsonSchema}from"#tools/schema.js";import{frameworkTool}from"#tools/provided/framework-tool.js";import{defineWorkflowTool}from"#tools/workflow-definition.js";import{agentWithModelServeWorkflow}from"#runtime/subagents/workflow.js";import{agent}from"#tools/framework/agent.js";const inputSchema=defineJsonSchema({type:`object`,properties:{message:{type:`string`,description:`The message to send to the agent, with everything it needs to do the work.`},model:{type:`string`,minLength:1,description:`AI Gateway model id for a new child session. When continuing a task, use its original model.`}},required:[`message`,`model`],additionalProperties:!1}),agentWithModel=frameworkTool(defineWorkflowTool({availableInSubagents:!1,description:[`Delegate a focused subtask to a copy of yourself using the selected AI Gateway model.`,`Each call starts a task, so start independent tasks before waiting for them.`,`A continuation keeps its task's original model.`,`In message, state the goal, what to return, and whether it may change files.`].join(` `),inputSchema,serve:agentWithModelServeWorkflow}));export{agent,agent as default,agentWithModel};
@@ -11,5 +11,5 @@ export type { DynamicEvents, DynamicResolveContext, DynamicSentinel } from "#dyn
11
11
  export type { DynamicToolEntry, DynamicToolEvents, DynamicToolSet, DynamicToolResult, } from "#tools/dynamic.js";
12
12
  export { type SessionContext } from "#public/definitions/callback-context.js";
13
13
  export { toolResultFrom, type MatchedConnectionResult, type MatchedToolResult, type ToolResultFromFn, } from "#public/tools/result.js";
14
- export { defineWorkflowTool, type WorkflowExecuteToolDefinition, type WorkflowServeCall, type WorkflowServeContext, type WorkflowServeReceive, type WorkflowServeToolDefinition, type WorkflowStepToolContext, type WorkflowTaskToolDefinition, type WorkflowToolContext, type WorkflowToolDefinition, type AgentMessageResult, type AgentResponse, type AgentSendOptions, type AgentSession, type WorkflowAgentMetadata, } from "#tools/workflow-definition.js";
14
+ export { defineWorkflowTool, type WorkflowExecuteToolDefinition, type WorkflowServeCall, type WorkflowServeContext, type WorkflowServeReceive, type WorkflowServeToolDefinition, type WorkflowStepToolContext, type WorkflowTaskToolDefinition, type WorkflowToolContext, type WorkflowToolDefinition, type AgentMessageResult, type AgentResponse, type AgentSendOptions, type AgentSession, type AgentSessionModelSelection, type AgentSessionOptions, type WorkflowAgentMetadata, } from "#tools/workflow-definition.js";
15
15
  export type { ToolInputRequest, ToolInputRequestOptions, ToolInputResponse, } from "#tools/definition.js";
@@ -91,7 +91,7 @@ export interface UseEveAgentOptions<TData> extends EveAgentStoreCallbacks<TData>
91
91
  */
92
92
  readonly followIdle?: boolean;
93
93
  /**
94
- * Prewarm an owned session when true. React observes this value across renders;
94
+ * Create a session or prepare its existing idle owner when true. React observes this value across renders;
95
95
  * changing it from false to true prepares the current session, and reset checks
96
96
  * the latest rendered value before preparing the next session.
97
97
  *
@@ -6,6 +6,10 @@ import { shouldMockAuthoredRuntimeModels } from "#runtime/agent/mock-model-adapt
6
6
  import { type PublicAgentDynamicModelDefinition, type PublicAgentDynamicModelResult } from "#shared/agent-definition.js";
7
7
  import { type RuntimeModelCatalog } from "#runtime/agent/model-catalog.js";
8
8
  export { shouldMockAuthoredRuntimeModels };
9
+ /** A deterministic authoring or selection error that retrying cannot repair. */
10
+ export declare class InvalidRuntimeModelSelectionError extends Error {
11
+ constructor(message: string, options?: ErrorOptions);
12
+ }
9
13
  /** Loaded compiled-module scope used to resolve source-backed runtime models. */
10
14
  export interface RuntimeModelResolutionScope {
11
15
  readonly moduleMap: CompiledModuleMap;
@@ -1 +1 @@
1
- import{localGatewayModel}from"#internal/model-auth/transport.js";import{RuntimeModelMetadataCacheKey}from"#context/keys.js";import{parseJsonObject}from"#shared/json.js";import{isDynamicModelDefinition}from"#shared/agent-definition.js";import{normalizeAgentDefinition,normalizeAgentPromptCache}from"#internal/authored-definition/core.js";import{formatLanguageModelGatewayId,isAgentReasoningDefinition,isRuntimeLanguageModel}from"#internal/runtime-model.js";import{loadResolvedModuleExport}from"#runtime/resolve-helpers.js";import{resolveBootstrapRuntimeModel}from"#runtime/agent/bootstrap-model.js";import{resolveMockAuthoredRuntimeModel,shouldMockAuthoredRuntimeModels}from"#runtime/agent/mock-model-adapter.js";import{createRuntimeModelCatalog}from"#runtime/agent/model-catalog.js";async function resolveRuntimeModelReference(e,t){let n=resolveBootstrapRuntimeModel(e);if(n!==null)return n;let r=resolveMockAuthoredRuntimeModel(e);return r===null?isSourceBackedRuntimeModelReference(e)?await loadSourceBackedRuntimeModelReference(e,t):localGatewayModel(e.id)??e.id:r}async function loadSourceBackedRuntimeModelReference(e,t){if(t===void 0)throw Error(`Expected a compiled module-map scope to resolve the authored runtime model "${e.id}".`);let n=await loadResolvedModuleExport({definition:e.source,kindLabel:`runtime model "${e.id}"`,moduleMap:t.moduleMap,nodeId:t.nodeId}),r=normalizeAgentDefinition(n,`Expected the authored agent config export "${e.source.exportName??`default`}" from "${e.source.logicalPath}" to match the public eve shape.`).model;if(r===void 0)throw Error(`Expected the authored agent config export "${e.source.exportName??`default`}" from "${e.source.logicalPath}" to provide a runtime model.`);if(isDynamicModelDefinition(r))throw Error(`Expected the authored agent config export "${e.source.exportName??`default`}" from "${e.source.logicalPath}" to provide a static runtime model.`);return r}function isSourceBackedRuntimeModelReference(e){return e.source!==void 0}async function loadDynamicRuntimeModelDefinition(e){let t=await loadResolvedModuleExport({definition:e.dynamicModel,kindLabel:`dynamic runtime model`,moduleMap:e.scope.moduleMap,nodeId:e.scope.nodeId}),n=normalizeAgentDefinition(t,`Expected the authored agent config export "${e.dynamicModel.exportName??`default`}" from "${e.dynamicModel.logicalPath}" to match the public eve shape.`).model;if(!isDynamicModelDefinition(n))throw Error(`Expected the authored agent config export "${e.dynamicModel.exportName??`default`}" from "${e.dynamicModel.logicalPath}" to provide a dynamic model definition.`);return n}async function resolveRuntimeModelSelection(e){if(e.selection===null||e.selection===void 0)throw Error(`Dynamic model resolver returned no model. Every matching dynamic model handler must return a concrete model selection.`);let t=normalizeDynamicModelSelection(e.selection);validateDynamicModelSelection(t);let n=t.modelOptions?.providerOptions===void 0?void 0:parseProviderOptionsRecord(t.modelOptions.providerOptions),r=t.modelOptions?.promptCache===void 0?void 0:normalizeAgentPromptCache(t.modelOptions.promptCache,`Dynamic model resolver returned an invalid selection.`),i=t.model,a=e.catalog??runtimeModelCatalogForState(e.state);if(typeof i==`string`){let o=formatLanguageModelGatewayId(i);if(r!==void 0)throw gatewayPromptCacheError(o);let s=await resolveSelectionMetadata({cacheKey:`gateway:${o}`,catalog:a,contextWindowTokens:t.modelContextWindowTokens,load:e=>e.getByGatewayId(o),modelLabel:o,state:e.state});return{reference:{id:s.resolvedModelId,contextWindowTokens:s.contextWindowTokens,maxOutputTokens:s.maxOutputTokens,providerOptions:n,reasoning:t.reasoning}}}if(validateRuntimeLanguageModel(i),e.durability===`durable`)throw Error(`Dynamic model selection returned a provider object, but durable model selections must be serializable. Return a model id string, or use a "step.started" model resolver.`);let o=formatLanguageModelGatewayId(i),s=i.provider.split(`.`)[0];if(r!==void 0&&s===`gateway`)throw gatewayPromptCacheError(o);let c=await resolveSelectionMetadata({cacheKey:s===`gateway`?`gateway:${i.modelId}`:`provider:${i.provider}:${i.modelId}`,catalog:a,contextWindowTokens:t.modelContextWindowTokens,load:e=>s===`gateway`?e.getByGatewayId(i.modelId):e.getByProviderModelId(i.provider,i.modelId),modelLabel:o,state:e.state});return{model:i,reference:{id:c.resolvedModelId,contextWindowTokens:c.contextWindowTokens,maxOutputTokens:c.maxOutputTokens,promptCache:r,providerOptions:n,reasoning:t.reasoning}}}function gatewayPromptCacheError(e){return Error(`Dynamic model resolver returned modelOptions.promptCache for "${e}", which routes through AI Gateway. promptCache applies only to models eve calls directly; Gateway manages its own prompt caching through providerOptions.gateway.caching.`)}const runtimeModelCatalogsByState=new WeakMap;function runtimeModelCatalogForState(e){let t=runtimeModelCatalogsByState.get(e);if(t!==void 0)return t;let n=createRuntimeModelCatalog();return runtimeModelCatalogsByState.set(e,n),n}async function resolveSelectionMetadata(e){if(e.contextWindowTokens!==void 0)return{contextWindowTokens:e.contextWindowTokens,resolvedModelId:e.modelLabel};let t=Date.now(),n=e.state.get(RuntimeModelMetadataCacheKey)?.[e.cacheKey];if(n!==void 0&&n.expiresAt>t)return n;let r=await e.load(e.catalog);if(r===null)throw Error(`Cannot select model "${e.modelLabel}" because AI Gateway did not provide context window metadata. Return modelContextWindowTokens with this selection for an unlisted or custom model.`);let i={...r,expiresAt:t+864e5};return e.state.set(RuntimeModelMetadataCacheKey,n=>({...Object.fromEntries(Object.entries(n??{}).filter(([,e])=>e.expiresAt>t)),[e.cacheKey]:i})),i}const DYNAMIC_MODEL_SELECTION_KEYS=new Set([`model`,`modelContextWindowTokens`,`modelOptions`,`reasoning`]);function validateDynamicModelSelection(e){let t=Object.keys(e).filter(e=>!DYNAMIC_MODEL_SELECTION_KEYS.has(e));if(t.length>0)throw Error(`Dynamic model resolver returned a selection with unknown key(s): ${t.join(`, `)}. Expected { model, reasoning?, modelContextWindowTokens?, modelOptions? }.`);if(e.reasoning!==void 0&&!isAgentReasoningDefinition(e.reasoning))throw Error(`Dynamic model resolver returned an invalid reasoning effort. Expected provider-default, none, minimal, low, medium, high, or xhigh.`);let n=e.modelContextWindowTokens;if(n!==void 0&&(!Number.isInteger(n)||n<=0))throw Error(`Dynamic model resolver returned an invalid modelContextWindowTokens value. Expected a positive integer.`);if(typeof e.model==`string`&&e.model.trim()===``)throw Error(`Dynamic model resolver returned an empty model id.`)}function normalizeDynamicModelSelection(e){return isModelSelectionDefinition(e)?e:{model:e}}function isModelSelectionDefinition(e){return typeof e==`object`&&!!e&&`model`in e&&!isRuntimeLanguageModel(e)}function validateRuntimeLanguageModel(e){if(!isRuntimeLanguageModel(e))throw Error(`Dynamic model resolver returned an invalid model. Return an AI Gateway model id string, an AI SDK language model, or { model, modelContextWindowTokens?, modelOptions? }.`)}function parseProviderOptionsRecord(e){if(e===void 0)return;let t={};for(let[n,r]of Object.entries(e))t[n]=parseJsonObject(r);return t}export{loadDynamicRuntimeModelDefinition,resolveRuntimeModelReference,resolveRuntimeModelSelection,shouldMockAuthoredRuntimeModels};
1
+ import{localGatewayModel}from"#internal/model-auth/transport.js";import{RuntimeModelMetadataCacheKey}from"#context/keys.js";import{parseJsonObject}from"#shared/json.js";import{isDynamicModelDefinition}from"#shared/agent-definition.js";import{normalizeAgentDefinition,normalizeAgentPromptCache}from"#internal/authored-definition/core.js";import{formatLanguageModelGatewayId,isAgentReasoningDefinition,isRuntimeLanguageModel}from"#internal/runtime-model.js";import{loadResolvedModuleExport}from"#runtime/resolve-helpers.js";import{resolveBootstrapRuntimeModel}from"#runtime/agent/bootstrap-model.js";import{resolveMockAuthoredRuntimeModel,shouldMockAuthoredRuntimeModels}from"#runtime/agent/mock-model-adapter.js";import{createRuntimeModelCatalog}from"#runtime/agent/model-catalog.js";var InvalidRuntimeModelSelectionError=class extends Error{constructor(e,t){super(e,t),this.name=`InvalidRuntimeModelSelectionError`}};async function resolveRuntimeModelReference(e,t){let n=resolveBootstrapRuntimeModel(e);if(n!==null)return n;let r=resolveMockAuthoredRuntimeModel(e);return r===null?isSourceBackedRuntimeModelReference(e)?await loadSourceBackedRuntimeModelReference(e,t):localGatewayModel(e.id)??e.id:r}async function loadSourceBackedRuntimeModelReference(e,t){if(t===void 0)throw Error(`Expected a compiled module-map scope to resolve the authored runtime model "${e.id}".`);let n=await loadResolvedModuleExport({definition:e.source,kindLabel:`runtime model "${e.id}"`,moduleMap:t.moduleMap,nodeId:t.nodeId}),r=normalizeAgentDefinition(n,`Expected the authored agent config export "${e.source.exportName??`default`}" from "${e.source.logicalPath}" to match the public eve shape.`),i=e.sourceField===`compaction.model`?r.compaction?.model:r.model;if(i===void 0)throw Error(`Expected the authored agent config export "${e.source.exportName??`default`}" from "${e.source.logicalPath}" to provide a runtime model at "${e.sourceField??`model`}".`);if(isDynamicModelDefinition(i))throw Error(`Expected the authored agent config export "${e.source.exportName??`default`}" from "${e.source.logicalPath}" to provide a static runtime model.`);return i}function isSourceBackedRuntimeModelReference(e){return e.source!==void 0}async function loadDynamicRuntimeModelDefinition(e){let t=await loadResolvedModuleExport({definition:e.dynamicModel,kindLabel:`dynamic runtime model`,moduleMap:e.scope.moduleMap,nodeId:e.scope.nodeId}),n=normalizeAgentDefinition(t,`Expected the authored agent config export "${e.dynamicModel.exportName??`default`}" from "${e.dynamicModel.logicalPath}" to match the public eve shape.`).model;if(!isDynamicModelDefinition(n))throw Error(`Expected the authored agent config export "${e.dynamicModel.exportName??`default`}" from "${e.dynamicModel.logicalPath}" to provide a dynamic model definition.`);return n}async function resolveRuntimeModelSelection(e){if(e.selection===null||e.selection===void 0)throw new InvalidRuntimeModelSelectionError(`Dynamic model resolver returned no model. Every matching dynamic model handler must return a concrete model selection.`);let t,n,r;try{t=normalizeDynamicModelSelection(e.selection),validateDynamicModelSelection(t),n=t.modelOptions?.providerOptions===void 0?void 0:parseProviderOptionsRecord(t.modelOptions.providerOptions),r=t.modelOptions?.promptCache===void 0?void 0:normalizeAgentPromptCache(t.modelOptions.promptCache,`Dynamic model resolver returned an invalid selection.`)}catch(e){throw invalidSelectionError(e)}let i=t.model,a=e.catalog??runtimeModelCatalogForState(e.state);if(typeof i==`string`){let o=formatLanguageModelGatewayId(i);if(r!==void 0)throw gatewayPromptCacheError(o);let s=await resolveSelectionMetadata({cacheKey:`gateway:${o}`,catalog:a,contextWindowTokens:t.modelContextWindowTokens,load:e=>e.getByGatewayId(o),modelLabel:o,state:e.state});return{reference:{id:s.resolvedModelId,contextWindowTokens:s.contextWindowTokens,maxOutputTokens:s.maxOutputTokens,providerOptions:n,reasoning:t.reasoning}}}if(validateRuntimeLanguageModel(i),e.durability===`durable`)throw new InvalidRuntimeModelSelectionError(`Dynamic model selection returned a provider object, but durable model selections must be serializable. Return a model id string, or use a "step.started" model resolver.`);let o=formatLanguageModelGatewayId(i),s=i.provider.split(`.`)[0];if(r!==void 0&&s===`gateway`)throw gatewayPromptCacheError(o);let c=await resolveSelectionMetadata({cacheKey:s===`gateway`?`gateway:${i.modelId}`:`provider:${i.provider}:${i.modelId}`,catalog:a,contextWindowTokens:t.modelContextWindowTokens,load:e=>s===`gateway`?e.getByGatewayId(i.modelId):e.getByProviderModelId(i.provider,i.modelId),modelLabel:o,state:e.state});return{model:i,reference:{id:c.resolvedModelId,contextWindowTokens:c.contextWindowTokens,maxOutputTokens:c.maxOutputTokens,promptCache:r,providerOptions:n,reasoning:t.reasoning}}}function invalidSelectionError(e){return e instanceof InvalidRuntimeModelSelectionError?e:new InvalidRuntimeModelSelectionError(e instanceof Error?e.message:String(e),{cause:e})}function gatewayPromptCacheError(e){return new InvalidRuntimeModelSelectionError(`Dynamic model resolver returned modelOptions.promptCache for "${e}", which routes through AI Gateway. promptCache applies only to models eve calls directly; Gateway manages its own prompt caching through providerOptions.gateway.caching.`)}const runtimeModelCatalogsByState=new WeakMap;function runtimeModelCatalogForState(e){let t=runtimeModelCatalogsByState.get(e);if(t!==void 0)return t;let n=createRuntimeModelCatalog();return runtimeModelCatalogsByState.set(e,n),n}async function resolveSelectionMetadata(e){if(e.contextWindowTokens!==void 0)return{contextWindowTokens:e.contextWindowTokens,resolvedModelId:e.modelLabel};let t=Date.now(),n=e.state.get(RuntimeModelMetadataCacheKey)?.[e.cacheKey];if(n!==void 0&&n.expiresAt>t)return n;let r=await e.load(e.catalog);if(r===null)throw new InvalidRuntimeModelSelectionError(`Cannot select model "${e.modelLabel}" because AI Gateway did not provide context window metadata. Return modelContextWindowTokens with this selection for an unlisted or custom model.`);let i={...r,expiresAt:t+864e5};return e.state.set(RuntimeModelMetadataCacheKey,n=>({...Object.fromEntries(Object.entries(n??{}).filter(([,e])=>e.expiresAt>t)),[e.cacheKey]:i})),i}const DYNAMIC_MODEL_SELECTION_KEYS=new Set([`model`,`modelContextWindowTokens`,`modelOptions`,`reasoning`]);function validateDynamicModelSelection(e){let t=Object.keys(e).filter(e=>!DYNAMIC_MODEL_SELECTION_KEYS.has(e));if(t.length>0)throw Error(`Dynamic model resolver returned a selection with unknown key(s): ${t.join(`, `)}. Expected { model, reasoning?, modelContextWindowTokens?, modelOptions? }.`);if(e.reasoning!==void 0&&!isAgentReasoningDefinition(e.reasoning))throw Error(`Dynamic model resolver returned an invalid reasoning effort. Expected provider-default, none, minimal, low, medium, high, or xhigh.`);let n=e.modelContextWindowTokens;if(n!==void 0&&(!Number.isInteger(n)||n<=0))throw Error(`Dynamic model resolver returned an invalid modelContextWindowTokens value. Expected a positive integer.`);if(typeof e.model==`string`&&e.model.trim()===``)throw Error(`Dynamic model resolver returned an empty model id.`)}function normalizeDynamicModelSelection(e){return isModelSelectionDefinition(e)?e:{model:e}}function isModelSelectionDefinition(e){return typeof e==`object`&&!!e&&`model`in e&&!isRuntimeLanguageModel(e)}function validateRuntimeLanguageModel(e){if(!isRuntimeLanguageModel(e))throw new InvalidRuntimeModelSelectionError(`Dynamic model resolver returned an invalid model. Return an AI Gateway model id string, an AI SDK language model, or { model, modelContextWindowTokens?, modelOptions? }.`)}function parseProviderOptionsRecord(e){if(e===void 0)return;let t={};for(let[n,r]of Object.entries(e))t[n]=parseJsonObject(r);return t}export{InvalidRuntimeModelSelectionError,loadDynamicRuntimeModelDefinition,resolveRuntimeModelReference,resolveRuntimeModelSelection,shouldMockAuthoredRuntimeModels};
@@ -15,6 +15,8 @@ interface OpenApiToolResult {
15
15
  readonly status: number;
16
16
  readonly statusText: string;
17
17
  readonly body: unknown;
18
+ /** Target of a redirect to another origin, which eve returns instead of following. */
19
+ location?: string;
18
20
  }
19
21
  /**
20
22
  * A {@link ConnectionClient} that turns an OpenAPI 3.x or Swagger 2.0
@@ -1 +1 @@
1
- import{createLogger}from"#internal/logging.js";import{isObject}from"#shared/guards.js";import{isLoopbackHostname}from"#shared/network-address.js";import{parseJsonObject}from"#shared/json.js";import{resolveHeaders}from"#runtime/connections/mcp-client.js";import{omitProvidedArgumentsFromSchema,resolveProvidedArguments}from"#runtime/connections/provided-arguments.js";import{HTTP_METHODS,operationDescription,operationName,uniqueName}from"#runtime/connections/openapi-operations.js";import{buildInputSchema,deref,derefSchema,isArray}from"#runtime/connections/openapi-schema.js";import{applySecurity,resolveSecurity}from"#runtime/connections/openapi-security.js";import{extractServerUrl,parseSpecDocument}from"#runtime/connections/openapi-spec.js";const log=createLogger(`runtime.connections.openapi-client`),SWAGGER_PARAMETER_SCHEMA_KEYS=[`default`,`enum`,`exclusiveMaximum`,`exclusiveMinimum`,`format`,`items`,`maximum`,`maxItems`,`maxLength`,`minimum`,`minItems`,`minLength`,`multipleOf`,`pattern`,`type`,`uniqueItems`];var OpenApiConnectionClient=class{#e;#t;#n;constructor(e){this.#n=e}async connect(){return this.#r()}async getToolMetadata(){return(await this.#r()).metadata}async executeTool(e,t,n){let r=await this.#r(),i=r.operations.get(e);if(i===void 0)throw Error(`Tool "${e}" not found in connection "${this.#n.connectionName}".`);return this.#f(i,r.baseUrl,isObject(t)?t:{},{abortSignal:n.abortSignal,callId:n.callId})}async close(){this.#e=void 0,this.#t=void 0}async#r(){if(this.#t!==void 0)return this.#t;if(this.#e!==void 0)return this.#e;this.#e=this.#i();try{return this.#t=await this.#e,this.#t}catch(e){throw this.#e=void 0,e}}async#i(){let e=await this.#o(),t=this.#a(e),n=this.#s(e),r=[],i=new Map,a=Object.keys(this.#n.toolCall?.providedArguments??{});for(let e of n){let t;try{t=parseJsonObject(omitProvidedArgumentsFromSchema(e.inputSchema,a))}catch(t){log.warn(`omitting OpenAPI operation with an invalid input schema`,{connectionName:this.#n.connectionName,error:t,toolName:e.toolName});continue}i.set(e.toolName,e),r.push({description:e.description,inputSchema:t,name:e.toolName})}return{metadata:r,operations:i,baseUrl:t}}#a(e){let t=this.#n.url,n=typeof t==`string`&&t.trim().length>0?t:extractServerUrl(e,this.#n.spec);if(n===void 0)throw Error(`OpenAPI connection "${this.#n.connectionName}" has no base URL: set "baseUrl" or ensure the document declares an absolute "servers" entry or Swagger "host".`);return assertSecureUrl(n,this.#n.connectionName,`base`),n}async#o(){let e=this.#n.spec;if(e===void 0)throw Error(`OpenAPI connection "${this.#n.connectionName}" is missing its "spec" source.`);if(typeof e!=`string`)return e;assertSecureUrl(e,this.#n.connectionName,`spec`);let t;try{t=await fetch(e,{headers:{accept:`application/json, application/yaml, text/yaml, */*`}})}catch(t){throw Error(`OpenAPI connection "${this.#n.connectionName}" failed to fetch its spec from "${e}": ${String(t)}`)}if(t.redirected&&assertSecureUrl(t.url,this.#n.connectionName,`spec`),!t.ok)throw Error(`OpenAPI connection "${this.#n.connectionName}" failed to fetch its spec from "${e}": HTTP ${t.status}.`);let n=await t.text(),r;try{r=parseSpecDocument(n)}catch(t){throw Error(`OpenAPI connection "${this.#n.connectionName}" spec at "${e}" could not be parsed as JSON or YAML: ${String(t)}`)}if(!isObject(r))throw Error(`OpenAPI connection "${this.#n.connectionName}" spec at "${e}" is not an OpenAPI document object.`);return r}#s(e){let t=e.paths;if(!isObject(t))return[];let n=[],r=new Set;for(let[i,a]of Object.entries(t)){if(!isObject(a))continue;let t=isArray(a.parameters)?a.parameters:[];for(let o of HTTP_METHODS){let s=a[o];if(!isObject(s))continue;let c=uniqueName(operationName(s,o,i),r),l=isArray(s.parameters)?s.parameters:[],u=[...t,...l],d=this.#c(e,u),f=this.#l(e,s.requestBody,u);n.push({toolName:c,method:o,pathTemplate:i,description:operationDescription(s),parameters:d,requestBody:f,inputSchema:buildInputSchema(d,f),security:resolveSecurity(e,s)})}}return n}#c(e,t){let n=[];for(let r of t){let t=isObject(r)?deref(e,r):r;if(!isObject(t))continue;let i=t.in;if(i!==`path`&&i!==`query`&&i!==`header`&&i!==`cookie`||typeof t.name!=`string`)continue;let a=this.#u(e,t);n.push({name:t.name,location:i,required:t.required===!0||i===`path`,schema:a,description:typeof t.description==`string`?t.description:void 0})}return n}#l(e,t,n=[]){if(isObject(t)){let n=deref(e,t);if(isObject(n)&&isObject(n.content)){let t=n.content,r=`application/json`in t?`application/json`:Object.keys(t)[0];if(r!==void 0){let i=t[r],a=isObject(i)&&isObject(i.schema)?derefSchema(e,i.schema):{};return{required:n.required===!0,contentType:r,schema:a}}}}return this.#d(e,n)}#u(e,t){if(isObject(t.schema))return derefSchema(e,t.schema);let n={};for(let e of SWAGGER_PARAMETER_SCHEMA_KEYS)t[e]!==void 0&&(n[e]=t[e]);return derefSchema(e,n)}#d(e,t){for(let n of t){let t=isObject(n)?deref(e,n):n;if(!isObject(t)||t.in!==`body`)continue;let r=isObject(t.schema)?derefSchema(e,t.schema):{};return{required:t.required===!0,contentType:`application/json`,schema:r}}}async#f(e,t,n,r){let i=await resolveProvidedArguments({args:n,callId:r.callId,connection:this.#n,toolName:e.toolName}),a=await resolveHeaders(this.#n),o=e.pathTemplate,s=new URLSearchParams,c=[];for(let t of e.parameters){let n=i[t.name];if(n!=null){if(t.location===`path`){let r=String(n);if(r===`.`||r===`..`)throw Error(`Path parameter "${t.name}" for tool "${e.toolName}" in connection "${this.#n.connectionName}" must not be "." or "..".`);o=o.replace(`{${t.name}}`,encodeURIComponent(r))}else t.location===`query`?appendQuery(s,t.name,n):t.location===`cookie`?c.push(`${t.name}=${encodeURIComponent(String(n))}`):a[t.name]=String(n)}}if(applySecurity(e.security,this.#n,a,s,c),c.length>0){let e=a.cookie??a.Cookie;delete a.Cookie,a.cookie=[e,...c].filter(e=>!!e).join(`; `)}let l=new URL(joinPath(t,o));l.search=s.toString();let u;e.requestBody!==void 0&&i.body!==void 0&&(u=JSON.stringify(i.body),a[`content-type`]=e.requestBody.contentType);let d=await fetch(l,{method:e.method.toUpperCase(),headers:a,body:u,signal:r?.abortSignal});return{status:d.status,statusText:d.statusText,body:await readResponseBody(d)}}};function appendQuery(e,t,n){if(isArray(n)){for(let r of n)e.append(t,String(r));return}e.append(t,String(n))}function joinPath(e,t){return`${e.endsWith(`/`)?e.slice(0,-1):e}${t.startsWith(`/`)?t:`/${t}`}`}function assertSecureUrl(e,t,n){let r;try{r=new URL(e)}catch{throw Error(`OpenAPI connection "${t}" has an invalid ${n} URL "${e}".`)}if(r.protocol!==`https:`&&!(r.protocol===`http:`&&isLoopbackHostname(r.hostname)))throw Error(`OpenAPI connection "${t}" must use https for its ${n} (got "${r.protocol}//${r.host}").`)}async function readResponseBody(e){let t=await e.text();if(t.length===0)return null;if((e.headers.get(`content-type`)??``).includes(`application/json`))try{return JSON.parse(t)}catch{return t}return t}export{OpenApiConnectionClient};
1
+ import{createLogger}from"#internal/logging.js";import{isObject}from"#shared/guards.js";import{isLoopbackHostname}from"#shared/network-address.js";import{parseJsonObject}from"#shared/json.js";import{resolveHeaders}from"#runtime/connections/mcp-client.js";import{omitProvidedArgumentsFromSchema,resolveProvidedArguments}from"#runtime/connections/provided-arguments.js";import{HTTP_METHODS,operationDescription,operationName,uniqueName}from"#runtime/connections/openapi-operations.js";import{buildInputSchema,deref,derefSchema,isArray}from"#runtime/connections/openapi-schema.js";import{applySecurity,resolveSecurity}from"#runtime/connections/openapi-security.js";import{extractServerUrl,parseSpecDocument}from"#runtime/connections/openapi-spec.js";const log=createLogger(`runtime.connections.openapi-client`),SWAGGER_PARAMETER_SCHEMA_KEYS=[`default`,`enum`,`exclusiveMaximum`,`exclusiveMinimum`,`format`,`items`,`maximum`,`maxItems`,`maxLength`,`minimum`,`minItems`,`minLength`,`multipleOf`,`pattern`,`type`,`uniqueItems`];var OpenApiConnectionClient=class{#e;#t;#n;constructor(e){this.#n=e}async connect(){return this.#r()}async getToolMetadata(){return(await this.#r()).metadata}async executeTool(e,t,n){let r=await this.#r(),i=r.operations.get(e);if(i===void 0)throw Error(`Tool "${e}" not found in connection "${this.#n.connectionName}".`);return this.#f(i,r.baseUrl,isObject(t)?t:{},{abortSignal:n.abortSignal,callId:n.callId})}async close(){this.#e=void 0,this.#t=void 0}async#r(){if(this.#t!==void 0)return this.#t;if(this.#e!==void 0)return this.#e;this.#e=this.#i();try{return this.#t=await this.#e,this.#t}catch(e){throw this.#e=void 0,e}}async#i(){let e=await this.#o(),t=this.#a(e),n=this.#s(e),r=[],i=new Map,a=Object.keys(this.#n.toolCall?.providedArguments??{});for(let e of n){let t;try{t=parseJsonObject(omitProvidedArgumentsFromSchema(e.inputSchema,a))}catch(t){log.warn(`omitting OpenAPI operation with an invalid input schema`,{connectionName:this.#n.connectionName,error:t,toolName:e.toolName});continue}i.set(e.toolName,e),r.push({description:e.description,inputSchema:t,name:e.toolName})}return{metadata:r,operations:i,baseUrl:t}}#a(e){let t=this.#n.url,n=typeof t==`string`&&t.trim().length>0?t:extractServerUrl(e,this.#n.spec);if(n===void 0)throw Error(`OpenAPI connection "${this.#n.connectionName}" has no base URL: set "baseUrl" or ensure the document declares an absolute "servers" entry or Swagger "host".`);return assertSecureUrl(n,this.#n.connectionName,`base`),n}async#o(){let e=this.#n.spec;if(e===void 0)throw Error(`OpenAPI connection "${this.#n.connectionName}" is missing its "spec" source.`);if(typeof e!=`string`)return e;assertSecureUrl(e,this.#n.connectionName,`spec`);let t;try{t=await fetch(e,{headers:{accept:`application/json, application/yaml, text/yaml, */*`}})}catch(t){throw Error(`OpenAPI connection "${this.#n.connectionName}" failed to fetch its spec from "${e}": ${String(t)}`)}if(t.redirected&&assertSecureUrl(t.url,this.#n.connectionName,`spec`),!t.ok)throw Error(`OpenAPI connection "${this.#n.connectionName}" failed to fetch its spec from "${e}": HTTP ${t.status}.`);let n=await t.text(),r;try{r=parseSpecDocument(n)}catch(t){throw Error(`OpenAPI connection "${this.#n.connectionName}" spec at "${e}" could not be parsed as JSON or YAML: ${String(t)}`)}if(!isObject(r))throw Error(`OpenAPI connection "${this.#n.connectionName}" spec at "${e}" is not an OpenAPI document object.`);return r}#s(e){let t=e.paths;if(!isObject(t))return[];let n=[],r=new Set;for(let[i,a]of Object.entries(t)){if(!isObject(a))continue;let t=isArray(a.parameters)?a.parameters:[];for(let o of HTTP_METHODS){let s=a[o];if(!isObject(s))continue;let c=uniqueName(operationName(s,o,i),r),l=isArray(s.parameters)?s.parameters:[],u=[...t,...l],d=this.#c(e,u),f=this.#l(e,s.requestBody,u);n.push({toolName:c,method:o,pathTemplate:i,description:operationDescription(s),parameters:d,requestBody:f,inputSchema:buildInputSchema(d,f),security:resolveSecurity(e,s)})}}return n}#c(e,t){let n=[];for(let r of t){let t=isObject(r)?deref(e,r):r;if(!isObject(t))continue;let i=t.in;if(i!==`path`&&i!==`query`&&i!==`header`&&i!==`cookie`||typeof t.name!=`string`)continue;let a=this.#u(e,t);n.push({name:t.name,location:i,required:t.required===!0||i===`path`,schema:a,description:typeof t.description==`string`?t.description:void 0})}return n}#l(e,t,n=[]){if(isObject(t)){let n=deref(e,t);if(isObject(n)&&isObject(n.content)){let t=n.content,r=`application/json`in t?`application/json`:Object.keys(t)[0];if(r!==void 0){let i=t[r],a=isObject(i)&&isObject(i.schema)?derefSchema(e,i.schema):{};return{required:n.required===!0,contentType:r,schema:a}}}}return this.#d(e,n)}#u(e,t){if(isObject(t.schema))return derefSchema(e,t.schema);let n={};for(let e of SWAGGER_PARAMETER_SCHEMA_KEYS)t[e]!==void 0&&(n[e]=t[e]);return derefSchema(e,n)}#d(e,t){for(let n of t){let t=isObject(n)?deref(e,n):n;if(!isObject(t)||t.in!==`body`)continue;let r=isObject(t.schema)?derefSchema(e,t.schema):{};return{required:t.required===!0,contentType:`application/json`,schema:r}}}async#f(e,t,n,r){let i=await resolveProvidedArguments({args:n,callId:r.callId,connection:this.#n,toolName:e.toolName}),a=await resolveHeaders(this.#n),o=e.pathTemplate,s=new URLSearchParams,c=[];for(let t of e.parameters){let n=i[t.name];if(n!=null){if(t.location===`path`){let r=String(n);if(r===`.`||r===`..`)throw Error(`Path parameter "${t.name}" for tool "${e.toolName}" in connection "${this.#n.connectionName}" must not be "." or "..".`);o=o.replace(`{${t.name}}`,encodeURIComponent(r))}else t.location===`query`?appendQuery(s,t.name,n):t.location===`cookie`?c.push(`${t.name}=${encodeURIComponent(String(n))}`):a[t.name]=String(n)}}if(applySecurity(e.security,this.#n,a,s,c),c.length>0){let e=a.cookie??a.Cookie;delete a.Cookie,a.cookie=[e,...c].filter(e=>!!e).join(`; `)}let l=new URL(joinPath(t,o));l.search=s.toString();let u;e.requestBody!==void 0&&i.body!==void 0&&(u=JSON.stringify(i.body),a[`content-type`]=e.requestBody.contentType);let{response:d,location:f}=await fetchWithinOrigin(l,{method:e.method.toUpperCase(),headers:a,body:u,signal:r?.abortSignal},this.#n.connectionName),p={status:d.status,statusText:d.statusText,body:await readResponseBody(d)};return f!==void 0&&(p.location=f),p}};const REDIRECT_STATUSES=new Set([301,302,303,307,308]);async function fetchWithinOrigin(e,t,n){let r=e,i=t;for(let t=0;;t++){let a=await fetch(r,{...i,redirect:`manual`}),o=a.headers.get(`location`);if(!REDIRECT_STATUSES.has(a.status)||o===null)return{response:a};let s=URL.parse(o,r.href);if(s===null)return{response:a};if(s.origin!==e.origin)return{response:a,location:s.href};if(await a.body?.cancel(),t>=10)throw Error(`OpenAPI connection "${n}" stopped after 10 redirects from "${e.origin}${e.pathname}", last to "${s.pathname}". The API may be redirecting in a loop.`);r=s,i=redirectedRequest(i,a.status)}}function redirectedRequest(e,t){if(!(t===303&&e.method!==`GET`&&e.method!==`HEAD`||(t===301||t===302)&&e.method===`POST`))return e;let n=Object.fromEntries(Object.entries(e.headers).filter(([e])=>e.toLowerCase()!==`content-type`));return{...e,method:`GET`,headers:n,body:void 0}}function appendQuery(e,t,n){if(isArray(n)){for(let r of n)e.append(t,String(r));return}e.append(t,String(n))}function joinPath(e,t){return`${e.endsWith(`/`)?e.slice(0,-1):e}${t.startsWith(`/`)?t:`/${t}`}`}function assertSecureUrl(e,t,n){let r;try{r=new URL(e)}catch{throw Error(`OpenAPI connection "${t}" has an invalid ${n} URL "${e}".`)}if(r.protocol!==`https:`&&!(r.protocol===`http:`&&isLoopbackHostname(r.hostname)))throw Error(`OpenAPI connection "${t}" must use https for its ${n} (got "${r.protocol}//${r.host}").`)}async function readResponseBody(e){let t=await e.text();if(t.length===0)return null;if((e.headers.get(`content-type`)??``).includes(`application/json`))try{return JSON.parse(t)}catch{return t}return t}export{OpenApiConnectionClient};
@@ -1 +1 @@
1
- import{expectObjectRecord}from"#internal/authored-module.js";import{stripLogicalPathExtension}from"#discover/filesystem.js";import{ROOT_COMPILED_AGENT_NODE_ID}from"#compiler/manifest.js";import{validateCompiledModuleMap}from"#compiler/validate-artifact.js";import{createRuntimeSubagentRegistry}from"#runtime/subagents/registry.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{createRuntimeToolRegistry}from"#runtime/tools/registry.js";import{loadResolvedModuleExport}from"#runtime/resolve-helpers.js";import{createResolvedRuntimeTurnAgent}from"#runtime/agent/bootstrap.js";import{createWorkspacePromptSection}from"#runtime/workspace/spec.js";import{createRuntimeHookRegistry}from"#runtime/hooks/registry.js";import{resolveAgent}from"#runtime/resolve-agent.js";import{resolveDynamicSubagentDefinition}from"#runtime/resolve-dynamic-subagent.js";import{createRuntimeSandboxRegistry}from"#runtime/sandbox/registry.js";var ResolveRuntimeAgentGraphError=class extends Error{logicalPath;nodeId;sourceId;constructor(e,t={}){super(e),this.name=`ResolveRuntimeAgentGraphError`,t.logicalPath!==void 0&&(this.logicalPath=t.logicalPath),t.nodeId!==void 0&&(this.nodeId=t.nodeId),t.sourceId!==void 0&&(this.sourceId=t.sourceId)}};async function resolveRuntimeAgentGraph(e){validateCompiledModuleMap(e.manifest,e.moduleMap);let t=new Map,n=createChildNodeIdsByParentNodeId(e.manifest),r=new Map(e.manifest.subagents.map(e=>[e.nodeId,e])),i=await resolveRuntimeAgentNode({childNodeIdsByParentNodeId:n,manifest:e.manifest,moduleMap:e.moduleMap,nodeId:ROOT_COMPILED_AGENT_NODE_ID,nodesByNodeId:t,subagentNodesById:r});return attachInheritedSandboxWorkspaceResources({manifest:e.manifest,nodesByNodeId:t}),{nodesByNodeId:t,root:i}}async function resolveRuntimeAgentNode(e){let t=toRuntimeNodeId(e.nodeId);if(e.nodesByNodeId.has(t))throw new ResolveRuntimeAgentGraphError(`Found multiple runtime agent nodes for node id "${t}".`,{nodeId:t,sourceId:e.sourceId});let n=await resolveAgent({manifest:e.manifest,moduleMap:e.moduleMap,nodeId:e.nodeId}),r=await createRuntimeToolRegistry({tools:n.tools},{deferSelfAgent:n.config?.tool===`deferred`,nodeId:t}),i=createRuntimeSandboxRegistry({sandbox:n.sandbox,workspaceResourceRoot:n.workspaceResourceRoot}),a=createRuntimeSubagentRegistry({disabledToolNames:e.manifest.sourceComposition.entries.flatMap(e=>e.kind!==`disabled`||!e.source.logicalPath.startsWith(`tools/`)?[]:[stripLogicalPathExtension(e.source.logicalPath).replace(/^tools\//,``).replaceAll(`/`,`-`)]),reservedToolNames:r.preparedTools.map(e=>e.name),subagents:await resolveRuntimeSubagents({childNodeIdsByParentNodeId:e.childNodeIdsByParentNodeId,manifest:e.manifest,moduleMap:e.moduleMap,nodesByNodeId:e.nodesByNodeId,parentNodeId:e.nodeId,subagentNodesById:e.subagentNodesById})}),o={agent:n,channels:n.channels,hookRegistry:createRuntimeHookRegistry(n.hooks),nodeId:t,sandboxRegistry:i,sourceId:e.sourceId,subagentRegistry:a,toolRegistry:r,turnAgent:createResolvedRuntimeTurnAgent({agent:n,id:e.agentId,nodeId:t,tools:[...r.preparedTools,...a.preparedTools]})};return e.nodesByNodeId.set(t,o),o}async function resolveRuntimeSubagents(e){let t=[],n=e.childNodeIdsByParentNodeId.get(e.parentNodeId)??[];for(let r of n){let n=e.subagentNodesById.get(r);if(n===void 0)throw new ResolveRuntimeAgentGraphError(`Missing compiled subagent node "${r}" while resolving runtime subagents.`,{nodeId:toRuntimeNodeId(e.parentNodeId),sourceId:r});t.push(await resolveRuntimeSubagent({childNodeIdsByParentNodeId:e.childNodeIdsByParentNodeId,moduleMap:e.moduleMap,nodesByNodeId:e.nodesByNodeId,sourceRef:n,subagentNodesById:e.subagentNodesById}))}for(let n of e.manifest.remoteAgents)t.push(await resolveRuntimeRemoteAgent({moduleMap:e.moduleMap,nodeScopeId:e.parentNodeId,sourceRef:n}));return t}async function resolveRuntimeSubagent(e){let t={...e.sourceRef.configResolver===void 0?{description:e.sourceRef.description,tool:e.sourceRef.agent.config.tool}:{dynamic:await resolveDynamicSubagentDefinition({definition:e.sourceRef.configResolver,moduleMap:e.moduleMap,nodeId:e.sourceRef.nodeId})},kind:`subagent`,logicalPath:e.sourceRef.logicalPath,name:e.sourceRef.name,nodeId:toRuntimeNodeId(e.sourceRef.nodeId),sourceId:e.sourceRef.sourceId,sourceKind:`module`};return await resolveRuntimeAgentNode({agentId:e.sourceRef.name,childNodeIdsByParentNodeId:e.childNodeIdsByParentNodeId,manifest:e.sourceRef.agent,moduleMap:e.moduleMap,nodeId:e.sourceRef.nodeId,nodesByNodeId:e.nodesByNodeId,sourceId:e.sourceRef.sourceId,subagentNodesById:e.subagentNodesById}),t}async function resolveRuntimeRemoteAgent(e){let t=await loadResolvedModuleExport({definition:e.sourceRef,kindLabel:`remote agent`,moduleMap:e.moduleMap,nodeId:e.nodeScopeId}),n=expectObjectRecord(t,`Expected remote agent source "${e.sourceRef.logicalPath}" to export an object.`),r={description:e.sourceRef.description,kind:`remote`,logicalPath:e.sourceRef.logicalPath,name:e.sourceRef.name,nodeId:toRuntimeNodeId(e.sourceRef.nodeId),path:e.sourceRef.path,sourceId:e.sourceRef.sourceId,sourceKind:`module`,tool:e.sourceRef.tool,url:await resolveRemoteAgentUrl({bakedUrl:e.sourceRef.url,logicalPath:e.sourceRef.logicalPath,resolvedUrl:n.url})};typeof n.auth==`function`&&(r.auth=n.auth),n.forwardPrincipal===!0&&(r.forwardPrincipal=!0);let i=resolveRemoteAgentHeaders(n.headers);return i!==void 0&&(r.headers=i),r}async function resolveRemoteAgentUrl(e){if(typeof e.resolvedUrl==`function`){let t=await e.resolvedUrl();if(typeof t!=`string`||t.length===0)throw Error(`Remote agent "${e.logicalPath}" url function must return a non-empty string.`);return t}let t=e.bakedUrl??(typeof e.resolvedUrl==`string`?e.resolvedUrl:``);if(t.length===0)throw Error(`Remote agent "${e.logicalPath}" is missing a url.`);return t}function resolveRemoteAgentHeaders(e){if(e===void 0)return;if(typeof e==`function`)return e;if(typeof e!=`object`||!e||Array.isArray(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r==`string`&&(t[n]=r);return t}function attachInheritedSandboxWorkspaceResources(e){let t=new Map(e.manifest.subagents.map(e=>[e.nodeId,e.parentNodeId]));for(let[n,r]of e.nodesByNodeId){if(r.sandboxRegistry.sandbox.definition.kind!==`parent`)continue;if(r.agent.dynamicSkillResolvers.length>0)throw new ResolveRuntimeAgentGraphError(`Sandbox "${r.sandboxRegistry.sandbox.definition.logicalPath}" selects parent.sandbox but agent node "${n}" defines dynamic skills. Remove the child dynamic skills or give the child its own sandbox.`,{nodeId:n});let i=t.get(n);if(i===void 0)throw new ResolveRuntimeAgentGraphError(`Sandbox "${r.sandboxRegistry.sandbox.definition.logicalPath}" selects parent.sandbox but agent node "${n}" has no parent.`,{nodeId:n});let a=resolveSandboxOwnerNode({nodeId:i,nodesByNodeId:e.nodesByNodeId,parentNodeIdByChildNodeId:t});r.sandboxRegistry.sandbox.inheritance={definition:a.sandboxRegistry.sandbox.definition,nodeId:a.nodeId,workspaceResourceRoot:a.sandboxRegistry.sandbox.workspaceResourceRoot};let o=createWorkspacePromptSection(a.agent.workspaceSpec);o!==void 0&&(r.turnAgent.instructions=[...r.turnAgent.instructions,o])}}function resolveSandboxOwnerNode(e){let t=e.nodesByNodeId.get(toRuntimeNodeId(e.nodeId));if(t===void 0)throw new ResolveRuntimeAgentGraphError(`Missing parent runtime node "${e.nodeId}".`,{nodeId:e.nodeId});if(t.sandboxRegistry.sandbox.definition.kind!==`parent`)return t;let n=e.parentNodeIdByChildNodeId.get(e.nodeId);if(n===void 0)throw new ResolveRuntimeAgentGraphError(`Inherited sandbox node "${e.nodeId}" has no parent.`,{nodeId:e.nodeId});return resolveSandboxOwnerNode({...e,nodeId:n})}function createChildNodeIdsByParentNodeId(e){let t=new Map;for(let n of e.subagents){let e=t.get(n.parentNodeId);if(e===void 0){t.set(n.parentNodeId,[n.nodeId]);continue}e.push(n.nodeId)}return t}function toRuntimeNodeId(e){return e===ROOT_COMPILED_AGENT_NODE_ID?ROOT_RUNTIME_AGENT_NODE_ID:e}export{resolveRuntimeAgentGraph};
1
+ import{expectObjectRecord}from"#internal/authored-module.js";import{stripLogicalPathExtension}from"#discover/filesystem.js";import{ROOT_COMPILED_AGENT_NODE_ID}from"#compiler/manifest.js";import{validateCompiledModuleMap}from"#compiler/validate-artifact.js";import{createRuntimeSubagentRegistry}from"#runtime/subagents/registry.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{createRuntimeToolRegistry}from"#runtime/tools/registry.js";import{createRuntimeSandboxRegistry}from"#runtime/sandbox/registry.js";import{loadResolvedModuleExport}from"#runtime/resolve-helpers.js";import{createResolvedRuntimeTurnAgent}from"#runtime/agent/bootstrap.js";import{createWorkspacePromptSection}from"#runtime/workspace/spec.js";import{createRuntimeHookRegistry}from"#runtime/hooks/registry.js";import{resolveAgent}from"#runtime/resolve-agent.js";import{resolveDynamicSubagentDefinition}from"#runtime/resolve-dynamic-subagent.js";var ResolveRuntimeAgentGraphError=class extends Error{logicalPath;nodeId;sourceId;constructor(e,t={}){super(e),this.name=`ResolveRuntimeAgentGraphError`,t.logicalPath!==void 0&&(this.logicalPath=t.logicalPath),t.nodeId!==void 0&&(this.nodeId=t.nodeId),t.sourceId!==void 0&&(this.sourceId=t.sourceId)}};async function resolveRuntimeAgentGraph(e){validateCompiledModuleMap(e.manifest,e.moduleMap);let t=new Map,n=createChildNodeIdsByParentNodeId(e.manifest),r=new Map(e.manifest.subagents.map(e=>[e.nodeId,e])),i=await resolveRuntimeAgentNode({childNodeIdsByParentNodeId:n,manifest:e.manifest,moduleMap:e.moduleMap,nodeId:ROOT_COMPILED_AGENT_NODE_ID,nodesByNodeId:t,subagentNodesById:r});return attachInheritedSandboxWorkspaceResources({manifest:e.manifest,nodesByNodeId:t}),{nodesByNodeId:t,root:i}}async function resolveRuntimeAgentNode(e){let t=toRuntimeNodeId(e.nodeId);if(e.nodesByNodeId.has(t))throw new ResolveRuntimeAgentGraphError(`Found multiple runtime agent nodes for node id "${t}".`,{nodeId:t,sourceId:e.sourceId});let n=await resolveAgent({manifest:e.manifest,moduleMap:e.moduleMap,nodeId:e.nodeId}),r=await createRuntimeToolRegistry({tools:n.tools},{deferSelfAgent:n.config?.tool===`deferred`,nodeId:t}),i=createRuntimeSandboxRegistry({sandbox:n.sandbox,workspaceResourceRoot:n.workspaceResourceRoot}),a=createRuntimeSubagentRegistry({disabledToolNames:e.manifest.sourceComposition.entries.flatMap(e=>e.kind!==`disabled`||!e.source.logicalPath.startsWith(`tools/`)?[]:[stripLogicalPathExtension(e.source.logicalPath).replace(/^tools\//,``).replaceAll(`/`,`-`)]),reservedToolNames:r.preparedTools.map(e=>e.name),subagents:await resolveRuntimeSubagents({childNodeIdsByParentNodeId:e.childNodeIdsByParentNodeId,manifest:e.manifest,moduleMap:e.moduleMap,nodesByNodeId:e.nodesByNodeId,parentNodeId:e.nodeId,subagentNodesById:e.subagentNodesById})}),o={agent:n,channels:n.channels,hookRegistry:createRuntimeHookRegistry(n.hooks),nodeId:t,sandboxRegistry:i,sourceId:e.sourceId,subagentRegistry:a,toolRegistry:r,turnAgent:createResolvedRuntimeTurnAgent({agent:n,id:e.agentId,nodeId:t,tools:[...r.preparedTools,...a.preparedTools]})};return e.nodesByNodeId.set(t,o),o}async function resolveRuntimeSubagents(e){let t=[],n=e.childNodeIdsByParentNodeId.get(e.parentNodeId)??[];for(let r of n){let n=e.subagentNodesById.get(r);if(n===void 0)throw new ResolveRuntimeAgentGraphError(`Missing compiled subagent node "${r}" while resolving runtime subagents.`,{nodeId:toRuntimeNodeId(e.parentNodeId),sourceId:r});t.push(await resolveRuntimeSubagent({childNodeIdsByParentNodeId:e.childNodeIdsByParentNodeId,moduleMap:e.moduleMap,nodesByNodeId:e.nodesByNodeId,sourceRef:n,subagentNodesById:e.subagentNodesById}))}for(let n of e.manifest.remoteAgents)t.push(await resolveRuntimeRemoteAgent({moduleMap:e.moduleMap,nodeScopeId:e.parentNodeId,sourceRef:n}));return t}async function resolveRuntimeSubagent(e){let t={...e.sourceRef.configResolver===void 0?{description:e.sourceRef.description,tool:e.sourceRef.agent.config.tool}:{dynamic:await resolveDynamicSubagentDefinition({definition:e.sourceRef.configResolver,moduleMap:e.moduleMap,nodeId:e.sourceRef.nodeId})},kind:`subagent`,logicalPath:e.sourceRef.logicalPath,name:e.sourceRef.name,nodeId:toRuntimeNodeId(e.sourceRef.nodeId),sourceId:e.sourceRef.sourceId,sourceKind:`module`};return await resolveRuntimeAgentNode({agentId:e.sourceRef.name,childNodeIdsByParentNodeId:e.childNodeIdsByParentNodeId,manifest:e.sourceRef.agent,moduleMap:e.moduleMap,nodeId:e.sourceRef.nodeId,nodesByNodeId:e.nodesByNodeId,sourceId:e.sourceRef.sourceId,subagentNodesById:e.subagentNodesById}),t}async function resolveRuntimeRemoteAgent(e){let t=await loadResolvedModuleExport({definition:e.sourceRef,kindLabel:`remote agent`,moduleMap:e.moduleMap,nodeId:e.nodeScopeId}),n=expectObjectRecord(t,`Expected remote agent source "${e.sourceRef.logicalPath}" to export an object.`),r={description:e.sourceRef.description,kind:`remote`,logicalPath:e.sourceRef.logicalPath,name:e.sourceRef.name,nodeId:toRuntimeNodeId(e.sourceRef.nodeId),path:e.sourceRef.path,sourceId:e.sourceRef.sourceId,sourceKind:`module`,tool:e.sourceRef.tool,url:await resolveRemoteAgentUrl({bakedUrl:e.sourceRef.url,logicalPath:e.sourceRef.logicalPath,resolvedUrl:n.url})};typeof n.auth==`function`&&(r.auth=n.auth),n.forwardPrincipal===!0&&(r.forwardPrincipal=!0);let i=resolveRemoteAgentHeaders(n.headers);return i!==void 0&&(r.headers=i),r}async function resolveRemoteAgentUrl(e){if(typeof e.resolvedUrl==`function`){let t=await e.resolvedUrl();if(typeof t!=`string`||t.length===0)throw Error(`Remote agent "${e.logicalPath}" url function must return a non-empty string.`);return t}let t=e.bakedUrl??(typeof e.resolvedUrl==`string`?e.resolvedUrl:``);if(t.length===0)throw Error(`Remote agent "${e.logicalPath}" is missing a url.`);return t}function resolveRemoteAgentHeaders(e){if(e===void 0)return;if(typeof e==`function`)return e;if(typeof e!=`object`||!e||Array.isArray(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r==`string`&&(t[n]=r);return t}function attachInheritedSandboxWorkspaceResources(e){let t=new Map(e.manifest.subagents.map(e=>[e.nodeId,e.parentNodeId]));for(let[n,r]of e.nodesByNodeId){if(r.sandboxRegistry.sandbox.definition.kind!==`parent`)continue;if(r.agent.dynamicSkillResolvers.length>0)throw new ResolveRuntimeAgentGraphError(`Sandbox "${r.sandboxRegistry.sandbox.definition.logicalPath}" selects parent.sandbox but agent node "${n}" defines dynamic skills. Remove the child dynamic skills or give the child its own sandbox.`,{nodeId:n});let i=t.get(n);if(i===void 0)throw new ResolveRuntimeAgentGraphError(`Sandbox "${r.sandboxRegistry.sandbox.definition.logicalPath}" selects parent.sandbox but agent node "${n}" has no parent. Only a declared subagent can share its parent's sandbox with defineParentSandbox(). Give this agent its own sandbox with defineSandbox() and an exported environment.`,{nodeId:n});let a=resolveSandboxOwnerNode({nodeId:i,nodesByNodeId:e.nodesByNodeId,parentNodeIdByChildNodeId:t});r.sandboxRegistry.sandbox.inheritance={definition:a.sandboxRegistry.sandbox.definition,nodeId:a.nodeId,workspaceResourceRoot:a.sandboxRegistry.sandbox.workspaceResourceRoot};let o=createWorkspacePromptSection(a.agent.workspaceSpec);o!==void 0&&(r.turnAgent.instructions=[...r.turnAgent.instructions,o])}}function resolveSandboxOwnerNode(e){let t=e.nodesByNodeId.get(toRuntimeNodeId(e.nodeId));if(t===void 0)throw new ResolveRuntimeAgentGraphError(`Missing parent runtime node "${e.nodeId}".`,{nodeId:e.nodeId});if(t.sandboxRegistry.sandbox.definition.kind!==`parent`)return t;let n=e.parentNodeIdByChildNodeId.get(e.nodeId);if(n===void 0)throw new ResolveRuntimeAgentGraphError(`Inherited sandbox node "${e.nodeId}" has no parent.`,{nodeId:e.nodeId});return resolveSandboxOwnerNode({...e,nodeId:n})}function createChildNodeIdsByParentNodeId(e){let t=new Map;for(let n of e.subagents){let e=t.get(n.parentNodeId);if(e===void 0){t.set(n.parentNodeId,[n.nodeId]);continue}e.push(n.nodeId)}return t}function toRuntimeNodeId(e){return e===ROOT_COMPILED_AGENT_NODE_ID?ROOT_RUNTIME_AGENT_NODE_ID:e}export{resolveRuntimeAgentGraph};
@@ -1 +1 @@
1
- import{resolveConnectionDefinition}from"#runtime/resolve-connection.js";import{createResolvedModuleSourceRef}from"#runtime/resolve-helpers.js";import{resolveChannelDefinition}from"#runtime/resolve-channel.js";import{resolveDynamicConnectionDefinition}from"#runtime/resolve-dynamic-connection.js";import{resolveHookDefinition}from"#runtime/resolve-hook.js";import{resolveSandboxDefinition}from"#runtime/resolve-sandbox.js";import{resolveDynamicInstructionsDefinition}from"#runtime/resolve-dynamic-instructions.js";import{resolveDynamicSkillDefinition}from"#runtime/resolve-dynamic-skill.js";import{resolveDynamicToolDefinition}from"#runtime/resolve-dynamic-tool.js";import{resolveToolDefinition}from"#runtime/resolve-tool.js";import{resolveMemoryDefinition}from"#runtime/resolve-memory.js";async function resolveAgent(e){let t=e.manifest.skills.map(t=>({...t,owner:requireCompiledSourceOwner(e.manifest,t),metadata:t.metadata===void 0?void 0:{...t.metadata}})),n=await Promise.all(e.manifest.channelRoutes.effective.map(t=>resolveChannelDefinition(t,e.moduleMap,e.nodeId))),r=await Promise.all(e.manifest.tools.map(t=>resolveToolDefinition(t,e.moduleMap,e.nodeId,requireBindingOwner(e.manifest,t.sourceId)))),i=await Promise.all(e.manifest.dynamicConnections.map(t=>resolveDynamicConnectionDefinition(t,e.moduleMap,e.nodeId))),a=await Promise.all((e.manifest.dynamicInstructions??[]).map(t=>resolveDynamicInstructionsDefinition(t,e.moduleMap,e.nodeId))),o=await Promise.all((e.manifest.dynamicSkills??[]).map(t=>resolveDynamicSkillDefinition(t,e.moduleMap,e.nodeId))),s=await Promise.all(e.manifest.dynamicTools.map(t=>resolveDynamicToolDefinition(t,e.moduleMap,e.nodeId))),c=await Promise.all(e.manifest.hooks.map(t=>resolveHookDefinition(t,e.moduleMap,e.nodeId))),l=await Promise.all(e.manifest.connections.map(t=>resolveConnectionDefinition(t,e.moduleMap,e.nodeId))),u=await Promise.all(e.manifest.memories.map(t=>resolveMemoryDefinition(t,e.moduleMap,e.nodeId))),d=await resolveSandboxDefinition(e.manifest.sandbox,e.moduleMap,e.nodeId),f=e.manifest.instructions.map(t=>createResolvedInstructionsDefinition(e.manifest,t)),p=e.manifest.workspaceResourceRoot,m={channels:n,connections:l,dynamicConnectionResolvers:i,dynamicInstructionsResolvers:a,dynamicSkillResolvers:o,dynamicToolResolvers:s,hooks:c,instructions:f,metadata:{agentRoot:e.manifest.agentRoot,appRoot:e.manifest.appRoot,diagnosticsSummary:e.manifest.diagnosticsSummary},memories:u,sandbox:d,workspaceResourceRoot:p,skills:t,tools:r,workspaceSpec:{rootEntries:[...p.rootEntries]}};return`config`in e.manifest?{...m,config:createResolvedAgentConfig(e.manifest)}:m}function requireBindingOwner(e,t){let n=e.bindings[t];if(n===void 0)throw Error(`Compiled source "${t}" has no binding.`);return n.owner}function createResolvedInstructionsDefinition(e,t){return{content:t.content,name:t.name,owner:requireCompiledSourceOwner(e,t),logicalPath:t.logicalPath,role:t.role,sourceId:t.sourceId,sourceKind:t.sourceKind}}function requireCompiledSourceOwner(e,t){let n=e.bindings[t.sourceId]?.owner??t.owner;if(n===void 0)throw Error(`Compiled source "${t.sourceId}" has no owner.`);return n}function createResolvedAgentConfig(e){let t={name:e.config.name};if(e.config.defaultTools!==void 0&&(t.defaultTools=e.config.defaultTools),e.config.description!==void 0&&(t.description=e.config.description),e.config.compaction!==void 0){let n={};e.config.compaction.model!==void 0&&(n.model=e.config.compaction.model.source===void 0?{contextWindowTokens:e.config.compaction.model.contextWindowTokens,id:e.config.compaction.model.id,maxOutputTokens:e.config.compaction.model.maxOutputTokens,providerOptions:e.config.compaction.model.providerOptions}:{contextWindowTokens:e.config.compaction.model.contextWindowTokens,id:e.config.compaction.model.id,maxOutputTokens:e.config.compaction.model.maxOutputTokens,providerOptions:e.config.compaction.model.providerOptions,source:{exportName:e.config.compaction.model.source.exportName,sourceKind:`module`,logicalPath:e.config.compaction.model.source.logicalPath,sourceId:e.config.compaction.model.source.sourceId}}),e.config.compaction.thresholdPercent!==void 0&&(n.thresholdPercent=e.config.compaction.thresholdPercent),t.compaction=n}if(e.config.experimental!==void 0&&(t.experimental={workflow:e.config.experimental.workflow===void 0?void 0:{modelCallsPerStep:e.config.experimental.workflow.modelCallsPerStep,retention:e.config.experimental.workflow.retention,world:e.config.experimental.workflow.world}}),e.config.reasoning!==void 0&&(t.reasoning=e.config.reasoning),e.config.source!==void 0&&(t.source=createResolvedModuleSourceRef(e.config.source)),e.config.tool!==void 0&&(t.tool=e.config.tool),e.config.limits!==void 0&&(t.limits={maxInputTokensPerSession:e.config.limits.maxInputTokensPerSession,maxOutputTokensPerSession:e.config.limits.maxOutputTokensPerSession,maxTokenCostUsdPerSession:e.config.limits.maxTokenCostUsdPerSession,sessionTimeoutMs:e.config.limits.sessionTimeoutMs}),e.config.dynamicModel!==void 0)return{...t,dynamicModel:{...createResolvedModuleSourceRef(e.config.dynamicModel),eventNames:[...e.config.dynamicModel.eventNames]}};let n=e.config.model;return{...t,model:n.source===void 0?{id:n.id,contextWindowTokens:n.contextWindowTokens,maxOutputTokens:n.maxOutputTokens,providerOptions:n.providerOptions}:{contextWindowTokens:n.contextWindowTokens,id:n.id,maxOutputTokens:n.maxOutputTokens,promptCache:n.promptCache,providerOptions:n.providerOptions,source:{exportName:n.source.exportName,sourceKind:`module`,logicalPath:n.source.logicalPath,sourceId:n.source.sourceId}}}}export{resolveAgent};
1
+ import{normalizeAgentDefinition}from"#internal/authored-definition/core.js";import{resolveConnectionDefinition}from"#runtime/resolve-connection.js";import{createResolvedModuleSourceRef,loadResolvedModuleExport}from"#runtime/resolve-helpers.js";import{resolveChannelDefinition}from"#runtime/resolve-channel.js";import{resolveDynamicConnectionDefinition}from"#runtime/resolve-dynamic-connection.js";import{resolveHookDefinition}from"#runtime/resolve-hook.js";import{resolveSandboxDefinition}from"#runtime/resolve-sandbox.js";import{resolveDynamicInstructionsDefinition}from"#runtime/resolve-dynamic-instructions.js";import{resolveDynamicSkillDefinition}from"#runtime/resolve-dynamic-skill.js";import{resolveDynamicToolDefinition}from"#runtime/resolve-dynamic-tool.js";import{resolveToolDefinition}from"#runtime/resolve-tool.js";import{resolveMemoryDefinition}from"#runtime/resolve-memory.js";async function resolveAgent(e){let t=e.manifest.skills.map(t=>({...t,owner:requireCompiledSourceOwner(e.manifest,t),metadata:t.metadata===void 0?void 0:{...t.metadata}})),n=await Promise.all(e.manifest.channelRoutes.effective.map(t=>resolveChannelDefinition(t,e.moduleMap,e.nodeId))),r=await Promise.all(e.manifest.tools.map(t=>resolveToolDefinition(t,e.moduleMap,e.nodeId,requireBindingOwner(e.manifest,t.sourceId)))),i=await Promise.all(e.manifest.dynamicConnections.map(t=>resolveDynamicConnectionDefinition(t,e.moduleMap,e.nodeId))),a=await Promise.all((e.manifest.dynamicInstructions??[]).map(t=>resolveDynamicInstructionsDefinition(t,e.moduleMap,e.nodeId))),o=await Promise.all((e.manifest.dynamicSkills??[]).map(t=>resolveDynamicSkillDefinition(t,e.moduleMap,e.nodeId))),s=await Promise.all(e.manifest.dynamicTools.map(t=>resolveDynamicToolDefinition(t,e.moduleMap,e.nodeId))),c=await Promise.all(e.manifest.hooks.map(t=>resolveHookDefinition(t,e.moduleMap,e.nodeId))),l=await Promise.all(e.manifest.connections.map(t=>resolveConnectionDefinition(t,e.moduleMap,e.nodeId))),u=await Promise.all(e.manifest.memories.map(t=>resolveMemoryDefinition(t,e.moduleMap,e.nodeId))),d=await resolveSandboxDefinition(e.manifest.sandbox,e.moduleMap,e.nodeId),f=e.manifest.instructions.map(t=>createResolvedInstructionsDefinition(e.manifest,t)),p=e.manifest.workspaceResourceRoot,m={channels:n,connections:l,dynamicConnectionResolvers:i,dynamicInstructionsResolvers:a,dynamicSkillResolvers:o,dynamicToolResolvers:s,hooks:c,instructions:f,metadata:{agentRoot:e.manifest.agentRoot,appRoot:e.manifest.appRoot,diagnosticsSummary:e.manifest.diagnosticsSummary},memories:u,sandbox:d,workspaceResourceRoot:p,skills:t,tools:r,workspaceSpec:{rootEntries:[...p.rootEntries]}};return`config`in e.manifest?{...m,config:createResolvedAgentConfig(e.manifest,await loadSessionUsageLimit(e.manifest,e.moduleMap,e.nodeId))}:m}async function loadSessionUsageLimit(e,t,n){let r=e.config.source;if(e.config.limits?.sessionUsage!==!0||r===void 0)return;let i=await loadResolvedModuleExport({definition:r,kindLabel:`agent config`,moduleMap:t,nodeId:n});return normalizeAgentDefinition(i,`Expected the authored agent config export "${r.exportName??`default`}" from "${r.logicalPath}" to match the public eve shape.`).limits?.sessionUsage}function requireBindingOwner(e,t){let n=e.bindings[t];if(n===void 0)throw Error(`Compiled source "${t}" has no binding.`);return n.owner}function createResolvedInstructionsDefinition(e,t){return{content:t.content,name:t.name,owner:requireCompiledSourceOwner(e,t),logicalPath:t.logicalPath,role:t.role,sourceId:t.sourceId,sourceKind:t.sourceKind}}function requireCompiledSourceOwner(e,t){let n=e.bindings[t.sourceId]?.owner??t.owner;if(n===void 0)throw Error(`Compiled source "${t.sourceId}" has no owner.`);return n}function createResolvedAgentConfig(e,t){let n={name:e.config.name};if(e.config.defaultTools!==void 0&&(n.defaultTools=e.config.defaultTools),e.config.description!==void 0&&(n.description=e.config.description),e.config.compaction!==void 0){let t={};e.config.compaction.model!==void 0&&(t.model=e.config.compaction.model.source===void 0?{contextWindowTokens:e.config.compaction.model.contextWindowTokens,id:e.config.compaction.model.id,maxOutputTokens:e.config.compaction.model.maxOutputTokens,providerOptions:e.config.compaction.model.providerOptions}:{contextWindowTokens:e.config.compaction.model.contextWindowTokens,id:e.config.compaction.model.id,maxOutputTokens:e.config.compaction.model.maxOutputTokens,providerOptions:e.config.compaction.model.providerOptions,source:{exportName:e.config.compaction.model.source.exportName,sourceKind:`module`,logicalPath:e.config.compaction.model.source.logicalPath,sourceId:e.config.compaction.model.source.sourceId},sourceField:e.config.compaction.model.sourceField}),e.config.compaction.thresholdPercent!==void 0&&(t.thresholdPercent=e.config.compaction.thresholdPercent),n.compaction=t}if(e.config.experimental!==void 0&&(n.experimental={workflow:e.config.experimental.workflow===void 0?void 0:{modelCallsPerStep:e.config.experimental.workflow.modelCallsPerStep,retention:e.config.experimental.workflow.retention,world:e.config.experimental.workflow.world}}),e.config.reasoning!==void 0&&(n.reasoning=e.config.reasoning),e.config.source!==void 0&&(n.source=createResolvedModuleSourceRef(e.config.source)),e.config.tool!==void 0&&(n.tool=e.config.tool),e.config.limits!==void 0&&(n.limits={sessionTimeoutMs:e.config.limits.sessionTimeoutMs,sessionUsage:t}),e.config.dynamicModel!==void 0)return{...n,dynamicModel:{...createResolvedModuleSourceRef(e.config.dynamicModel),eventNames:[...e.config.dynamicModel.eventNames]}};let r=e.config.model;return{...n,model:r.source===void 0?{id:r.id,contextWindowTokens:r.contextWindowTokens,maxOutputTokens:r.maxOutputTokens,providerOptions:r.providerOptions}:{contextWindowTokens:r.contextWindowTokens,id:r.id,maxOutputTokens:r.maxOutputTokens,promptCache:r.promptCache,providerOptions:r.providerOptions,source:{exportName:r.source.exportName,sourceKind:`module`,logicalPath:r.source.logicalPath,sourceId:r.source.sourceId}}}}export{resolveAgent};