eve 0.47.6 → 0.48.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 (400) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/src/channel/adapter.js +1 -1
  3. package/dist/src/channel/delivery-metadata.d.ts +1 -0
  4. package/dist/src/channel/delivery-metadata.js +1 -1
  5. package/dist/src/channel/session.js +1 -1
  6. package/dist/src/channel/types.d.ts +10 -8
  7. package/dist/src/chunks/{use-eve-agent-DkUB0Ok4.js → use-eve-agent-BZnOzAVd.js} +25 -6
  8. package/dist/src/chunks/{use-eve-agent-DjYwFJF7.js → use-eve-agent-Bgp6INfi.js} +25 -6
  9. package/dist/src/cli/commands/init.js +1 -1
  10. package/dist/src/cli/commands/integration-connect.d.ts +2 -1
  11. package/dist/src/cli/commands/integration-connect.js +1 -1
  12. package/dist/src/cli/commands/register-integration-commands.d.ts +3 -1
  13. package/dist/src/cli/commands/register-integration-commands.js +1 -1
  14. package/dist/src/cli/commands/registry-declared-setups.js +1 -1
  15. package/dist/src/cli/commands/registry-install-transaction.d.ts +23 -0
  16. package/dist/src/cli/commands/registry-install-transaction.js +1 -0
  17. package/dist/src/cli/commands/registry-package.js +1 -1
  18. package/dist/src/cli/commands/registry.js +1 -1
  19. package/dist/src/cli/commands/setup-headless.d.ts +6 -0
  20. package/dist/src/cli/commands/setup-headless.js +1 -1
  21. package/dist/src/cli/dev/command-options.d.ts +2 -0
  22. package/dist/src/cli/dev/run-interactive-ui.js +1 -1
  23. package/dist/src/cli/dev/tui/blocks.js +1 -1
  24. package/dist/src/cli/dev/tui/line-editor.d.ts +4 -0
  25. package/dist/src/cli/dev/tui/line-editor.js +3 -3
  26. package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -1
  27. package/dist/src/cli/dev/tui/registry-result-message.d.ts +17 -0
  28. package/dist/src/cli/dev/tui/registry-result-message.js +3 -0
  29. package/dist/src/cli/dev/tui/runner.d.ts +13 -4
  30. package/dist/src/cli/dev/tui/runner.js +1 -1
  31. package/dist/src/cli/dev/tui/setup-commands.d.ts +9 -3
  32. package/dist/src/cli/dev/tui/setup-commands.js +2 -3
  33. package/dist/src/cli/dev/tui/setup-flow.d.ts +15 -5
  34. package/dist/src/cli/dev/tui/setup-panel.d.ts +6 -1
  35. package/dist/src/cli/dev/tui/setup-panel.js +4 -4
  36. package/dist/src/cli/dev/tui/setup-selection-input.d.ts +1 -0
  37. package/dist/src/cli/dev/tui/setup-selection-input.js +1 -1
  38. package/dist/src/cli/dev/tui/stream-format.d.ts +8 -0
  39. package/dist/src/cli/dev/tui/stream-format.js +2 -2
  40. package/dist/src/cli/dev/tui/subagent-pump.d.ts +3 -0
  41. package/dist/src/cli/dev/tui/subagent-pump.js +1 -1
  42. package/dist/src/cli/dev/tui/terminal-renderer.js +12 -12
  43. package/dist/src/cli/dev/tui/tui-prompter.js +1 -1
  44. package/dist/src/cli/dev/tui/tui.d.ts +3 -4
  45. package/dist/src/cli/dev/tui/tui.js +1 -1
  46. package/dist/src/cli/run.js +2 -2
  47. package/dist/src/client/agent-info-schema.d.ts +1 -1
  48. package/dist/src/client/agent-info-schema.js +1 -1
  49. package/dist/src/client/open-stream.d.ts +1 -0
  50. package/dist/src/client/open-stream.js +1 -1
  51. package/dist/src/client/session.js +1 -1
  52. package/dist/src/compiled/.vendor-stamp.json +2 -1
  53. package/dist/src/compiled/@opentelemetry/api/index.d.ts +6 -0
  54. package/dist/src/compiled/@workflow/builders/LICENSE.md +201 -0
  55. package/dist/src/compiled/@workflow/builders/index.d.ts +62 -0
  56. package/dist/src/compiled/@workflow/builders/index.js +1 -0
  57. package/dist/src/compiler/extension-compatibility.d.ts +2 -2
  58. package/dist/src/compiler/extension-compatibility.js +1 -1
  59. package/dist/src/compiler/manifest.d.ts +7 -17
  60. package/dist/src/compiler/manifest.js +1 -1
  61. package/dist/src/compiler/normalize-manifest.js +1 -1
  62. package/dist/src/compiler/normalize-tool.d.ts +0 -1
  63. package/dist/src/compiler/normalize-tool.js +1 -1
  64. package/dist/src/context/build-dynamic-tools.d.ts +2 -2
  65. package/dist/src/context/build-dynamic-tools.js +1 -1
  66. package/dist/src/context/container.d.ts +7 -0
  67. package/dist/src/context/container.js +1 -1
  68. package/dist/src/context/dynamic-tool-lifecycle.d.ts +16 -9
  69. package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
  70. package/dist/src/context/dynamic-tool-metadata.d.ts +44 -0
  71. package/dist/src/context/dynamic-tool-metadata.js +1 -0
  72. package/dist/src/context/keys.d.ts +14 -22
  73. package/dist/src/context/keys.js +1 -1
  74. package/dist/src/eve-channel/index.js +1 -1
  75. package/dist/src/eve-channel/request.d.ts +0 -1
  76. package/dist/src/eve-channel/request.js +2 -2
  77. package/dist/src/eve-channel/types.d.ts +7 -7
  78. package/dist/src/execution/accepted-delivery-deployment.d.ts +7 -0
  79. package/dist/src/execution/accepted-delivery-deployment.js +1 -0
  80. package/dist/src/execution/cancel-descendant-turns-step.d.ts +4 -1
  81. package/dist/src/execution/cancel-descendant-turns-step.js +1 -1
  82. package/dist/src/execution/create-session-step.js +1 -1
  83. package/dist/src/execution/delegation-tool.d.ts +1 -2
  84. package/dist/src/execution/delegation-tool.js +1 -1
  85. package/dist/src/execution/dispatch-runtime-actions-shared.d.ts +14 -4
  86. package/dist/src/execution/dispatch-runtime-actions-shared.js +1 -1
  87. package/dist/src/execution/dispatch-runtime-actions-step.js +1 -1
  88. package/dist/src/execution/dispatch-turn-step.js +1 -1
  89. package/dist/src/execution/dispatch-workflow-runtime-actions-step.js +1 -1
  90. package/dist/src/execution/durable-session-migrations/turn-workflow-v1-to-v2.d.ts +2 -0
  91. package/dist/src/execution/durable-session-migrations/turn-workflow-v1-to-v2.js +1 -0
  92. package/dist/src/execution/durable-session-migrations/turn-workflow.d.ts +25 -3
  93. package/dist/src/execution/durable-session-migrations/turn-workflow.js +1 -1
  94. package/dist/src/execution/eve-workflow-attributes.js +1 -1
  95. package/dist/src/execution/finalize-terminal-session.d.ts +17 -0
  96. package/dist/src/execution/finalize-terminal-session.js +1 -0
  97. package/dist/src/execution/inline-turn.d.ts +29 -0
  98. package/dist/src/execution/inline-turn.js +1 -0
  99. package/dist/src/execution/next-driver-action.d.ts +4 -0
  100. package/dist/src/execution/node-step.js +1 -1
  101. package/dist/src/execution/parked-delivery-wait.js +1 -1
  102. package/dist/src/execution/pending-turn-state.d.ts +1 -0
  103. package/dist/src/execution/pending-turn-state.js +1 -1
  104. package/dist/src/execution/prepared-agent-action.d.ts +7 -0
  105. package/dist/src/execution/prepared-agent-action.js +1 -0
  106. package/dist/src/execution/proxied-deliver-step.js +1 -1
  107. package/dist/src/execution/remote-agent-dispatch.d.ts +2 -0
  108. package/dist/src/execution/remote-agent-dispatch.js +1 -1
  109. package/dist/src/execution/session-command-token.d.ts +2 -0
  110. package/dist/src/execution/session-command-token.js +1 -1
  111. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  112. package/dist/src/execution/stable-workflow-names.d.ts +12 -0
  113. package/dist/src/execution/stable-workflow-names.js +1 -0
  114. package/dist/src/execution/subagent-event-proxy-step.d.ts +3 -0
  115. package/dist/src/execution/subagent-event-proxy-step.js +1 -1
  116. package/dist/src/execution/subagent-hitl-proxy.d.ts +2 -1
  117. package/dist/src/execution/subagent-hitl-proxy.js +1 -1
  118. package/dist/src/execution/subagent-start-local.d.ts +3 -0
  119. package/dist/src/execution/subagent-start-local.js +1 -1
  120. package/dist/src/execution/subagent-start-remote.d.ts +2 -0
  121. package/dist/src/execution/subagent-start-remote.js +1 -1
  122. package/dist/src/execution/subagent-tool.d.ts +1 -0
  123. package/dist/src/execution/subagent-tool.js +1 -1
  124. package/dist/src/execution/tasks/child/steps.d.ts +2 -0
  125. package/dist/src/execution/tasks/child/steps.js +1 -1
  126. package/dist/src/execution/tasks/child/update.d.ts +3 -2
  127. package/dist/src/execution/tasks/child/workflow.js +1 -1
  128. package/dist/src/execution/tasks/parent/control-shared.d.ts +5 -4
  129. package/dist/src/execution/tasks/parent/dispatch-task-step.js +1 -1
  130. package/dist/src/execution/tasks/parent/dispatch.d.ts +4 -3
  131. package/dist/src/execution/tasks/parent/dispatch.js +1 -1
  132. package/dist/src/execution/tasks/parent/hitl-proxy-steps.js +1 -1
  133. package/dist/src/execution/tasks/parent/tool-execution.js +1 -1
  134. package/dist/src/execution/terminal-session-completion-step.js +1 -1
  135. package/dist/src/execution/terminal-session-event.d.ts +13 -0
  136. package/dist/src/execution/terminal-session-event.js +1 -0
  137. package/dist/src/execution/terminal-session-failure-step.d.ts +1 -0
  138. package/dist/src/execution/terminal-session-failure-step.js +1 -1
  139. package/dist/src/execution/tool-run/answer.d.ts +3 -0
  140. package/dist/src/execution/tool-run/answer.js +1 -0
  141. package/dist/src/execution/tool-run/background.d.ts +14 -0
  142. package/dist/src/execution/tool-run/background.js +1 -0
  143. package/dist/src/execution/tool-run/cancel.d.ts +7 -0
  144. package/dist/src/execution/tool-run/cancel.js +1 -0
  145. package/dist/src/execution/tool-run/dispatch.d.ts +24 -0
  146. package/dist/src/execution/tool-run/dispatch.js +1 -0
  147. package/dist/src/execution/tool-run/emit-run-report-step.d.ts +7 -0
  148. package/dist/src/execution/tool-run/emit-run-report-step.js +1 -0
  149. package/dist/src/execution/tool-run/messages.d.ts +70 -0
  150. package/dist/src/execution/tool-run/messages.js +1 -0
  151. package/dist/src/execution/tool-run/owner-channels.d.ts +29 -0
  152. package/dist/src/execution/tool-run/owner-channels.js +1 -0
  153. package/dist/src/execution/tool-run/owner-inbox.d.ts +11 -0
  154. package/dist/src/execution/tool-run/owner-inbox.js +1 -0
  155. package/dist/src/execution/tool-run/owner.d.ts +13 -0
  156. package/dist/src/execution/tool-run/owner.js +1 -0
  157. package/dist/src/execution/tool-run/resume-hook-step.d.ts +4 -0
  158. package/dist/src/execution/tool-run/resume-hook-step.js +1 -0
  159. package/dist/src/execution/tool-run/run-control.d.ts +18 -0
  160. package/dist/src/execution/tool-run/run-control.js +1 -0
  161. package/dist/src/execution/tool-run/start.d.ts +11 -0
  162. package/dist/src/execution/tool-run/start.js +1 -0
  163. package/dist/src/execution/tool-run/types.d.ts +21 -0
  164. package/dist/src/execution/tool-run/types.js +1 -0
  165. package/dist/src/execution/tool-run/workflow.d.ts +9 -0
  166. package/dist/src/execution/tool-run/workflow.js +1 -0
  167. package/dist/src/execution/tools/subagent/local.d.ts +3 -4
  168. package/dist/src/execution/tools/subagent/local.js +1 -1
  169. package/dist/src/execution/tools/subagent/remote.d.ts +4 -1
  170. package/dist/src/execution/tools/subagent/remote.js +1 -1
  171. package/dist/src/execution/turn-cancellation-control.d.ts +2 -0
  172. package/dist/src/execution/turn-cancellation-control.js +1 -1
  173. package/dist/src/execution/turn-control-receiver.js +1 -1
  174. package/dist/src/execution/turn-dispatch.d.ts +4 -2
  175. package/dist/src/execution/turn-dispatch.js +1 -1
  176. package/dist/src/execution/turn-execution-cursor.js +1 -1
  177. package/dist/src/execution/turn-workflow.js +1 -1
  178. package/dist/src/execution/wire/session-inbox-contract.d.ts +2 -2
  179. package/dist/src/execution/wire/session-inbox-contract.js +1 -1
  180. package/dist/src/execution/wire/session-inbox-encoder.d.ts +6 -2
  181. package/dist/src/execution/wire/session-inbox-encoder.js +1 -1
  182. package/dist/src/execution/wire/session-inbox-resume.js +1 -1
  183. package/dist/src/execution/wire/session-inbox-wire.js +1 -1
  184. package/dist/src/execution/wire/session-inbox-wire.v1.js +1 -1
  185. package/dist/src/execution/wire/session-inbox-wire.v2-migration.d.ts +0 -2
  186. package/dist/src/execution/wire/session-inbox-wire.v2-migration.js +1 -1
  187. package/dist/src/execution/wire/session-inbox-wire.v2.migration.d.ts +3 -0
  188. package/dist/src/execution/wire/session-inbox-wire.v2.migration.js +1 -0
  189. package/dist/src/execution/wire/session-inbox-wire.v3.d.ts +480 -0
  190. package/dist/src/execution/wire/session-inbox-wire.v3.js +1 -0
  191. package/dist/src/execution/wire/session-inbox-wire.v3.migration.d.ts +3 -0
  192. package/dist/src/execution/wire/session-inbox-wire.v3.migration.js +1 -0
  193. package/dist/src/execution/workflow-entry-finalization.d.ts +22 -0
  194. package/dist/src/execution/workflow-entry-finalization.js +1 -0
  195. package/dist/src/execution/workflow-entry.d.ts +1 -1
  196. package/dist/src/execution/workflow-entry.js +1 -1
  197. package/dist/src/execution/workflow-registry.d.ts +5 -0
  198. package/dist/src/execution/workflow-registry.js +1 -0
  199. package/dist/src/execution/workflow-runtime.d.ts +9 -11
  200. package/dist/src/execution/workflow-runtime.js +1 -1
  201. package/dist/src/execution/workflow-steps.js +1 -1
  202. package/dist/src/execution/workflow-webhook-route.d.ts +4 -0
  203. package/dist/src/execution/workflow-webhook-route.js +1 -0
  204. package/dist/src/framework/sources/registry.js +1 -1
  205. package/dist/src/harness/advertised-tools.d.ts +3 -0
  206. package/dist/src/harness/advertised-tools.js +1 -1
  207. package/dist/src/harness/approval-delivery-coordinator.d.ts +6 -0
  208. package/dist/src/harness/approval-delivery-coordinator.js +1 -1
  209. package/dist/src/harness/attachment-staging.js +1 -1
  210. package/dist/src/harness/background-tools.d.ts +2 -0
  211. package/dist/src/harness/emission.js +1 -1
  212. package/dist/src/harness/execute-tool.d.ts +2 -28
  213. package/dist/src/harness/hitl/pending-input-resolution.js +1 -1
  214. package/dist/src/harness/input-extraction.d.ts +3 -0
  215. package/dist/src/harness/input-extraction.js +1 -1
  216. package/dist/src/harness/input-requests.js +1 -1
  217. package/dist/src/harness/messages.js +1 -1
  218. package/dist/src/harness/proxy-input-requests.d.ts +10 -0
  219. package/dist/src/harness/proxy-input-requests.js +1 -1
  220. package/dist/src/harness/runtime-actions.d.ts +11 -3
  221. package/dist/src/harness/runtime-actions.js +1 -1
  222. package/dist/src/harness/session-limit-enforcement.js +1 -1
  223. package/dist/src/harness/stale-input-responses.d.ts +2 -1
  224. package/dist/src/harness/stale-input-responses.js +1 -1
  225. package/dist/src/harness/subagent-depth.d.ts +3 -4
  226. package/dist/src/harness/subagent-depth.js +1 -1
  227. package/dist/src/harness/tool-loop.js +2 -2
  228. package/dist/src/harness/tool-runs.d.ts +21 -0
  229. package/dist/src/harness/tool-runs.js +1 -0
  230. package/dist/src/harness/tools.d.ts +0 -2
  231. package/dist/src/harness/tools.js +1 -1
  232. package/dist/src/harness/types.d.ts +6 -7
  233. package/dist/src/harness/workflow-runtime-action-state.d.ts +3 -3
  234. package/dist/src/harness/workflow-runtime-action-state.js +1 -1
  235. package/dist/src/harness/workflow-sandbox.js +1 -1
  236. package/dist/src/harness/workflow-subagent-limit.d.ts +4 -4
  237. package/dist/src/instrumentation/ai-sdk-telemetry.d.ts +1 -0
  238. package/dist/src/instrumentation/ai-sdk-telemetry.js +1 -1
  239. package/dist/src/instrumentation/content-policy.d.ts +3 -1
  240. package/dist/src/instrumentation/content-policy.js +1 -1
  241. package/dist/src/instrumentation/runtime.d.ts +5 -2
  242. package/dist/src/instrumentation/runtime.js +1 -1
  243. package/dist/src/internal/application/build-output-environment.d.ts +2 -0
  244. package/dist/src/internal/application/build-output-environment.js +1 -0
  245. package/dist/src/internal/application/package.js +1 -1
  246. package/dist/src/internal/application/paths.d.ts +1 -2
  247. package/dist/src/internal/application/paths.js +1 -1
  248. package/dist/src/internal/attachments/errors.d.ts +3 -0
  249. package/dist/src/internal/authored-definition/schema-backed.d.ts +6 -2
  250. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  251. package/dist/src/internal/authored-module-loader.d.ts +7 -1
  252. package/dist/src/internal/authored-module-loader.js +3 -3
  253. package/dist/src/internal/authored-package-boundary.js +1 -1
  254. package/dist/src/internal/authored-runtime-modules.d.ts +2 -0
  255. package/dist/src/internal/authored-runtime-modules.js +1 -1
  256. package/dist/src/internal/client-context.d.ts +2 -0
  257. package/dist/src/internal/client-context.js +1 -0
  258. package/dist/src/internal/nitro/dev-client-address.d.ts +2 -0
  259. package/dist/src/internal/nitro/dev-client-address.js +1 -1
  260. package/dist/src/internal/nitro/development-generation.d.ts +2 -0
  261. package/dist/src/internal/nitro/development-generation.js +1 -1
  262. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  263. package/dist/src/internal/nitro/host/dev-authored-source-watcher.d.ts +2 -2
  264. package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
  265. package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
  266. package/dist/src/internal/nitro/host/start-development-server.js +2 -2
  267. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  268. package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
  269. package/dist/src/internal/workflow-bundle/authored-workflow-directives.d.ts +17 -0
  270. package/dist/src/internal/workflow-bundle/authored-workflow-directives.js +1 -0
  271. package/dist/src/internal/workflow-bundle/authored-workflow-modules.d.ts +19 -0
  272. package/dist/src/internal/workflow-bundle/authored-workflow-modules.js +1 -0
  273. package/dist/src/internal/workflow-bundle/builder-support.d.ts +17 -2
  274. package/dist/src/internal/workflow-bundle/builder-support.js +4 -3
  275. package/dist/src/internal/workflow-bundle/builder.d.ts +2 -2
  276. package/dist/src/internal/workflow-bundle/builder.js +2 -2
  277. package/dist/src/internal/workflow-bundle/dynamic-capability-transform-plugin.d.ts +2 -0
  278. package/dist/src/internal/workflow-bundle/dynamic-capability-transform-plugin.js +1 -1
  279. package/dist/src/internal/workflow-bundle/dynamic-tool-ast-references.d.ts +3 -0
  280. package/dist/src/internal/workflow-bundle/dynamic-tool-transform.d.ts +1 -1
  281. package/dist/src/internal/workflow-bundle/dynamic-tool-transform.js +1 -1
  282. package/dist/src/internal/workflow-bundle/workflow-builders.d.ts +6 -2
  283. package/dist/src/internal/workflow-bundle/workflow-builders.js +1 -1
  284. package/dist/src/internal/workflow-bundle/workflow-core-shim.d.ts +3 -0
  285. package/dist/src/internal/workflow-bundle/workflow-core-shim.js +1 -1
  286. package/dist/src/internal/workflow-bundle/workflow-directive-ast.d.ts +7 -0
  287. package/dist/src/internal/workflow-bundle/workflow-directive-ast.js +1 -0
  288. package/dist/src/internal/workflow-bundle/workflow-transformer.d.ts +15 -1
  289. package/dist/src/internal/workflow-bundle/workflow-transformer.js +4 -4
  290. package/dist/src/packages/eve-catalog/src/index.js +1 -1
  291. package/dist/src/protocol/baggage.d.ts +6 -0
  292. package/dist/src/protocol/baggage.js +1 -0
  293. package/dist/src/protocol/routes.d.ts +2 -2
  294. package/dist/src/public/channels/slack/attachments.js +1 -1
  295. package/dist/src/public/channels/teams/attachments.d.ts +2 -2
  296. package/dist/src/public/channels/teams/attachments.js +1 -1
  297. package/dist/src/public/channels/teams/teamsChannel.js +1 -1
  298. package/dist/src/public/channels/telegram/attachments.js +1 -1
  299. package/dist/src/public/definitions/remote-agent.d.ts +6 -3
  300. package/dist/src/public/local-dev.d.ts +9 -0
  301. package/dist/src/public/local-dev.js +1 -0
  302. package/dist/src/public/next/vercel-output-config.js +1 -1
  303. package/dist/src/public/workflow/index.d.ts +3 -0
  304. package/dist/src/public/workflow/index.js +1 -0
  305. package/dist/src/public/workflow-modules.d.js +1 -0
  306. package/dist/src/public/workflow-modules.d.ts +11 -0
  307. package/dist/src/runtime/actions/keys.d.ts +3 -0
  308. package/dist/src/runtime/actions/keys.js +1 -1
  309. package/dist/src/runtime/agent/bootstrap.js +1 -1
  310. package/dist/src/runtime/loaders/bundled-artifacts.js +1 -1
  311. package/dist/src/runtime/local-dev-capability.d.ts +55 -0
  312. package/dist/src/runtime/local-dev-capability.js +1 -0
  313. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  314. package/dist/src/runtime/resolve-agent.js +1 -1
  315. package/dist/src/runtime/resolve-tool.js +1 -1
  316. package/dist/src/runtime/sessions/runtime-session.d.ts +1 -0
  317. package/dist/src/runtime/sessions/runtime-session.js +1 -1
  318. package/dist/src/runtime/sessions/turn.d.ts +3 -0
  319. package/dist/src/runtime/subagents/registry.js +1 -1
  320. package/dist/src/runtime/tools/registry.d.ts +1 -0
  321. package/dist/src/runtime/tools/registry.js +1 -1
  322. package/dist/src/runtime/types.d.ts +2 -2
  323. package/dist/src/services/dev-client/client-options.d.ts +1 -0
  324. package/dist/src/services/dev-client/client-options.js +1 -1
  325. package/dist/src/services/dev-client/runtime-artifacts.d.ts +2 -0
  326. package/dist/src/services/dev-client/runtime-artifacts.js +1 -1
  327. package/dist/src/setup/connection-connector.d.ts +4 -2
  328. package/dist/src/setup/connection-connector.js +2 -2
  329. package/dist/src/setup/flows/login.js +1 -1
  330. package/dist/src/setup/flows/model.js +1 -1
  331. package/dist/src/setup/flows/provider.d.ts +5 -0
  332. package/dist/src/setup/flows/provider.js +4 -4
  333. package/dist/src/setup/flows/registry-session.d.ts +24 -7
  334. package/dist/src/setup/flows/registry-session.js +1 -1
  335. package/dist/src/setup/flows/registry.d.ts +35 -29
  336. package/dist/src/setup/flows/registry.js +2 -1
  337. package/dist/src/setup/integrations/web/setup.d.ts +0 -2
  338. package/dist/src/setup/integrations/web/setup.js +1 -1
  339. package/dist/src/setup/prompter.d.ts +24 -4
  340. package/dist/src/setup/prompter.js +1 -1
  341. package/dist/src/setup/scaffold/create/project.js +2 -2
  342. package/dist/src/setup/vercel-project.js +0 -0
  343. package/dist/src/shared/dispatch-action.d.ts +30 -0
  344. package/dist/src/shared/dispatch-action.js +1 -0
  345. package/dist/src/shared/forwarded-trace-policy.d.ts +28 -0
  346. package/dist/src/shared/forwarded-trace-policy.js +1 -0
  347. package/dist/src/shared/instrumentation-decision.d.ts +3 -0
  348. package/dist/src/shared/instrumentation-decision.js +1 -1
  349. package/dist/src/shared/workflow-sandbox.d.ts +1 -1
  350. package/dist/src/svelte/index.js +1 -1
  351. package/dist/src/svelte/use-eve-agent.js +1 -1
  352. package/dist/src/tasks/json.js +1 -1
  353. package/dist/src/tools/behavior.d.ts +61 -0
  354. package/dist/src/tools/behavior.js +1 -0
  355. package/dist/src/tools/definition.d.ts +39 -3
  356. package/dist/src/tools/durable-callbacks.d.ts +1 -0
  357. package/dist/src/tools/framework/agent.d.ts +2 -11
  358. package/dist/src/tools/framework/agent.js +1 -1
  359. package/dist/src/tools/framework/ask-question.d.ts +2 -14
  360. package/dist/src/tools/framework/ask-question.js +1 -1
  361. package/dist/src/tools/framework/task-cancel.d.ts +2 -7
  362. package/dist/src/tools/framework/task-cancel.js +1 -1
  363. package/dist/src/tools/framework/task-contract.d.ts +0 -2
  364. package/dist/src/tools/framework/task-contract.js +1 -1
  365. package/dist/src/tools/framework/task-update.d.ts +2 -7
  366. package/dist/src/tools/framework/task-update.js +1 -1
  367. package/dist/src/tools/native-definition.d.ts +6 -0
  368. package/dist/src/tools/native-definition.js +1 -0
  369. package/dist/src/tools/provided/load-skill.js +1 -1
  370. package/dist/src/tracing/agent-approval-instrumentation.js +1 -1
  371. package/dist/src/tracing/agent-channel-delivery-instrumentation.js +1 -1
  372. package/dist/src/tracing/agent-otel-provider.js +2 -2
  373. package/dist/src/tracing/agent-otel-session-context.js +1 -1
  374. package/dist/src/tracing/agent-tool-instrumentation.js +1 -1
  375. package/dist/src/tracing/agent-trace-context-store.d.ts +1 -1
  376. package/dist/src/tracing/agent-trace-context-store.js +1 -1
  377. package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
  378. package/dist/src/tracing/otel-declaration.d.ts +5 -3
  379. package/dist/src/tracing/otel-registration.d.ts +3 -1
  380. package/dist/src/tracing/otel-registration.js +1 -1
  381. package/dist/src/vue/index.js +1 -1
  382. package/dist/src/vue/use-eve-agent.js +1 -1
  383. package/docs/channels/custom.mdx +2 -0
  384. package/docs/channels/eve.mdx +5 -1
  385. package/docs/channels/teams.mdx +6 -1
  386. package/docs/concepts/sessions-runs-and-streaming.md +4 -2
  387. package/docs/guides/auth-and-route-protection.md +5 -1
  388. package/docs/guides/client/messages.mdx +6 -0
  389. package/docs/guides/dev-tui.md +30 -18
  390. package/docs/guides/remote-agents.md +25 -0
  391. package/docs/reference/cli.md +2 -2
  392. package/docs/reference/typescript-api.md +24 -0
  393. package/docs/tools/meta.json +1 -1
  394. package/docs/tools/overview.mdx +7 -0
  395. package/docs/tools/workflows.mdx +288 -0
  396. package/package.json +17 -1
  397. package/dist/src/execution/tools/tasks.d.ts +0 -18
  398. package/dist/src/execution/tools/tasks.js +0 -1
  399. package/dist/src/internal/authored-directive-prologue.d.ts +0 -4
  400. package/dist/src/internal/authored-directive-prologue.js +0 -1
@@ -1 +1 @@
1
- import{z}from"#compiled/zod/index.js";import{discoverDiagnosticsSummarySchema}from"#discover/diagnostics.js";import{compiledRemoteAgentNodeSchema}from"#compiler/remote-agent-node.js";import{jsonObjectSchema}from"#shared/json-schemas.js";import{validateCompiledAgentManifest,validateCompiledAgentResources}from"#compiler/validate-artifact.js";const COMPILED_AGENT_MANIFEST_KIND=`eve-agent-compiled-manifest`,ROOT_COMPILED_AGENT_NODE_ID=`__root__`,COMPILED_AGENT_MANIFEST_VERSION=45,agentSourceOwnerSchema=z.discriminatedUnion(`kind`,[z.object({kind:z.literal(`application`)}).strict(),z.object({feature:z.string().min(1),kind:z.literal(`framework`)}).strict(),z.object({kind:z.literal(`extension`),namespace:z.string().min(1),packageName:z.string().min(1)}).strict()]),moduleSourceRefSchema=z.object({exportName:z.string().optional(),sourceKind:z.literal(`module`),logicalPath:z.string(),sourceId:z.string()}).strict(),filesystemModuleBackingSchema=z.object({externalDependencies:z.array(z.string()).readonly(),extensionScope:z.object({namespace:z.string(),sourceRoot:z.string()}).strict().optional(),kind:z.literal(`filesystem`),sourcePath:z.string()}).strict(),programmaticModuleBackingSchema=z.object({dependencies:z.record(z.string(),z.string()).readonly().optional(),kind:z.literal(`programmatic`),moduleId:z.string(),parameters:jsonObjectSchema.optional(),registryId:z.string(),revision:z.string(),semanticRevision:z.string().optional()}).strict(),resourceSourceBackingSchema=z.object({kind:z.literal(`resource`),sourcePath:z.string()}).strict(),agentModuleBackingSchema=z.discriminatedUnion(`kind`,[filesystemModuleBackingSchema,programmaticModuleBackingSchema]),compiledModuleBindingSchema=z.object({backing:agentModuleBackingSchema,logicalPath:z.string(),owner:agentSourceOwnerSchema,usage:z.object({compile:z.boolean(),runtimeEntry:z.boolean()}).strict()}).strict(),agentSourceDescriptorSchema=z.object({backing:z.discriminatedUnion(`kind`,[filesystemModuleBackingSchema,programmaticModuleBackingSchema,resourceSourceBackingSchema]),form:z.enum([`derived`,`direct`]),layer:z.enum([`framework-default`,`extension-package`,`extension-override`,`application`]),logicalPath:z.string(),owner:agentSourceOwnerSchema,sourceId:z.string()}).strict(),agentSourceCompositionSchema=z.object({entries:z.array(z.discriminatedUnion(`kind`,[z.object({kind:z.literal(`shadowed`),source:agentSourceDescriptorSchema,winnerSourceId:z.string()}).strict(),z.object({kind:z.literal(`disabled`),source:agentSourceDescriptorSchema}).strict()])).readonly()}).strict(),compiledDynamicModelDefinitionSchema=z.object({eventNames:z.array(z.string()).readonly(),exportName:z.string().optional(),sourceKind:z.literal(`module`),logicalPath:z.string(),sourceId:z.string()}).strict(),channelMethodSchema=z.union([z.literal(`GET`),z.literal(`HEAD`),z.literal(`POST`),z.literal(`PUT`),z.literal(`PATCH`),z.literal(`DELETE`),z.literal(`OPTIONS`),z.literal(`WEBSOCKET`)]),compiledChannelCorsSchema=z.object({origin:z.union([z.literal(`*`),z.literal(`null`),z.array(z.string())]).optional(),methods:z.union([z.literal(`*`),z.array(z.string())]).optional(),allowHeaders:z.union([z.literal(`*`),z.array(z.string())]).optional(),exposeHeaders:z.union([z.literal(`*`),z.array(z.string())]).optional(),credentials:z.boolean().optional(),maxAge:z.union([z.string(),z.literal(!1)]).optional(),preflight:z.object({statusCode:z.number().int().min(100).max(599).optional()}).strict().optional()}).strict(),compiledChannelDefinitionSchema=z.object({kind:z.literal(`channel`),name:z.string(),logicalPath:z.string(),method:channelMethodSchema,urlPath:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`),exportName:z.string().optional(),adapterKind:z.string().optional(),cors:compiledChannelCorsSchema.optional()}).strict(),compiledChannelPreflightDefinitionSchema=z.object({cors:compiledChannelCorsSchema,method:z.literal(`OPTIONS`),sourceIds:z.array(z.string()).readonly(),urlPath:z.string()}).strict(),compiledShadowedChannelRouteSchema=z.object({method:channelMethodSchema,source:agentSourceDescriptorSchema,urlPath:z.string(),winnerSourceId:z.string()}).strict(),compiledChannelRoutePlanSchema=z.object({effective:z.array(compiledChannelDefinitionSchema).readonly(),preflight:z.array(compiledChannelPreflightDefinitionSchema).readonly(),shadowed:z.array(compiledShadowedChannelRouteSchema).readonly()}).strict(),modelRoutingSchema=z.union([z.object({kind:z.literal(`gateway`),target:z.string(),byok:z.string().optional()}).strict(),z.object({kind:z.literal(`external`),provider:z.string()}).strict()]),compiledRuntimeModelReferenceSchema=z.object({contextWindowTokens:z.number().int().positive().optional(),id:z.string(),maxOutputTokens:z.number().int().positive().optional(),source:moduleSourceRefSchema.optional(),providerOptions:z.record(z.string(),jsonObjectSchema).optional(),routing:modelRoutingSchema}).strict(),compiledAgentBuildDefinitionSchema=z.object({externalDependencies:z.array(z.string()).optional()}).strict(),compiledAgentWorkflowWorldDefinitionSchema=z.string(),compiledAgentWorkflowDefinitionSchema=z.object({world:compiledAgentWorkflowWorldDefinitionSchema.optional()}).strict(),compiledAgentCompactionDefinitionSchema=z.object({model:compiledRuntimeModelReferenceSchema.optional(),thresholdPercent:z.number().finite().min(0).max(1).optional()}).strict(),sessionTokenLimitSchema=z.union([z.number().int().positive(),z.literal(!1)]),sessionTimeoutSchema=z.union([z.number().int().positive(),z.literal(!1)]),compiledAgentLimitsDefinitionSchema=z.object({maxInputTokensPerSession:sessionTokenLimitSchema.optional(),maxOutputTokensPerSession:sessionTokenLimitSchema.optional(),sessionTimeoutMs:sessionTimeoutSchema.optional()}).strict(),compiledWorkflowToolDefinitionSchema=z.object({exportName:z.string().optional(),logicalPath:z.string(),maxSubagents:z.number().int().positive().optional(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledAgentConfigBaseFields={build:compiledAgentBuildDefinitionSchema.optional(),compaction:compiledAgentCompactionDefinitionSchema.optional(),description:z.string().optional(),experimental:z.object({instrumentationProviders:z.boolean().optional(),tasks:z.boolean().optional(),workflow:compiledAgentWorkflowDefinitionSchema.optional()}).strict().optional(),name:z.string(),outputSchema:jsonObjectSchema.optional(),reasoning:z.enum([`provider-default`,`none`,`minimal`,`low`,`medium`,`high`,`xhigh`]).optional(),source:moduleSourceRefSchema,limits:compiledAgentLimitsDefinitionSchema.optional()},compiledAgentConfigSchema=z.union([z.object({...compiledAgentConfigBaseFields,model:compiledRuntimeModelReferenceSchema}).strict(),z.object({...compiledAgentConfigBaseFields,dynamicModel:compiledDynamicModelDefinitionSchema}).strict()]),compiledInstructionsBaseFields={content:z.string(),name:z.string(),logicalPath:z.string(),role:z.enum([`system`,`user`]),sourceId:z.string()},compiledInstructionsSchema=z.discriminatedUnion(`sourceKind`,[z.object({...compiledInstructionsBaseFields,owner:agentSourceOwnerSchema,sourceKind:z.literal(`markdown`)}).strict(),z.object({...compiledInstructionsBaseFields,sourceKind:z.literal(`module`)}).strict()]),compiledSkillBaseFields={name:z.string(),description:z.string(),license:z.string().optional(),markdown:z.string(),metadata:z.record(z.string(),z.string()).optional(),sourceId:z.string(),logicalPath:z.string()},compiledSkillSourceSchema=z.discriminatedUnion(`sourceKind`,[z.object({...compiledSkillBaseFields,owner:agentSourceOwnerSchema,sourceKind:z.literal(`markdown`)}).strict(),z.object({...compiledSkillBaseFields,sourceKind:z.literal(`module`),exportName:z.string().optional()}).strict(),z.object({...compiledSkillBaseFields,owner:agentSourceOwnerSchema,sourceKind:z.literal(`skill-package`),skillId:z.string(),skillFilePath:z.string(),rootPath:z.string(),assetsPath:z.string().optional(),referencesPath:z.string().optional(),scriptsPath:z.string().optional()}).strict()]),compiledScheduleBaseFields={cron:z.string(),hasRun:z.boolean(),name:z.string(),logicalPath:z.string(),markdown:z.string().optional(),sourceId:z.string()},compiledScheduleDefinitionSchema=z.discriminatedUnion(`sourceKind`,[z.object({...compiledScheduleBaseFields,owner:agentSourceOwnerSchema,sourceKind:z.literal(`markdown`)}).strict(),z.object({...compiledScheduleBaseFields,sourceKind:z.literal(`module`)}).strict()]),compiledSandboxDefinitionSchema=z.object({backendName:z.string().optional(),description:z.string().optional(),inheritsParent:z.boolean().optional(),exportName:z.string().optional(),logicalPath:z.string(),revalidationKey:z.string().optional(),sourceHash:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledSandboxWorkspaceSchema=z.object({logicalPath:z.string(),rootEntries:z.array(z.string()).readonly(),sourceId:z.string(),sourcePath:z.string()}).strict(),compiledWorkspaceResourceRootSchema=z.object({contentHash:z.string().optional(),logicalPath:z.string(),rootEntries:z.array(z.string()).readonly()}).strict(),compiledConnectionDefinitionSchema=z.object({connectionName:z.string(),description:z.string(),exportName:z.string().optional(),logicalPath:z.string(),protocol:z.enum([`mcp`,`openapi`]).default(`mcp`),sourceId:z.string(),sourceKind:z.literal(`module`),url:z.string(),vercelConnect:z.object({connector:z.string()}).strict().optional()}).strict(),compiledDynamicConnectionDefinitionSchema=z.object({eventNames:z.array(z.string()).readonly(),exportName:z.string().optional(),extensionNamespace:z.string().optional(),logicalPath:z.string(),slug:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledToolDefinitionSchema=z.object({description:z.string(),execution:z.literal(`background`).optional(),exportName:z.string().optional(),hasExecute:z.boolean(),hasModelOutputProjection:z.boolean(),inputSchema:jsonObjectSchema.nullable(),logicalPath:z.string(),name:z.string(),outputSchema:jsonObjectSchema.optional(),requiresApproval:z.boolean(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledDynamicToolDefinitionSchema=z.object({eventNames:z.array(z.string()).readonly(),exportName:z.string().optional(),extensionNamespace:z.string().optional(),logicalPath:z.string(),rebindMissingCallbacks:z.boolean().optional(),slug:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledMemoryDefinitionSchema=z.object({description:z.string().optional(),exportName:z.string().optional(),logicalPath:z.string(),slot:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`),visibility:z.enum([`scope`,`session`])}).strict(),compiledDynamicSkillDefinitionSchema=z.object({eventNames:z.array(z.string()).readonly(),exportName:z.string().optional(),extensionNamespace:z.string().optional(),logicalPath:z.string(),slug:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledDynamicInstructionsDefinitionSchema=z.object({eventNames:z.array(z.string()).readonly(),exportName:z.string().optional(),logicalPath:z.string(),slug:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledHookDefinitionSchema=z.object({eventNames:z.array(z.string()).readonly(),exportName:z.string().optional(),logicalPath:z.string(),slug:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledExtensionMountSchema=z.object({externalDependencies:z.array(z.string()).readonly(),namespace:z.string(),packageName:z.string(),packageNamespace:z.string(),sourceRoot:z.string(),mountSourceId:z.string(),mountLogicalPath:z.string()}).strict(),compiledAgentResourceFields={agentRoot:z.string(),appRoot:z.string(),bindings:z.record(z.string(),compiledModuleBindingSchema),channelRoutes:compiledChannelRoutePlanSchema,connections:z.array(compiledConnectionDefinitionSchema),dynamicConnections:z.array(compiledDynamicConnectionDefinitionSchema).default([]),diagnosticsSummary:discoverDiagnosticsSummarySchema,sourceComposition:agentSourceCompositionSchema,workflowTool:compiledWorkflowToolDefinitionSchema.optional(),webSearchProvider:z.enum([`exa`,`parallel`]).optional(),dynamicInstructions:z.array(compiledDynamicInstructionsDefinitionSchema).default([]),dynamicSkills:z.array(compiledDynamicSkillDefinitionSchema).default([]),dynamicTools:z.array(compiledDynamicToolDefinitionSchema).default([]),extensionMounts:z.array(compiledExtensionMountSchema).default([]),hooks:z.array(compiledHookDefinitionSchema),memories:z.array(compiledMemoryDefinitionSchema).default([]),sandbox:compiledSandboxDefinitionSchema,sandboxWorkspaces:z.array(compiledSandboxWorkspaceSchema),schedules:z.array(compiledScheduleDefinitionSchema),remoteAgents:z.array(compiledRemoteAgentNodeSchema),skills:z.array(compiledSkillSourceSchema).readonly(),instructions:z.array(compiledInstructionsSchema).readonly().default([]),instrumentation:moduleSourceRefSchema.optional(),tools:z.array(compiledToolDefinitionSchema),workspaceResourceRoot:compiledWorkspaceResourceRootSchema},compiledAgentResourcesSchema=z.object(compiledAgentResourceFields).strict(),compiledAgentNodeManifestSchema=z.object({...compiledAgentResourceFields,config:compiledAgentConfigSchema}).strict(),compiledSubagentNodeBaseFields={backing:resourceSourceBackingSchema,entryPath:z.string(),logicalPath:z.string(),name:z.string(),nodeId:z.string(),owner:agentSourceOwnerSchema,parentNodeId:z.string(),rootPath:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`),exportName:z.string().optional()},compiledDynamicSubagentDefinitionSchema=z.object({build:compiledAgentBuildDefinitionSchema.optional(),eventNames:z.array(z.string()).readonly(),exportName:z.string().optional(),logicalPath:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledSubagentNodeSchema=z.union([z.object({...compiledSubagentNodeBaseFields,agent:compiledAgentNodeManifestSchema,description:z.string()}).strict(),z.object({...compiledSubagentNodeBaseFields,agent:compiledAgentResourcesSchema,configResolver:compiledDynamicSubagentDefinitionSchema}).strict()]),compiledAgentManifestSchema=z.object({agentRoot:z.string(),appRoot:z.string(),bindings:z.record(z.string(),compiledModuleBindingSchema),extensionMounts:z.array(compiledExtensionMountSchema).default([]),channelRoutes:compiledChannelRoutePlanSchema,config:compiledAgentConfigSchema,connections:z.array(compiledConnectionDefinitionSchema),dynamicConnections:z.array(compiledDynamicConnectionDefinitionSchema).default([]),diagnosticsSummary:discoverDiagnosticsSummarySchema,sourceComposition:agentSourceCompositionSchema,workflowTool:compiledWorkflowToolDefinitionSchema.optional(),webSearchProvider:z.enum([`exa`,`parallel`]).optional(),dynamicInstructions:z.array(compiledDynamicInstructionsDefinitionSchema).default([]),dynamicSkills:z.array(compiledDynamicSkillDefinitionSchema).default([]),dynamicTools:z.array(compiledDynamicToolDefinitionSchema).default([]),hooks:z.array(compiledHookDefinitionSchema),memories:z.array(compiledMemoryDefinitionSchema).default([]),kind:z.literal(COMPILED_AGENT_MANIFEST_KIND),remoteAgents:z.array(compiledRemoteAgentNodeSchema),sandbox:compiledSandboxDefinitionSchema,sandboxWorkspaces:z.array(compiledSandboxWorkspaceSchema),schedules:z.array(compiledScheduleDefinitionSchema),skills:z.array(compiledSkillSourceSchema).readonly(),subagents:z.array(compiledSubagentNodeSchema),instructions:z.array(compiledInstructionsSchema).readonly().default([]),instrumentation:moduleSourceRefSchema.optional(),tools:z.array(compiledToolDefinitionSchema),version:z.literal(45),workspaceResourceRoot:compiledWorkspaceResourceRootSchema}).strict();function createCompiledAgentResources(e){return{agentRoot:e.agentRoot,appRoot:e.appRoot,bindings:{...e.bindings},channelRoutes:{effective:[...e.channelRoutes.effective],preflight:[...e.channelRoutes.preflight],shadowed:[...e.channelRoutes.shadowed]},connections:[...e.connections??[]],dynamicConnections:[...e.dynamicConnections??[]],diagnosticsSummary:e.diagnosticsSummary??{errors:0,warnings:0},sourceComposition:{entries:[...e.sourceComposition.entries]},workflowTool:e.workflowTool===void 0?void 0:{...e.workflowTool},webSearchProvider:e.webSearchProvider,dynamicInstructions:[...e.dynamicInstructions??[]],dynamicSkills:[...e.dynamicSkills??[]],dynamicTools:[...e.dynamicTools??[]],extensionMounts:[...e.extensionMounts??[]],hooks:[...e.hooks??[]],memories:[...e.memories??[]],instructions:[...e.instructions??[]],instrumentation:e.instrumentation===void 0?void 0:{...e.instrumentation},remoteAgents:[...e.remoteAgents??[]],sandbox:e.sandbox,sandboxWorkspaces:[...e.sandboxWorkspaces??[]],schedules:[...e.schedules??[]],skills:[...e.skills??[]],tools:[...e.tools??[]],workspaceResourceRoot:e.workspaceResourceRoot??{logicalPath:``,rootEntries:deriveResourceRootEntries({sandboxWorkspaces:e.sandboxWorkspaces,skills:e.skills})}}}function createCompiledAgentNodeManifest(e){let t={...createCompiledAgentResources(e),config:cloneCompiledAgentDefinition(e.config)};return validateCompiledAgentResources(t,{allowUnknownResourceWinners:!0}),t}function cloneCompiledAgentDefinition(e){let t={build:e.build===void 0?void 0:{externalDependencies:e.build.externalDependencies===void 0?void 0:[...e.build.externalDependencies]},compaction:{model:e.compaction?.model===void 0?void 0:cloneCompiledRuntimeModelReference(e.compaction.model),thresholdPercent:e.compaction?.thresholdPercent},description:e.description,experimental:e.experimental===void 0?void 0:{instrumentationProviders:e.experimental.instrumentationProviders,tasks:e.experimental.tasks,workflow:e.experimental.workflow===void 0?void 0:{world:e.experimental.workflow.world}},name:e.name,outputSchema:e.outputSchema,reasoning:e.reasoning,limits:e.limits===void 0?void 0:{maxInputTokensPerSession:e.limits.maxInputTokensPerSession,maxOutputTokensPerSession:e.limits.maxOutputTokensPerSession,sessionTimeoutMs:e.limits.sessionTimeoutMs},source:{...e.source}};return e.dynamicModel===void 0?{...t,model:cloneCompiledRuntimeModelReference(e.model)}:{...t,dynamicModel:{...e.dynamicModel}}}function deriveResourceRootEntries(e){let t=new Set;for(let n of e.sandboxWorkspaces??[])for(let e of n.rootEntries)t.add(e);return[...t].sort((e,t)=>e.localeCompare(t))}function createCompiledSubagentNodeId(e,t){return e===`__root__`?t:`${e}::${t}`}function createCompiledAgentManifest(e){let t={...createCompiledAgentNodeManifest(e),kind:COMPILED_AGENT_MANIFEST_KIND,extensionMounts:[...e.extensionMounts??[]],subagents:[...e.subagents??[]],version:45};return validateCompiledAgentManifest(t),t}function cloneCompiledRuntimeModelReference(e){let t={id:e.id,routing:cloneModelRouting(e.routing)};return e.contextWindowTokens!==void 0&&(t.contextWindowTokens=e.contextWindowTokens),e.maxOutputTokens!==void 0&&(t.maxOutputTokens=e.maxOutputTokens),e.providerOptions!==void 0&&(t.providerOptions={...e.providerOptions}),e.source!==void 0&&(t.source={...e.source}),t}function cloneModelRouting(e){return e.kind===`external`?{kind:`external`,provider:e.provider}:e.byok===void 0?{kind:`gateway`,target:e.target}:{kind:`gateway`,target:e.target,byok:e.byok}}export{COMPILED_AGENT_MANIFEST_KIND,COMPILED_AGENT_MANIFEST_VERSION,ROOT_COMPILED_AGENT_NODE_ID,compiledAgentManifestSchema,createCompiledAgentManifest,createCompiledAgentNodeManifest,createCompiledAgentResources,createCompiledSubagentNodeId,deriveResourceRootEntries};
1
+ import{z}from"#compiled/zod/index.js";import{discoverDiagnosticsSummarySchema}from"#discover/diagnostics.js";import{compiledRemoteAgentNodeSchema}from"#compiler/remote-agent-node.js";import{jsonObjectSchema}from"#shared/json-schemas.js";import{validateCompiledAgentManifest,validateCompiledAgentResources}from"#compiler/validate-artifact.js";const COMPILED_AGENT_MANIFEST_KIND=`eve-agent-compiled-manifest`,ROOT_COMPILED_AGENT_NODE_ID=`__root__`,COMPILED_AGENT_MANIFEST_VERSION=47,agentSourceOwnerSchema=z.discriminatedUnion(`kind`,[z.object({kind:z.literal(`application`)}).strict(),z.object({feature:z.string().min(1),kind:z.literal(`framework`)}).strict(),z.object({kind:z.literal(`extension`),namespace:z.string().min(1),packageName:z.string().min(1)}).strict()]),moduleSourceRefSchema=z.object({exportName:z.string().optional(),sourceKind:z.literal(`module`),logicalPath:z.string(),sourceId:z.string()}).strict(),filesystemModuleBackingSchema=z.object({externalDependencies:z.array(z.string()).readonly(),extensionScope:z.object({namespace:z.string(),sourceRoot:z.string()}).strict().optional(),kind:z.literal(`filesystem`),sourcePath:z.string()}).strict(),programmaticModuleBackingSchema=z.object({dependencies:z.record(z.string(),z.string()).readonly().optional(),kind:z.literal(`programmatic`),moduleId:z.string(),parameters:jsonObjectSchema.optional(),registryId:z.string(),revision:z.string(),semanticRevision:z.string().optional()}).strict(),resourceSourceBackingSchema=z.object({kind:z.literal(`resource`),sourcePath:z.string()}).strict(),agentModuleBackingSchema=z.discriminatedUnion(`kind`,[filesystemModuleBackingSchema,programmaticModuleBackingSchema]),compiledModuleBindingSchema=z.object({backing:agentModuleBackingSchema,logicalPath:z.string(),owner:agentSourceOwnerSchema,usage:z.object({compile:z.boolean(),runtimeEntry:z.boolean()}).strict()}).strict(),agentSourceDescriptorSchema=z.object({backing:z.discriminatedUnion(`kind`,[filesystemModuleBackingSchema,programmaticModuleBackingSchema,resourceSourceBackingSchema]),form:z.enum([`derived`,`direct`]),layer:z.enum([`framework-default`,`extension-package`,`extension-override`,`application`]),logicalPath:z.string(),owner:agentSourceOwnerSchema,sourceId:z.string()}).strict(),agentSourceCompositionSchema=z.object({entries:z.array(z.discriminatedUnion(`kind`,[z.object({kind:z.literal(`shadowed`),source:agentSourceDescriptorSchema,winnerSourceId:z.string()}).strict(),z.object({kind:z.literal(`disabled`),source:agentSourceDescriptorSchema}).strict()])).readonly()}).strict(),compiledDynamicModelDefinitionSchema=z.object({eventNames:z.array(z.string()).readonly(),exportName:z.string().optional(),sourceKind:z.literal(`module`),logicalPath:z.string(),sourceId:z.string()}).strict(),channelMethodSchema=z.union([z.literal(`GET`),z.literal(`HEAD`),z.literal(`POST`),z.literal(`PUT`),z.literal(`PATCH`),z.literal(`DELETE`),z.literal(`OPTIONS`),z.literal(`WEBSOCKET`)]),compiledChannelCorsSchema=z.object({origin:z.union([z.literal(`*`),z.literal(`null`),z.array(z.string())]).optional(),methods:z.union([z.literal(`*`),z.array(z.string())]).optional(),allowHeaders:z.union([z.literal(`*`),z.array(z.string())]).optional(),exposeHeaders:z.union([z.literal(`*`),z.array(z.string())]).optional(),credentials:z.boolean().optional(),maxAge:z.union([z.string(),z.literal(!1)]).optional(),preflight:z.object({statusCode:z.number().int().min(100).max(599).optional()}).strict().optional()}).strict(),compiledChannelDefinitionSchema=z.object({kind:z.literal(`channel`),name:z.string(),logicalPath:z.string(),method:channelMethodSchema,urlPath:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`),exportName:z.string().optional(),adapterKind:z.string().optional(),cors:compiledChannelCorsSchema.optional()}).strict(),compiledChannelPreflightDefinitionSchema=z.object({cors:compiledChannelCorsSchema,method:z.literal(`OPTIONS`),sourceIds:z.array(z.string()).readonly(),urlPath:z.string()}).strict(),compiledShadowedChannelRouteSchema=z.object({method:channelMethodSchema,source:agentSourceDescriptorSchema,urlPath:z.string(),winnerSourceId:z.string()}).strict(),compiledChannelRoutePlanSchema=z.object({effective:z.array(compiledChannelDefinitionSchema).readonly(),preflight:z.array(compiledChannelPreflightDefinitionSchema).readonly(),shadowed:z.array(compiledShadowedChannelRouteSchema).readonly()}).strict(),modelRoutingSchema=z.union([z.object({kind:z.literal(`gateway`),target:z.string(),byok:z.string().optional()}).strict(),z.object({kind:z.literal(`external`),provider:z.string()}).strict()]),compiledRuntimeModelReferenceSchema=z.object({contextWindowTokens:z.number().int().positive().optional(),id:z.string(),maxOutputTokens:z.number().int().positive().optional(),source:moduleSourceRefSchema.optional(),providerOptions:z.record(z.string(),jsonObjectSchema).optional(),routing:modelRoutingSchema}).strict(),compiledAgentBuildDefinitionSchema=z.object({externalDependencies:z.array(z.string()).optional()}).strict(),compiledAgentWorkflowWorldDefinitionSchema=z.string(),compiledAgentWorkflowDefinitionSchema=z.object({world:compiledAgentWorkflowWorldDefinitionSchema.optional()}).strict(),compiledAgentCompactionDefinitionSchema=z.object({model:compiledRuntimeModelReferenceSchema.optional(),thresholdPercent:z.number().finite().min(0).max(1).optional()}).strict(),sessionTokenLimitSchema=z.union([z.number().int().positive(),z.literal(!1)]),sessionTimeoutSchema=z.union([z.number().int().positive(),z.literal(!1)]),compiledAgentLimitsDefinitionSchema=z.object({maxInputTokensPerSession:sessionTokenLimitSchema.optional(),maxOutputTokensPerSession:sessionTokenLimitSchema.optional(),sessionTimeoutMs:sessionTimeoutSchema.optional()}).strict(),compiledWorkflowToolDefinitionSchema=z.object({exportName:z.string().optional(),logicalPath:z.string(),maxSubagents:z.number().int().positive().optional(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledAgentConfigBaseFields={build:compiledAgentBuildDefinitionSchema.optional(),compaction:compiledAgentCompactionDefinitionSchema.optional(),description:z.string().optional(),experimental:z.object({instrumentationProviders:z.boolean().optional(),tasks:z.boolean().optional(),workflow:compiledAgentWorkflowDefinitionSchema.optional()}).strict().optional(),name:z.string(),outputSchema:jsonObjectSchema.optional(),reasoning:z.enum([`provider-default`,`none`,`minimal`,`low`,`medium`,`high`,`xhigh`]).optional(),source:moduleSourceRefSchema,limits:compiledAgentLimitsDefinitionSchema.optional()},compiledAgentConfigSchema=z.union([z.object({...compiledAgentConfigBaseFields,model:compiledRuntimeModelReferenceSchema}).strict(),z.object({...compiledAgentConfigBaseFields,dynamicModel:compiledDynamicModelDefinitionSchema}).strict()]),compiledInstructionsBaseFields={content:z.string(),name:z.string(),logicalPath:z.string(),role:z.enum([`system`,`user`]),sourceId:z.string()},compiledInstructionsSchema=z.discriminatedUnion(`sourceKind`,[z.object({...compiledInstructionsBaseFields,owner:agentSourceOwnerSchema,sourceKind:z.literal(`markdown`)}).strict(),z.object({...compiledInstructionsBaseFields,sourceKind:z.literal(`module`)}).strict()]),compiledSkillBaseFields={name:z.string(),description:z.string(),license:z.string().optional(),markdown:z.string(),metadata:z.record(z.string(),z.string()).optional(),sourceId:z.string(),logicalPath:z.string()},compiledSkillSourceSchema=z.discriminatedUnion(`sourceKind`,[z.object({...compiledSkillBaseFields,owner:agentSourceOwnerSchema,sourceKind:z.literal(`markdown`)}).strict(),z.object({...compiledSkillBaseFields,sourceKind:z.literal(`module`),exportName:z.string().optional()}).strict(),z.object({...compiledSkillBaseFields,owner:agentSourceOwnerSchema,sourceKind:z.literal(`skill-package`),skillId:z.string(),skillFilePath:z.string(),rootPath:z.string(),assetsPath:z.string().optional(),referencesPath:z.string().optional(),scriptsPath:z.string().optional()}).strict()]),compiledScheduleBaseFields={cron:z.string(),hasRun:z.boolean(),name:z.string(),logicalPath:z.string(),markdown:z.string().optional(),sourceId:z.string()},compiledScheduleDefinitionSchema=z.discriminatedUnion(`sourceKind`,[z.object({...compiledScheduleBaseFields,owner:agentSourceOwnerSchema,sourceKind:z.literal(`markdown`)}).strict(),z.object({...compiledScheduleBaseFields,sourceKind:z.literal(`module`)}).strict()]),compiledSandboxDefinitionSchema=z.object({backendName:z.string().optional(),description:z.string().optional(),inheritsParent:z.boolean().optional(),exportName:z.string().optional(),logicalPath:z.string(),revalidationKey:z.string().optional(),sourceHash:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledSandboxWorkspaceSchema=z.object({logicalPath:z.string(),rootEntries:z.array(z.string()).readonly(),sourceId:z.string(),sourcePath:z.string()}).strict(),compiledWorkspaceResourceRootSchema=z.object({contentHash:z.string().optional(),logicalPath:z.string(),rootEntries:z.array(z.string()).readonly()}).strict(),compiledConnectionDefinitionSchema=z.object({connectionName:z.string(),description:z.string(),exportName:z.string().optional(),logicalPath:z.string(),protocol:z.enum([`mcp`,`openapi`]).default(`mcp`),sourceId:z.string(),sourceKind:z.literal(`module`),url:z.string(),vercelConnect:z.object({connector:z.string()}).strict().optional()}).strict(),compiledDynamicConnectionDefinitionSchema=z.object({eventNames:z.array(z.string()).readonly(),exportName:z.string().optional(),extensionNamespace:z.string().optional(),logicalPath:z.string(),slug:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledToolBehaviorSchema=z.object({availability:z.array(z.enum([`delegated-task-child`,`requires-request-input`,`root-session`])).readonly(),handling:z.discriminatedUnion(`kind`,[z.object({action:z.enum([`self-agent`,`task-cancel`,`task-update`]),kind:z.literal(`dispatch`)}).strict(),z.object({kind:z.literal(`provider-tool`),provider:z.enum([`exa`,`parallel`])}).strict(),z.object({kind:z.literal(`request-input`),request:z.literal(`question`)}).strict(),z.object({kind:z.literal(`workflow-tool`),workflowId:z.string()}).strict()]).optional(),presentation:z.literal(`load-skill`).optional()}).strict(),compiledToolDefinitionSchema=z.object({behavior:compiledToolBehaviorSchema.optional(),description:z.string(),execution:z.literal(`background`).optional(),exportName:z.string().optional(),hasExecute:z.boolean(),hasModelOutputProjection:z.boolean(),inputSchema:jsonObjectSchema.nullable(),logicalPath:z.string(),name:z.string(),outputSchema:jsonObjectSchema.optional(),requiresApproval:z.boolean(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledDynamicToolDefinitionSchema=z.object({eventNames:z.array(z.string()).readonly(),exportName:z.string().optional(),extensionNamespace:z.string().optional(),logicalPath:z.string(),rebindMissingCallbacks:z.boolean().optional(),slug:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledMemoryDefinitionSchema=z.object({description:z.string().optional(),exportName:z.string().optional(),logicalPath:z.string(),slot:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`),visibility:z.enum([`scope`,`session`])}).strict(),compiledDynamicSkillDefinitionSchema=z.object({eventNames:z.array(z.string()).readonly(),exportName:z.string().optional(),extensionNamespace:z.string().optional(),logicalPath:z.string(),slug:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledDynamicInstructionsDefinitionSchema=z.object({eventNames:z.array(z.string()).readonly(),exportName:z.string().optional(),logicalPath:z.string(),slug:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledHookDefinitionSchema=z.object({eventNames:z.array(z.string()).readonly(),exportName:z.string().optional(),logicalPath:z.string(),slug:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledExtensionMountSchema=z.object({externalDependencies:z.array(z.string()).readonly(),namespace:z.string(),packageName:z.string(),packageNamespace:z.string(),sourceRoot:z.string(),mountSourceId:z.string(),mountLogicalPath:z.string()}).strict(),compiledAgentResourceFields={agentRoot:z.string(),appRoot:z.string(),bindings:z.record(z.string(),compiledModuleBindingSchema),channelRoutes:compiledChannelRoutePlanSchema,connections:z.array(compiledConnectionDefinitionSchema),dynamicConnections:z.array(compiledDynamicConnectionDefinitionSchema).default([]),diagnosticsSummary:discoverDiagnosticsSummarySchema,sourceComposition:agentSourceCompositionSchema,workflowTool:compiledWorkflowToolDefinitionSchema.optional(),dynamicInstructions:z.array(compiledDynamicInstructionsDefinitionSchema).default([]),dynamicSkills:z.array(compiledDynamicSkillDefinitionSchema).default([]),dynamicTools:z.array(compiledDynamicToolDefinitionSchema).default([]),extensionMounts:z.array(compiledExtensionMountSchema).default([]),hooks:z.array(compiledHookDefinitionSchema),memories:z.array(compiledMemoryDefinitionSchema).default([]),sandbox:compiledSandboxDefinitionSchema,sandboxWorkspaces:z.array(compiledSandboxWorkspaceSchema),schedules:z.array(compiledScheduleDefinitionSchema),remoteAgents:z.array(compiledRemoteAgentNodeSchema),skills:z.array(compiledSkillSourceSchema).readonly(),instructions:z.array(compiledInstructionsSchema).readonly().default([]),instrumentation:moduleSourceRefSchema.optional(),tools:z.array(compiledToolDefinitionSchema),workspaceResourceRoot:compiledWorkspaceResourceRootSchema},compiledAgentResourcesSchema=z.object(compiledAgentResourceFields).strict(),compiledAgentNodeManifestSchema=z.object({...compiledAgentResourceFields,config:compiledAgentConfigSchema}).strict(),compiledSubagentNodeBaseFields={backing:resourceSourceBackingSchema,entryPath:z.string(),logicalPath:z.string(),name:z.string(),nodeId:z.string(),owner:agentSourceOwnerSchema,parentNodeId:z.string(),rootPath:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`),exportName:z.string().optional()},compiledDynamicSubagentDefinitionSchema=z.object({build:compiledAgentBuildDefinitionSchema.optional(),eventNames:z.array(z.string()).readonly(),exportName:z.string().optional(),logicalPath:z.string(),sourceId:z.string(),sourceKind:z.literal(`module`)}).strict(),compiledSubagentNodeSchema=z.union([z.object({...compiledSubagentNodeBaseFields,agent:compiledAgentNodeManifestSchema,description:z.string()}).strict(),z.object({...compiledSubagentNodeBaseFields,agent:compiledAgentResourcesSchema,configResolver:compiledDynamicSubagentDefinitionSchema}).strict()]),compiledAgentManifestSchema=z.object({agentRoot:z.string(),appRoot:z.string(),bindings:z.record(z.string(),compiledModuleBindingSchema),extensionMounts:z.array(compiledExtensionMountSchema).default([]),channelRoutes:compiledChannelRoutePlanSchema,config:compiledAgentConfigSchema,connections:z.array(compiledConnectionDefinitionSchema),dynamicConnections:z.array(compiledDynamicConnectionDefinitionSchema).default([]),diagnosticsSummary:discoverDiagnosticsSummarySchema,sourceComposition:agentSourceCompositionSchema,workflowTool:compiledWorkflowToolDefinitionSchema.optional(),dynamicInstructions:z.array(compiledDynamicInstructionsDefinitionSchema).default([]),dynamicSkills:z.array(compiledDynamicSkillDefinitionSchema).default([]),dynamicTools:z.array(compiledDynamicToolDefinitionSchema).default([]),hooks:z.array(compiledHookDefinitionSchema),memories:z.array(compiledMemoryDefinitionSchema).default([]),kind:z.literal(COMPILED_AGENT_MANIFEST_KIND),remoteAgents:z.array(compiledRemoteAgentNodeSchema),sandbox:compiledSandboxDefinitionSchema,sandboxWorkspaces:z.array(compiledSandboxWorkspaceSchema),schedules:z.array(compiledScheduleDefinitionSchema),skills:z.array(compiledSkillSourceSchema).readonly(),subagents:z.array(compiledSubagentNodeSchema),instructions:z.array(compiledInstructionsSchema).readonly().default([]),instrumentation:moduleSourceRefSchema.optional(),tools:z.array(compiledToolDefinitionSchema),version:z.literal(47),workspaceResourceRoot:compiledWorkspaceResourceRootSchema}).strict();function createCompiledAgentResources(e){return{agentRoot:e.agentRoot,appRoot:e.appRoot,bindings:{...e.bindings},channelRoutes:{effective:[...e.channelRoutes.effective],preflight:[...e.channelRoutes.preflight],shadowed:[...e.channelRoutes.shadowed]},connections:[...e.connections??[]],dynamicConnections:[...e.dynamicConnections??[]],diagnosticsSummary:e.diagnosticsSummary??{errors:0,warnings:0},sourceComposition:{entries:[...e.sourceComposition.entries]},workflowTool:e.workflowTool===void 0?void 0:{...e.workflowTool},dynamicInstructions:[...e.dynamicInstructions??[]],dynamicSkills:[...e.dynamicSkills??[]],dynamicTools:[...e.dynamicTools??[]],extensionMounts:[...e.extensionMounts??[]],hooks:[...e.hooks??[]],memories:[...e.memories??[]],instructions:[...e.instructions??[]],instrumentation:e.instrumentation===void 0?void 0:{...e.instrumentation},remoteAgents:[...e.remoteAgents??[]],sandbox:e.sandbox,sandboxWorkspaces:[...e.sandboxWorkspaces??[]],schedules:[...e.schedules??[]],skills:[...e.skills??[]],tools:[...e.tools??[]],workspaceResourceRoot:e.workspaceResourceRoot??{logicalPath:``,rootEntries:deriveResourceRootEntries({sandboxWorkspaces:e.sandboxWorkspaces,skills:e.skills})}}}function createCompiledAgentNodeManifest(e){let t={...createCompiledAgentResources(e),config:cloneCompiledAgentDefinition(e.config)};return validateCompiledAgentResources(t,{allowUnknownResourceWinners:!0}),t}function cloneCompiledAgentDefinition(e){let t={build:e.build===void 0?void 0:{externalDependencies:e.build.externalDependencies===void 0?void 0:[...e.build.externalDependencies]},compaction:{model:e.compaction?.model===void 0?void 0:cloneCompiledRuntimeModelReference(e.compaction.model),thresholdPercent:e.compaction?.thresholdPercent},description:e.description,experimental:e.experimental===void 0?void 0:{instrumentationProviders:e.experimental.instrumentationProviders,tasks:e.experimental.tasks,workflow:e.experimental.workflow===void 0?void 0:{world:e.experimental.workflow.world}},name:e.name,outputSchema:e.outputSchema,reasoning:e.reasoning,limits:e.limits===void 0?void 0:{maxInputTokensPerSession:e.limits.maxInputTokensPerSession,maxOutputTokensPerSession:e.limits.maxOutputTokensPerSession,sessionTimeoutMs:e.limits.sessionTimeoutMs},source:{...e.source}};return e.dynamicModel===void 0?{...t,model:cloneCompiledRuntimeModelReference(e.model)}:{...t,dynamicModel:{...e.dynamicModel}}}function deriveResourceRootEntries(e){let t=new Set;for(let n of e.sandboxWorkspaces??[])for(let e of n.rootEntries)t.add(e);return[...t].sort((e,t)=>e.localeCompare(t))}function createCompiledSubagentNodeId(e,t){return e===`__root__`?t:`${e}::${t}`}function createCompiledAgentManifest(e){let t={...createCompiledAgentNodeManifest(e),kind:COMPILED_AGENT_MANIFEST_KIND,extensionMounts:[...e.extensionMounts??[]],subagents:[...e.subagents??[]],version:47};return validateCompiledAgentManifest(t),t}function cloneCompiledRuntimeModelReference(e){let t={id:e.id,routing:cloneModelRouting(e.routing)};return e.contextWindowTokens!==void 0&&(t.contextWindowTokens=e.contextWindowTokens),e.maxOutputTokens!==void 0&&(t.maxOutputTokens=e.maxOutputTokens),e.providerOptions!==void 0&&(t.providerOptions={...e.providerOptions}),e.source!==void 0&&(t.source={...e.source}),t}function cloneModelRouting(e){return e.kind===`external`?{kind:`external`,provider:e.provider}:e.byok===void 0?{kind:`gateway`,target:e.target}:{kind:`gateway`,target:e.target,byok:e.byok}}export{COMPILED_AGENT_MANIFEST_KIND,COMPILED_AGENT_MANIFEST_VERSION,ROOT_COMPILED_AGENT_NODE_ID,compiledAgentManifestSchema,createCompiledAgentManifest,createCompiledAgentNodeManifest,createCompiledAgentResources,createCompiledSubagentNodeId,deriveResourceRootEntries};
@@ -1 +1 @@
1
- import{compileChannelDefinition}from"#compiler/normalize-channel.js";import{ROOT_COMPILED_AGENT_NODE_ID,createCompiledAgentManifest,createCompiledAgentNodeManifest,createCompiledAgentResources,createCompiledSubagentNodeId}from"#compiler/manifest.js";import{summarizeCompilerDiagnostics}from"#compiler/diagnostics.js";import{canonicalSourceSlot,composeAgentModuleCandidates,createAgentModuleBinding,createProgrammaticModuleCandidates,describeAgentSourceCandidate,disableComposedCandidate,instantiateProgrammaticTemplate,isAgentModuleCandidate}from"#compiler/source-graph.js";import{frameworkAgentSourceRegistry,memoryWrapperTemplate}from"#framework/sources/registry.js";import{assertApplicationOverlayCanApplyToAllNodes,assertNonExtensionSpecialTool,assertRootOnlyConfig,assertRootOwnedSpecialTool,assertUniqueBy,assertUniqueRegistryIds,collectSelectedSourceIds,compileExtensionMounts,createCompiledRemoteAgent,expectSubagentDescription,mergeExternalDependencies,withExtensionNamespace}from"#compiler/normalize-manifest-helpers.js";import{loadModuleBackedDefinition}from"#compiler/normalize-helpers.js";import{assertRemoteAgentDefinitionHasNoLocalPackageEntries,normalizeSubagentConfig}from"#compiler/normalize-subagent.js";import{createCompiledRuntimeModelCatalogLoader}from"#compiler/model-catalog.js";import{NodeModuleEvaluationContext,markConfigRuntimeEntries}from"#compiler/module-lifecycle.js";import{assertInstrumentationLayoutConfig}from"#compiler/instrumentation-layout-config.js";import{compileAgentConfig}from"#compiler/normalize-agent-config.js";import{compileConnectionDefinition}from"#compiler/normalize-connection.js";import{compileHookEntry}from"#compiler/normalize-hook.js";import{compileInstructionsEntry}from"#compiler/normalize-instructions.js";import{compileMemoryDefinition,deriveMemorySlot}from"#compiler/normalize-memory.js";import{compileSandboxDefinition}from"#compiler/normalize-sandbox.js";import{compileScheduleDefinition}from"#compiler/normalize-schedule.js";import{compileSkillSource}from"#compiler/normalize-skill.js";import{compileToolEntry}from"#compiler/normalize-tool.js";import{createCompiledChannelRoutePlan}from"#compiler/channel-route-plan.js";import{finalizeNodeSourceState}from"#compiler/node-source-state.js";import{projectAgentSources,projectSelectedSources}from"#compiler/project-sources.js";async function compileAgentManifest(e,r={}){let i=[frameworkAgentSourceRegistry,...r.sourceRegistries??[]];assertUniqueRegistryIds(i);let a={modelCatalog:createCompiledRuntimeModelCatalogLoader(e.appRoot),registries:i},s=r.diagnostics??[],c=await new AgentGraphCompiler(a,i,s).compileStaticNode({inheritedExternalDependencies:[],isRoot:!0,layer:`application`,manifest:e,nodeId:ROOT_COMPILED_AGENT_NODE_ID,owner:{kind:`application`}}),l=[c.manifest,...c.descendants.map(e=>e.agent)].flatMap(e=>e.tools).find(e=>e.execution===`background`);if(l!==void 0&&c.manifest.config.experimental?.tasks!==!0)throw Error(`Background tool "${l.name}" requires experimental.tasks: true in the root agent config.`);let u=summarizeCompilerDiagnostics(s),d=c.descendants.map(e=>(e.configResolver,{...e,agent:{...e.agent,diagnosticsSummary:u}}));return createCompiledAgentManifest({...c.manifest,diagnosticsSummary:u,subagents:d})}var AgentGraphCompiler=class{context;registries;diagnostics;constructor(e,t,n){this.context=e,this.registries=t,this.diagnostics=n}async compileStaticNode(e){let t=await this.createPhaseOneNodeSourceState(e,e.inheritedExternalDependencies),n=await compileAgentConfig(e.manifest,this.context,{binding:t.selectedConfig.binding,definition:t.selectedConfig.definition,source:t.selectedConfig.source});assertRootOnlyConfig(n,e.isRoot,e.manifest.agentId);let i=mergeExternalDependencies(e.inheritedExternalDependencies,n.build?.externalDependencies,e.manifest.resolvedExtensions.flatMap(e=>e.externalDependencies));i.length>0&&(n={...n,build:{...n.build,externalDependencies:i}});let a=finalizeNodeSourceState(t,i);markConfigRuntimeEntries(n,a.evaluation),assertInstrumentationLayoutConfig(n,a);let o=await this.compileResources(e,a),s=await this.compileChildren(e,a,i),c=createCompiledAgentNodeManifest({...o,config:n,remoteAgents:s.remoteAgents});return{descendants:s.nodes,manifest:c}}async compileChildren(e,t,n){let o=[],s=[],c=collectSelectedSourceIds(t.composed),l=t.projected.subagents.filter(e=>c.has(e.candidate.sourceId));for(let t of l){let c=t.source,l=createCompiledSubagentNodeId(e.nodeId,c.sourceId),u={extensionScope:t.extensionScope??e.extensionScope,inheritedExternalDependencies:n,isRoot:!1,layer:t.candidate.layer,manifest:c.manifest,nodeId:l,owner:t.owner,parentNodeId:e.nodeId},d=await this.createPhaseOneNodeSourceState(u,n),f=normalizeSubagentConfig(d.selectedConfig.definition,`Expected the subagent config export "${d.selectedConfig.source.exportName??`default`}" from "${c.entryPath}" to match the public eve shape.`);if(f.kind===`remote`){assertRemoteAgentDefinitionHasNoLocalPackageEntries(c);let n=d.selectedConfig.source.sourceId;d.evaluation.setBindings({[n]:d.selectedConfig.binding}),d.evaluation.requireRuntimeEntry(n);let r=d.evaluation.finalizeBindings()[n];if(r===void 0)throw Error(`Remote subagent "${l}" has no finalized config binding.`);s.push(createCompiledRemoteAgent({binding:r,definition:f,nodeId:l,owner:t.owner,parentNodeId:e.nodeId,source:c,sourceRef:d.selectedConfig.source}));continue}let p,m;f.kind===`local`?(p=await compileAgentConfig(c.manifest,this.context,{binding:d.selectedConfig.binding,definition:f.definition,source:d.selectedConfig.source}),assertRootOnlyConfig(p,!1,c.manifest.agentId)):m=f.build?.externalDependencies;let h=mergeExternalDependencies(n,p?.build?.externalDependencies,m,c.manifest.resolvedExtensions.flatMap(e=>e.externalDependencies));p!==void 0&&h.length>0&&(p={...p,build:{...p.build,externalDependencies:h}});let g=finalizeNodeSourceState(d,h);p===void 0?g.evaluation.requireRuntimeEntry(d.selectedConfig.source.sourceId):markConfigRuntimeEntries(p,g.evaluation),p!==void 0&&assertInstrumentationLayoutConfig(p,g);let _=await this.compileResources(u,g),v=await this.compileChildren(u,g,h),b={backing:t.candidate.backing,entryPath:c.entryPath,logicalPath:c.logicalPath,name:c.subagentId,nodeId:l,owner:t.owner,parentNodeId:e.nodeId,rootPath:c.rootPath,sourceId:c.sourceId,sourceKind:`module`},x;x=p===void 0?{...b,agent:createCompiledAgentResources({..._,remoteAgents:v.remoteAgents}),configResolver:{build:f.kind===`dynamic`?f.build:void 0,eventNames:f.kind===`dynamic`?f.eventNames:[],exportName:d.selectedConfig.source.exportName,logicalPath:d.selectedConfig.source.logicalPath,sourceId:d.selectedConfig.source.sourceId,sourceKind:`module`}}:{...b,agent:createCompiledAgentNodeManifest({..._,config:p,remoteAgents:v.remoteAgents}),description:expectSubagentDescription(p,c)},o.push(x,...v.nodes)}return{nodes:o,remoteAgents:s}}composeNodeSources(e,t){let n=projectAgentSources({externalDependencies:t,extensionScope:e.extensionScope,layer:e.layer,manifest:e.manifest,nodeId:e.nodeId,owner:e.owner}),r=[],i=[];for(let t of this.registries){let n=t===frameworkAgentSourceRegistry;for(let a of t.registrations){if(a.applyTo===`root`&&!e.isRoot)continue;!n&&a.applyTo===`all-local-nodes`&&assertApplicationOverlayCanApplyToAllNodes(a.source.modules.map(e=>e.logicalPath));let t=createProgrammaticModuleCandidates({layer:n?`framework-default`:`application`,nodeId:e.nodeId,owner:n?{feature:a.source.id,kind:`framework`}:{kind:`application`},registration:a});(n?r:i).push(...t)}}let a=[...n.candidates,...i].filter(e=>e.backing.kind!==`resource`&&(canonicalSourceSlot(e.logicalPath)===`memory`||canonicalSourceSlot(e.logicalPath).startsWith(`memory/`))).map(e=>{let t=deriveMemorySlot(e.logicalPath);return instantiateProgrammaticTemplate({anchor:e,dependencies:{memory:e},logicalPath:`tools/${t}.ts`,owner:{feature:`memory`,kind:`framework`},parameters:{memoryExportName:e.exportName??`default`,memoryLogicalPath:e.logicalPath,slot:t},template:memoryWrapperTemplate})}),o=[...r,...n.candidates,...a,...i],l=composeAgentModuleCandidates(o),d=projectSelectedSources({candidates:l.selected.values(),resources:n.resources});return{composed:l,orderedCandidates:o,projected:n,sourcesBySourceId:new Map(d.map(e=>[e.candidate.sourceId,e])),subagentsBySourceId:new Map(n.subagents.map(e=>[e.candidate.sourceId,e]))}}async createPhaseOneNodeSourceState(e,t){let n=this.composeNodeSources(e,t),r=new NodeModuleEvaluationContext(this.registries);return r.setBindings(Object.fromEntries([...n.composed.selected.values()].filter(isAgentModuleCandidate).map(e=>[e.sourceId,createAgentModuleBinding(e)]))),{evaluation:r,graph:n,selectedConfig:await this.loadSelectedConfig(n,r)}}async loadSelectedConfig(e,t){let n=e.composed.selected.get(`agent`);if(n===void 0||!isAgentModuleCandidate(n))throw Error(`Every local agent node requires a selected module-backed agent.ts source.`);let r=createAgentModuleBinding(n),i=e.sourcesBySourceId.get(n.sourceId);if(i?.source.sourceKind!==`module`)throw Error(`Selected agent config source "${n.sourceId}" was not projected.`);let a=i.source;return{binding:r,candidate:n,definition:await loadModuleBackedDefinition({binding:r,kind:`agent config`,loadNamespace:t.loadNamespace,source:a}),source:a}}async compileResources(t,n){let r=[],a=[],s=[],c=[],l=[],u=[],p=[],m=[],h=[],g=[],_=[],y=[],S,C,w,T,E=collectSelectedSourceIds(n.composed),D=n.evaluation.loadNamespace;for(let i of n.orderedCandidates){if(!E.has(i.sourceId))continue;let o=n.sourcesBySourceId.get(i.sourceId);if(o===void 0)continue;let d=n.bindings[i.sourceId],x={binding:d,loadNamespace:D,owner:i.owner};switch(o.kind){case`config`:case`extension`:break;case`channel`:{let r=await compileChannelDefinition(t.manifest.agentRoot,o.source,{binding:d,loadNamespace:D});r.kind===`disabled`?(n.composed=disableComposedCandidate({candidate:i,composed:n.composed}),delete n.bindings[i.sourceId],E.delete(i.sourceId)):y.push(...r.definitions);break}case`connection`:{let e=await compileConnectionDefinition(t.manifest.agentRoot,o.source,{binding:d,loadNamespace:D});e.kind===`connection`?p.push(e.definition):m.push(withExtensionNamespace(e.definition,i.owner)),n.evaluation.requireRuntimeEntry(i.sourceId);break}case`hook`:g.push(await compileHookEntry(o.source,{binding:d,loadNamespace:D})),n.evaluation.requireRuntimeEntry(i.sourceId);break;case`instructions`:{let e=await compileInstructionsEntry(t.manifest.agentRoot,o.source,x);e.kind===`instructions`?l.push(e.definition):(u.push(e.definition),n.evaluation.requireRuntimeEntry(i.sourceId));break}case`instrumentation`:C=o.source,n.evaluation.requireRuntimeEntry(i.sourceId);break;case`memory`:h.push(await compileMemoryDefinition(o.source,{binding:d,loadNamespace:D})),n.evaluation.requireRuntimeEntry(i.sourceId);break;case`sandbox`:S=await compileSandboxDefinition(t.manifest.agentRoot,o.source,{binding:d,loadNamespace:D}),S.inheritsParent||n.evaluation.requireRuntimeEntry(i.sourceId);break;case`schedule`:{let e=await compileScheduleDefinition(t.manifest.agentRoot,o.source,x);_.push(e),e.sourceKind===`module`&&e.hasRun&&n.evaluation.requireRuntimeEntry(i.sourceId);break}case`skill`:{let e=await compileSkillSource(t.manifest.agentRoot,o.source,x);e.kind===`skill`?s.push(e.definition):(c.push(withExtensionNamespace(e.definition,i.owner)),n.evaluation.requireRuntimeEntry(i.sourceId));break}case`tool`:{let e=await compileToolEntry(t.manifest.agentRoot,o.source,{binding:d,loadNamespace:D});e.kind===`disabled`?(n.composed=disableComposedCandidate({candidate:i,composed:n.composed}),delete n.bindings[i.sourceId],E.delete(i.sourceId)):e.kind===`tool`?(r.push(e.definition),n.evaluation.requireRuntimeEntry(i.sourceId)):e.kind===`dynamic-tool`?(a.push(withExtensionNamespace(e.definition,i.owner)),n.evaluation.requireRuntimeEntry(i.sourceId)):e.kind===`workflow-tool`?(assertRootOwnedSpecialTool(i,`Workflow`),w={...o.source,maxSubagents:e.maxSubagents}):(assertNonExtensionSpecialTool(i,`Web search`),r.push(e.definition),T=e.provider);break}}}if(S===void 0)throw Error(`Agent node "${t.nodeId}" has no selected sandbox source.`);assertUniqueBy(r,e=>e.name,`tool name`),assertUniqueBy(a,e=>e.slug,`dynamic tool slug`),assertUniqueBy(p,e=>e.connectionName,`connection name`),assertUniqueBy(m,e=>e.slug,`dynamic connection slug`),assertUniqueBy(s,e=>e.name,`skill name`);let O=createCompiledChannelRoutePlan({bindings:n.bindings,channels:y,diagnostics:this.diagnostics,nodeId:t.nodeId,sources:Object.fromEntries(n.orderedCandidates.map(e=>[e.sourceId,describeAgentSourceCandidate(e)]))});for(let e of O.effective)n.evaluation.requireRuntimeEntry(e.sourceId);let k=compileExtensionMounts(t.manifest,n.composed);for(let e of k)n.evaluation.requireRuntimeEntry(e.mountSourceId);let A=n.evaluation.finalizeBindings();return createCompiledAgentResources({agentRoot:t.manifest.agentRoot,appRoot:t.manifest.appRoot,bindings:A,channelRoutes:O,connections:p,diagnosticsSummary:summarizeCompilerDiagnostics(this.diagnostics),dynamicConnections:m,dynamicInstructions:u,dynamicSkills:c,dynamicTools:a,extensionMounts:k,hooks:g,memories:h,instructions:l,instrumentation:C,sandbox:S,sandboxWorkspaces:t.manifest.sandboxWorkspaces.map(e=>({logicalPath:e.logicalPath,rootEntries:[...e.rootEntries],sourceId:e.sourceId,sourcePath:e.sourcePath})),schedules:_,skills:s,sourceComposition:n.composed.composition,tools:r,webSearchProvider:T,workflowTool:w})}};export{compileAgentManifest};
1
+ import{compileChannelDefinition}from"#compiler/normalize-channel.js";import{ROOT_COMPILED_AGENT_NODE_ID,createCompiledAgentManifest,createCompiledAgentNodeManifest,createCompiledAgentResources,createCompiledSubagentNodeId}from"#compiler/manifest.js";import{summarizeCompilerDiagnostics}from"#compiler/diagnostics.js";import{canonicalSourceSlot,composeAgentModuleCandidates,createAgentModuleBinding,createProgrammaticModuleCandidates,describeAgentSourceCandidate,disableComposedCandidate,instantiateProgrammaticTemplate,isAgentModuleCandidate}from"#compiler/source-graph.js";import{frameworkAgentSourceRegistry,memoryWrapperTemplate}from"#framework/sources/registry.js";import{assertApplicationOverlayCanApplyToAllNodes,assertNonExtensionSpecialTool,assertRootOnlyConfig,assertRootOwnedSpecialTool,assertUniqueBy,assertUniqueRegistryIds,collectSelectedSourceIds,compileExtensionMounts,createCompiledRemoteAgent,expectSubagentDescription,mergeExternalDependencies,withExtensionNamespace}from"#compiler/normalize-manifest-helpers.js";import{loadModuleBackedDefinition}from"#compiler/normalize-helpers.js";import{assertRemoteAgentDefinitionHasNoLocalPackageEntries,normalizeSubagentConfig}from"#compiler/normalize-subagent.js";import{createCompiledRuntimeModelCatalogLoader}from"#compiler/model-catalog.js";import{NodeModuleEvaluationContext,markConfigRuntimeEntries}from"#compiler/module-lifecycle.js";import{assertInstrumentationLayoutConfig}from"#compiler/instrumentation-layout-config.js";import{compileAgentConfig}from"#compiler/normalize-agent-config.js";import{compileConnectionDefinition}from"#compiler/normalize-connection.js";import{compileHookEntry}from"#compiler/normalize-hook.js";import{compileInstructionsEntry}from"#compiler/normalize-instructions.js";import{compileMemoryDefinition,deriveMemorySlot}from"#compiler/normalize-memory.js";import{compileSandboxDefinition}from"#compiler/normalize-sandbox.js";import{compileScheduleDefinition}from"#compiler/normalize-schedule.js";import{compileSkillSource}from"#compiler/normalize-skill.js";import{compileToolEntry}from"#compiler/normalize-tool.js";import{createCompiledChannelRoutePlan}from"#compiler/channel-route-plan.js";import{finalizeNodeSourceState}from"#compiler/node-source-state.js";import{projectAgentSources,projectSelectedSources}from"#compiler/project-sources.js";async function compileAgentManifest(e,r={}){let i=[frameworkAgentSourceRegistry,...r.sourceRegistries??[]];assertUniqueRegistryIds(i);let a={modelCatalog:createCompiledRuntimeModelCatalogLoader(e.appRoot),registries:i},s=r.diagnostics??[],c=await new AgentGraphCompiler(a,i,s).compileStaticNode({inheritedExternalDependencies:[],isRoot:!0,layer:`application`,manifest:e,nodeId:ROOT_COMPILED_AGENT_NODE_ID,owner:{kind:`application`}}),l=[c.manifest,...c.descendants.map(e=>e.agent)].flatMap(e=>e.tools).find(e=>e.execution===`background`);if(l!==void 0&&c.manifest.config.experimental?.tasks!==!0)throw Error(`Background tool "${l.name}" requires experimental.tasks: true in the root agent config.`);let u=summarizeCompilerDiagnostics(s),d=c.descendants.map(e=>(e.configResolver,{...e,agent:{...e.agent,diagnosticsSummary:u}}));return createCompiledAgentManifest({...c.manifest,diagnosticsSummary:u,subagents:d})}var AgentGraphCompiler=class{context;registries;diagnostics;constructor(e,t,n){this.context=e,this.registries=t,this.diagnostics=n}async compileStaticNode(e){let t=await this.createPhaseOneNodeSourceState(e,e.inheritedExternalDependencies),n=await compileAgentConfig(e.manifest,this.context,{binding:t.selectedConfig.binding,definition:t.selectedConfig.definition,source:t.selectedConfig.source});assertRootOnlyConfig(n,e.isRoot,e.manifest.agentId);let i=mergeExternalDependencies(e.inheritedExternalDependencies,n.build?.externalDependencies,e.manifest.resolvedExtensions.flatMap(e=>e.externalDependencies));i.length>0&&(n={...n,build:{...n.build,externalDependencies:i}});let a=finalizeNodeSourceState(t,i);markConfigRuntimeEntries(n,a.evaluation),assertInstrumentationLayoutConfig(n,a);let o=await this.compileResources(e,a),s=await this.compileChildren(e,a,i),c=createCompiledAgentNodeManifest({...o,config:n,remoteAgents:s.remoteAgents});return{descendants:s.nodes,manifest:c}}async compileChildren(e,t,n){let o=[],s=[],c=collectSelectedSourceIds(t.composed),l=t.projected.subagents.filter(e=>c.has(e.candidate.sourceId));for(let t of l){let c=t.source,l=createCompiledSubagentNodeId(e.nodeId,c.sourceId),u={extensionScope:t.extensionScope??e.extensionScope,inheritedExternalDependencies:n,isRoot:!1,layer:t.candidate.layer,manifest:c.manifest,nodeId:l,owner:t.owner,parentNodeId:e.nodeId},d=await this.createPhaseOneNodeSourceState(u,n),f=normalizeSubagentConfig(d.selectedConfig.definition,`Expected the subagent config export "${d.selectedConfig.source.exportName??`default`}" from "${c.entryPath}" to match the public eve shape.`);if(f.kind===`remote`){assertRemoteAgentDefinitionHasNoLocalPackageEntries(c);let n=d.selectedConfig.source.sourceId;d.evaluation.setBindings({[n]:d.selectedConfig.binding}),d.evaluation.requireRuntimeEntry(n);let r=d.evaluation.finalizeBindings()[n];if(r===void 0)throw Error(`Remote subagent "${l}" has no finalized config binding.`);s.push(createCompiledRemoteAgent({binding:r,definition:f,nodeId:l,owner:t.owner,parentNodeId:e.nodeId,source:c,sourceRef:d.selectedConfig.source}));continue}let p,m;f.kind===`local`?(p=await compileAgentConfig(c.manifest,this.context,{binding:d.selectedConfig.binding,definition:f.definition,source:d.selectedConfig.source}),assertRootOnlyConfig(p,!1,c.manifest.agentId)):m=f.build?.externalDependencies;let h=mergeExternalDependencies(n,p?.build?.externalDependencies,m,c.manifest.resolvedExtensions.flatMap(e=>e.externalDependencies));p!==void 0&&h.length>0&&(p={...p,build:{...p.build,externalDependencies:h}});let g=finalizeNodeSourceState(d,h);p===void 0?g.evaluation.requireRuntimeEntry(d.selectedConfig.source.sourceId):markConfigRuntimeEntries(p,g.evaluation),p!==void 0&&assertInstrumentationLayoutConfig(p,g);let _=await this.compileResources(u,g),v=await this.compileChildren(u,g,h),b={backing:t.candidate.backing,entryPath:c.entryPath,logicalPath:c.logicalPath,name:c.subagentId,nodeId:l,owner:t.owner,parentNodeId:e.nodeId,rootPath:c.rootPath,sourceId:c.sourceId,sourceKind:`module`},x;x=p===void 0?{...b,agent:createCompiledAgentResources({..._,remoteAgents:v.remoteAgents}),configResolver:{build:f.kind===`dynamic`?f.build:void 0,eventNames:f.kind===`dynamic`?f.eventNames:[],exportName:d.selectedConfig.source.exportName,logicalPath:d.selectedConfig.source.logicalPath,sourceId:d.selectedConfig.source.sourceId,sourceKind:`module`}}:{...b,agent:createCompiledAgentNodeManifest({..._,config:p,remoteAgents:v.remoteAgents}),description:expectSubagentDescription(p,c)},o.push(x,...v.nodes)}return{nodes:o,remoteAgents:s}}composeNodeSources(e,t){let n=projectAgentSources({externalDependencies:t,extensionScope:e.extensionScope,layer:e.layer,manifest:e.manifest,nodeId:e.nodeId,owner:e.owner}),r=[],i=[];for(let t of this.registries){let n=t===frameworkAgentSourceRegistry;for(let a of t.registrations){if(a.applyTo===`root`&&!e.isRoot)continue;!n&&a.applyTo===`all-local-nodes`&&assertApplicationOverlayCanApplyToAllNodes(a.source.modules.map(e=>e.logicalPath));let t=createProgrammaticModuleCandidates({layer:n?`framework-default`:`application`,nodeId:e.nodeId,owner:n?{feature:a.source.id,kind:`framework`}:{kind:`application`},registration:a});(n?r:i).push(...t)}}let a=[...n.candidates,...i].filter(e=>e.backing.kind!==`resource`&&(canonicalSourceSlot(e.logicalPath)===`memory`||canonicalSourceSlot(e.logicalPath).startsWith(`memory/`))).map(e=>{let t=deriveMemorySlot(e.logicalPath);return instantiateProgrammaticTemplate({anchor:e,dependencies:{memory:e},logicalPath:`tools/${t}.ts`,owner:{feature:`memory`,kind:`framework`},parameters:{memoryExportName:e.exportName??`default`,memoryLogicalPath:e.logicalPath,slot:t},template:memoryWrapperTemplate})}),o=[...r,...n.candidates,...a,...i],l=composeAgentModuleCandidates(o),d=projectSelectedSources({candidates:l.selected.values(),resources:n.resources});return{composed:l,orderedCandidates:o,projected:n,sourcesBySourceId:new Map(d.map(e=>[e.candidate.sourceId,e])),subagentsBySourceId:new Map(n.subagents.map(e=>[e.candidate.sourceId,e]))}}async createPhaseOneNodeSourceState(e,t){let n=this.composeNodeSources(e,t),r=new NodeModuleEvaluationContext(this.registries);return r.setBindings(Object.fromEntries([...n.composed.selected.values()].filter(isAgentModuleCandidate).map(e=>[e.sourceId,createAgentModuleBinding(e)]))),{evaluation:r,graph:n,selectedConfig:await this.loadSelectedConfig(n,r)}}async loadSelectedConfig(e,t){let n=e.composed.selected.get(`agent`);if(n===void 0||!isAgentModuleCandidate(n))throw Error(`Every local agent node requires a selected module-backed agent.ts source.`);let r=createAgentModuleBinding(n),i=e.sourcesBySourceId.get(n.sourceId);if(i?.source.sourceKind!==`module`)throw Error(`Selected agent config source "${n.sourceId}" was not projected.`);let a=i.source;return{binding:r,candidate:n,definition:await loadModuleBackedDefinition({binding:r,kind:`agent config`,loadNamespace:t.loadNamespace,source:a}),source:a}}async compileResources(t,n){let r=[],a=[],s=[],c=[],l=[],u=[],p=[],m=[],h=[],g=[],_=[],y=[],S,C,w,T=collectSelectedSourceIds(n.composed),E=n.evaluation.loadNamespace;for(let i of n.orderedCandidates){if(!T.has(i.sourceId))continue;let o=n.sourcesBySourceId.get(i.sourceId);if(o===void 0)continue;let d=n.bindings[i.sourceId],x={binding:d,loadNamespace:E,owner:i.owner};switch(o.kind){case`config`:case`extension`:break;case`channel`:{let r=await compileChannelDefinition(t.manifest.agentRoot,o.source,{binding:d,loadNamespace:E});r.kind===`disabled`?(n.composed=disableComposedCandidate({candidate:i,composed:n.composed}),delete n.bindings[i.sourceId],T.delete(i.sourceId)):y.push(...r.definitions);break}case`connection`:{let e=await compileConnectionDefinition(t.manifest.agentRoot,o.source,{binding:d,loadNamespace:E});e.kind===`connection`?p.push(e.definition):m.push(withExtensionNamespace(e.definition,i.owner)),n.evaluation.requireRuntimeEntry(i.sourceId);break}case`hook`:g.push(await compileHookEntry(o.source,{binding:d,loadNamespace:E})),n.evaluation.requireRuntimeEntry(i.sourceId);break;case`instructions`:{let e=await compileInstructionsEntry(t.manifest.agentRoot,o.source,x);e.kind===`instructions`?l.push(e.definition):(u.push(e.definition),n.evaluation.requireRuntimeEntry(i.sourceId));break}case`instrumentation`:C=o.source,n.evaluation.requireRuntimeEntry(i.sourceId);break;case`memory`:h.push(await compileMemoryDefinition(o.source,{binding:d,loadNamespace:E})),n.evaluation.requireRuntimeEntry(i.sourceId);break;case`sandbox`:S=await compileSandboxDefinition(t.manifest.agentRoot,o.source,{binding:d,loadNamespace:E}),S.inheritsParent||n.evaluation.requireRuntimeEntry(i.sourceId);break;case`schedule`:{let e=await compileScheduleDefinition(t.manifest.agentRoot,o.source,x);_.push(e),e.sourceKind===`module`&&e.hasRun&&n.evaluation.requireRuntimeEntry(i.sourceId);break}case`skill`:{let e=await compileSkillSource(t.manifest.agentRoot,o.source,x);e.kind===`skill`?s.push(e.definition):(c.push(withExtensionNamespace(e.definition,i.owner)),n.evaluation.requireRuntimeEntry(i.sourceId));break}case`tool`:{let e=await compileToolEntry(t.manifest.agentRoot,o.source,{binding:d,loadNamespace:E});e.kind===`disabled`?(n.composed=disableComposedCandidate({candidate:i,composed:n.composed}),delete n.bindings[i.sourceId],T.delete(i.sourceId)):e.kind===`tool`?(r.push(e.definition),e.definition.hasExecute&&n.evaluation.requireRuntimeEntry(i.sourceId)):e.kind===`dynamic-tool`?(a.push(withExtensionNamespace(e.definition,i.owner)),n.evaluation.requireRuntimeEntry(i.sourceId)):e.kind===`workflow-tool`?(assertRootOwnedSpecialTool(i,`Workflow`),w={...o.source,maxSubagents:e.maxSubagents}):(assertNonExtensionSpecialTool(i,`Web search`),r.push(e.definition));break}}}if(S===void 0)throw Error(`Agent node "${t.nodeId}" has no selected sandbox source.`);assertUniqueBy(r,e=>e.name,`tool name`),assertUniqueBy(a,e=>e.slug,`dynamic tool slug`),assertUniqueBy(p,e=>e.connectionName,`connection name`),assertUniqueBy(m,e=>e.slug,`dynamic connection slug`),assertUniqueBy(s,e=>e.name,`skill name`);let D=createCompiledChannelRoutePlan({bindings:n.bindings,channels:y,diagnostics:this.diagnostics,nodeId:t.nodeId,sources:Object.fromEntries(n.orderedCandidates.map(e=>[e.sourceId,describeAgentSourceCandidate(e)]))});for(let e of D.effective)n.evaluation.requireRuntimeEntry(e.sourceId);let O=compileExtensionMounts(t.manifest,n.composed);for(let e of O)n.evaluation.requireRuntimeEntry(e.mountSourceId);let k=n.evaluation.finalizeBindings();return createCompiledAgentResources({agentRoot:t.manifest.agentRoot,appRoot:t.manifest.appRoot,bindings:k,channelRoutes:D,connections:p,diagnosticsSummary:summarizeCompilerDiagnostics(this.diagnostics),dynamicConnections:m,dynamicInstructions:u,dynamicSkills:c,dynamicTools:a,extensionMounts:O,hooks:g,memories:h,instructions:l,instrumentation:C,sandbox:S,sandboxWorkspaces:t.manifest.sandboxWorkspaces.map(e=>({logicalPath:e.logicalPath,rootEntries:[...e.rootEntries],sourceId:e.sourceId,sourcePath:e.sourcePath})),schedules:_,skills:s,sourceComposition:n.composed.composition,tools:r,workflowTool:w})}};export{compileAgentManifest};
@@ -20,7 +20,6 @@ export type CompiledToolEntry = {
20
20
  } | {
21
21
  readonly definition: CompiledToolDefinition;
22
22
  readonly kind: "web-search-tool";
23
- readonly provider: "exa" | "parallel";
24
23
  } | {
25
24
  readonly kind: "dynamic-tool";
26
25
  readonly definition: CompiledDynamicToolDefinition;
@@ -1 +1 @@
1
- import{stripLogicalPathExtension}from"#discover/filesystem.js";import{loadModuleBackedDefinition}from"#compiler/normalize-helpers.js";import{normalizeToolDefinition}from"#internal/authored-definition/schema-backed.js";async function compileToolEntry(e,t,n){let r=normalizeToolDefinition(await loadModuleBackedDefinition({binding:n.binding,kind:`tool`,loadNamespace:n.loadNamespace,source:t}),`Expected the tool export "${t.exportName??`default`}" from "${t.logicalPath}" to match the public eve shape.`),i=stripLogicalPathExtension(t.logicalPath).replace(/^tools\//,``).replaceAll(`/`,`-`);if(r.kind===`disabled`)return{kind:`disabled`,name:i};if(r.kind===`workflow-tool`)return{kind:`workflow-tool`,maxSubagents:r.maxSubagents};if(r.kind===`web-search-tool`){if(i!==`web_search`)throw Error(`The webSearch() definition must be exported from "tools/web_search.ts", not "${t.logicalPath}".`);return{definition:{description:`Search the web for real-time information. Use this to find up-to-date information about current events, recent developments, or topics that may have changed since the knowledge cutoff.`,exportName:t.exportName,hasExecute:!1,hasModelOutputProjection:!1,inputSchema:null,logicalPath:t.logicalPath,name:i,sourceId:t.sourceId,sourceKind:`module`,requiresApproval:!1},kind:`web-search-tool`,provider:r.provider}}return r.kind===`dynamic-tool`?{kind:`dynamic-tool`,definition:{eventNames:[...r.eventNames],exportName:t.exportName,logicalPath:t.logicalPath,rebindMissingCallbacks:r.rebindMissingCallbacks||void 0,slug:i,sourceId:t.sourceId,sourceKind:`module`}}:{kind:`tool`,definition:{description:r.definition.description,execution:r.definition.execution,exportName:t.exportName,hasExecute:!0,hasModelOutputProjection:r.definition.hasModelOutputProjection,inputSchema:r.definition.inputSchema??null,logicalPath:t.logicalPath,name:i,outputSchema:r.definition.outputSchema,requiresApproval:r.definition.hasApproval,sourceId:t.sourceId,sourceKind:`module`}}}export{compileToolEntry};
1
+ import{stripLogicalPathExtension}from"#discover/filesystem.js";import{resolveAuthoredPackageRoot}from"#internal/authored-module-loader.js";import{loadModuleBackedDefinition}from"#compiler/normalize-helpers.js";import{normalizeToolDefinition}from"#internal/authored-definition/schema-backed.js";import{readAuthoredExecuteWorkflowId}from"#internal/workflow-bundle/authored-workflow-modules.js";async function compileToolEntry(t,r,i){let a=normalizeToolDefinition(await loadModuleBackedDefinition({binding:i.binding,kind:`tool`,loadNamespace:i.loadNamespace,source:r}),`Expected the tool export "${r.exportName??`default`}" from "${r.logicalPath}" to match the public eve shape.`),o=stripLogicalPathExtension(r.logicalPath).replace(/^tools\//,``).replaceAll(`/`,`-`);if(a.kind===`disabled`)return{kind:`disabled`,name:o};if(a.kind===`workflow-tool`)return{kind:`workflow-tool`,maxSubagents:a.maxSubagents};if(a.kind===`web-search-tool`){if(o!==`web_search`)throw Error(`The webSearch() definition must be exported from "tools/web_search.ts", not "${r.logicalPath}".`);return{definition:{behavior:{availability:[],handling:{kind:`provider-tool`,provider:a.provider}},description:`Search the web for real-time information. Use this to find up-to-date information about current events, recent developments, or topics that may have changed since the knowledge cutoff.`,exportName:r.exportName,hasExecute:!1,hasModelOutputProjection:!1,inputSchema:null,logicalPath:r.logicalPath,name:o,sourceId:r.sourceId,sourceKind:`module`,requiresApproval:!1},kind:`web-search-tool`}}if(a.kind===`dynamic-tool`)return{kind:`dynamic-tool`,definition:{eventNames:[...a.eventNames],exportName:r.exportName,logicalPath:r.logicalPath,rebindMissingCallbacks:a.rebindMissingCallbacks||void 0,slug:o,sourceId:r.sourceId,sourceKind:`module`}};let s=await readToolWorkflowId(i.binding);return{kind:`tool`,definition:{behavior:s===void 0?a.definition.behavior:{availability:[],handling:{kind:`workflow-tool`,workflowId:s}},description:a.definition.description,execution:a.definition.execution,exportName:r.exportName,hasExecute:a.definition.hasExecute,hasModelOutputProjection:a.definition.hasModelOutputProjection,inputSchema:a.definition.inputSchema??null,logicalPath:r.logicalPath,name:o,outputSchema:a.definition.outputSchema,requiresApproval:a.definition.hasApproval,sourceId:r.sourceId,sourceKind:`module`}}}async function readToolWorkflowId(e){if(e.backing.kind!==`filesystem`)return;let n=e.backing.sourcePath;return await readAuthoredExecuteWorkflowId({appRoot:resolveAuthoredPackageRoot(n),filePath:n})}export{compileToolEntry};
@@ -1,9 +1,9 @@
1
1
  import type { HarnessToolDefinition } from "#harness/execute-tool.js";
2
2
  import type { HarnessToolMap } from "#harness/types.js";
3
3
  import type { ContextReader } from "#context/key.js";
4
- import { type DurableDynamicToolMetadata } from "#context/keys.js";
4
+ import { type CurrentDynamicToolMetadata } from "#context/dynamic-tool-metadata.js";
5
5
  /** Reconstructs every callback exclusively from its durable descriptor. */
6
- export declare function replayDynamicTools(metadata: readonly DurableDynamicToolMetadata[]): HarnessToolDefinition[];
6
+ export declare function replayDynamicTools(metadata: readonly CurrentDynamicToolMetadata[]): HarnessToolDefinition[];
7
7
  /**
8
8
  * Builds live dynamic tool definitions. Narrower scopes appear first so they
9
9
  * win on name collision (the tool loop uses `??=` for deduplication).
@@ -1 +1 @@
1
- import{createLogger}from"#internal/logging.js";import{SessionDynamicToolMetadataKey,StepDynamicToolMetadataKey,TurnDynamicToolMetadataKey}from"#context/keys.js";import{toInputSchema,toOutputSchema}from"#tools/schema.js";import{createToolExecuteWithAuth}from"#execution/tool-auth.js";import{callDurableDynamicCallback,lookupDurableDynamicCallback}from"#tools/durable-callbacks.js";const log=createLogger(`dynamic-tools`);function missingCallbackError(e,t){return Error(`Dynamic tool "${e.name}" cannot replay its ${t} callback because it is not registered in this process. The tool was removed or renamed since this call was parked, or its resolver did not run. Restore the tool definition or start a new session.`)}function buildReplayedApproval(e){let t=e.callbacks.approvalRequest;if(t===void 0)return;let n=lookupDurableDynamicCallback(e.name,`approvalRequest`),r=n===void 0?async()=>(log.error(missingCallbackError(e,`approvalRequest`).message),`user-approval`):async e=>await callDurableDynamicCallback(n,t.closure,e),i=e.callbacks.approvalResponse;if(i===void 0)return r;let a=lookupDurableDynamicCallback(e.name,`approvalResponse`);return{request:r,response:a===void 0?async()=>{let t=missingCallbackError(e,`approvalResponse`);return log.error(t.message),{reason:t.message,status:`rejected`}}:async e=>await callDurableDynamicCallback(a,i.closure,e)}}function replayDynamicTools(e){return e.map(e=>{let t=e.callbacks.execute,n=lookupDurableDynamicCallback(e.name,`execute`),r=e.callbacks.toModelOutput,s=r===void 0?void 0:lookupDurableDynamicCallback(e.name,`toModelOutput`);return{description:e.description,execute:createToolExecuteWithAuth({scope:e.name,execute:(r,i)=>{if(n===void 0)throw missingCallbackError(e,`execute`);return callDurableDynamicCallback(n,t.closure,r,i)}}),inputSchema:toInputSchema(e.inputSchema),name:e.name,approval:buildReplayedApproval(e),outputSchema:toOutputSchema(e.outputSchema),...r===void 0?{}:{toModelOutput:t=>{if(s===void 0)throw missingCallbackError(e,`toModelOutput`);return callDurableDynamicCallback(s,r.closure,t)}}}})}function buildResponseAuthorizationTools(e){let t=new Map;for(let n of e.context===void 0?[]:buildDynamicTools(e.context))t.has(n.name)||t.set(n.name,n);for(let[n,r]of e.authoredTools)t.has(n)||t.set(n,r);return t}function buildDynamicTools(e){let i=replayDynamicTools(e.get(StepDynamicToolMetadataKey)??[]),a=replayDynamicTools(e.get(TurnDynamicToolMetadataKey)??[]),o=replayDynamicTools(e.get(SessionDynamicToolMetadataKey)??[]);return[...i,...a,...o]}export{buildDynamicTools,buildResponseAuthorizationTools,replayDynamicTools};
1
+ import{createLogger}from"#internal/logging.js";import{SessionDynamicToolMetadataKey,StepDynamicToolMetadataKey,TurnDynamicToolMetadataKey}from"#context/keys.js";import{toInputSchema,toOutputSchema}from"#tools/schema.js";import{isCurrentDynamicToolMetadata}from"#context/dynamic-tool-metadata.js";import{createToolExecuteWithAuth}from"#execution/tool-auth.js";import{callDurableDynamicCallback,lookupDurableDynamicCallback}from"#tools/durable-callbacks.js";const log=createLogger(`dynamic-tools`);function missingCallbackError(e,t){return Error(`Dynamic tool "${e.name}" cannot replay its ${t} callback because it is not registered in this process. The tool was removed or renamed since this call was parked, or its resolver did not run. Restore the tool definition or start a new session.`)}function buildReplayedApproval(e){let t=e.callbacks.approvalRequest;if(t===void 0)return;let n=lookupDurableDynamicCallback(e.name,`approvalRequest`),r=n===void 0?async()=>(log.error(missingCallbackError(e,`approvalRequest`).message),`user-approval`):async e=>await callDurableDynamicCallback(n,t.closure,e),i=e.callbacks.approvalResponse;if(i===void 0)return r;let a=lookupDurableDynamicCallback(e.name,`approvalResponse`);return{request:r,response:a===void 0?async()=>{let t=missingCallbackError(e,`approvalResponse`);return log.error(t.message),{reason:t.message,status:`rejected`}}:async e=>await callDurableDynamicCallback(a,i.closure,e)}}function replayDynamicTools(e){return e.map(e=>{let t=e.callbacks.execute,n=lookupDurableDynamicCallback(e.name,`execute`),r=e.callbacks.toModelOutput,o=r===void 0?void 0:lookupDurableDynamicCallback(e.name,`toModelOutput`);return{description:e.description,execute:createToolExecuteWithAuth({scope:e.name,execute:(r,i)=>{if(n===void 0)throw missingCallbackError(e,`execute`);return callDurableDynamicCallback(n,t.closure,r,i)}}),inputSchema:toInputSchema(e.inputSchema),name:e.name,approval:buildReplayedApproval(e),outputSchema:toOutputSchema(e.outputSchema),...r===void 0?{}:{toModelOutput:t=>{if(o===void 0)throw missingCallbackError(e,`toModelOutput`);return callDurableDynamicCallback(o,r.closure,t)}}}})}function requireCurrentDynamicToolMetadata(e){let t=e.find(e=>!isCurrentDynamicToolMetadata(e));if(t!==void 0)throw Error(`Dynamic tool "${t.name}" reached replay before its persisted metadata was converted to the current schema.`);return e}function buildResponseAuthorizationTools(e){let t=new Map;for(let n of e.context===void 0?[]:buildDynamicTools(e.context))t.has(n.name)||t.set(n.name,n);for(let[n,r]of e.authoredTools)t.has(n)||t.set(n,r);return t}function buildDynamicTools(e){let i=replayDynamicTools(requireCurrentDynamicToolMetadata(e.get(StepDynamicToolMetadataKey)??[])),a=replayDynamicTools(requireCurrentDynamicToolMetadata(e.get(TurnDynamicToolMetadataKey)??[])),o=replayDynamicTools(requireCurrentDynamicToolMetadata(e.get(SessionDynamicToolMetadataKey)??[]));return[...i,...a,...o]}export{buildDynamicTools,buildResponseAuthorizationTools,replayDynamicTools};
@@ -1,5 +1,6 @@
1
1
  import { AsyncLocalStorage } from "node:async_hooks";
2
2
  import { type ContextAccessor, type ContextKey } from "#context/key.js";
3
+ import { type LocalDevRequestProvenance } from "#context/keys.js";
3
4
  /**
4
5
  * Keyed value container that backs one eve execution scope.
5
6
  *
@@ -11,6 +12,8 @@ import { type ContextAccessor, type ContextKey } from "#context/key.js";
11
12
  * the serialization layer.
12
13
  */
13
14
  export interface AlsContext extends ContextAccessor {
15
+ /** Verified local development provenance, inherited across durable execution contexts. */
16
+ readonly localDevRequest?: LocalDevRequestProvenance;
14
17
  /** Removes a durable or step-local value from the context. */
15
18
  delete<T>(key: ContextKey<T>): boolean;
16
19
  /**
@@ -27,6 +30,10 @@ export interface AlsContext extends ContextAccessor {
27
30
  export declare class ContextContainer implements AlsContext {
28
31
  private readonly _durableValues;
29
32
  private readonly _virtualValues;
33
+ constructor(input?: {
34
+ readonly localDevRequest?: LocalDevRequestProvenance;
35
+ });
36
+ get localDevRequest(): LocalDevRequestProvenance | undefined;
30
37
  get<T>(key: ContextKey<T>): T | undefined;
31
38
  require<T>(key: ContextKey<T>): T;
32
39
  has<T>(key: ContextKey<T>): boolean;
@@ -1 +1 @@
1
- import{AsyncLocalStorage}from"node:async_hooks";import{resolveKey}from"#context/key.js";const EVE_CONTEXT_STORAGE_KEY=Symbol.for(`eve.context-storage`);var ContextContainer=class{_durableValues=new Map;_virtualValues=new Map;get(e){return this._virtualValues.has(e.name)?this._virtualValues.get(e.name):this._durableValues.get(e.name)}require(e){if(!this.has(e))throw Error(`Context key "${e.name}" is not set.`);return this.get(e)}has(e){return this._virtualValues.has(e.name)||this._durableValues.has(e.name)}set(e,t){let n=typeof t==`function`?t(this.get(e)):t;return this._durableValues.set(e.name,n),n}ensure(e,t){return this.has(e)?this.require(e):this.set(e,t())}delete(e){let t=this._durableValues.delete(e.name),n=this._virtualValues.delete(e.name);return t||n}clearVirtualContext(){this._virtualValues.clear()}setVirtualContext(e,t){this._virtualValues.set(e.name,t)}*entries(){for(let[e,n]of this._durableValues){let r=resolveKey(e);r!==void 0&&(yield[r,n])}}};const globalContextStorage=globalThis;globalContextStorage[EVE_CONTEXT_STORAGE_KEY]===void 0&&(globalContextStorage[EVE_CONTEXT_STORAGE_KEY]=new AsyncLocalStorage);const contextStorage=globalContextStorage[EVE_CONTEXT_STORAGE_KEY];function loadContext(){let e=contextStorage.getStore();if(e===void 0)throw Error(`No active eve context. Call this function only from authored runtime code such as tools, steps, and model callbacks.`);return e}export{ContextContainer,contextStorage,loadContext};
1
+ import{LocalDevRequestKey}from"#context/keys.js";import{AsyncLocalStorage}from"node:async_hooks";import{resolveKey}from"#context/key.js";const EVE_CONTEXT_STORAGE_KEY=Symbol.for(`eve.context-storage`);var ContextContainer=class{_durableValues=new Map;_virtualValues=new Map;constructor(t){let n=t?.localDevRequest??contextStorage.getStore()?.localDevRequest;n!==void 0&&this._durableValues.set(LocalDevRequestKey.name,n)}get localDevRequest(){return this.get(LocalDevRequestKey)}get(e){return this._virtualValues.has(e.name)?this._virtualValues.get(e.name):this._durableValues.get(e.name)}require(e){if(!this.has(e))throw Error(`Context key "${e.name}" is not set.`);return this.get(e)}has(e){return this._virtualValues.has(e.name)||this._durableValues.has(e.name)}set(e,t){let n=typeof t==`function`?t(this.get(e)):t;return this._durableValues.set(e.name,n),n}ensure(e,t){return this.has(e)?this.require(e):this.set(e,t())}delete(e){let t=this._durableValues.delete(e.name),n=this._virtualValues.delete(e.name);return t||n}clearVirtualContext(){this._virtualValues.clear()}setVirtualContext(e,t){this._virtualValues.set(e.name,t)}*entries(){for(let[e,t]of this._durableValues){let r=resolveKey(e);r!==void 0&&(yield[r,t])}}};const globalContextStorage=globalThis;globalContextStorage[EVE_CONTEXT_STORAGE_KEY]===void 0&&(globalContextStorage[EVE_CONTEXT_STORAGE_KEY]=new AsyncLocalStorage);const contextStorage=globalContextStorage[EVE_CONTEXT_STORAGE_KEY];function loadContext(){let e=contextStorage.getStore();if(e===void 0)throw Error(`No active eve context. Call this function only from authored runtime code such as tools, steps, and model callbacks.`);return e}export{ContextContainer,contextStorage,loadContext};
@@ -1,23 +1,30 @@
1
1
  import type { ModelMessage } from "ai";
2
- import { type ContextContainer } from "#context/container.js";
3
- import { type DurableDynamicToolMetadata } from "#context/keys.js";
2
+ import { type AlsContext } from "#context/container.js";
3
+ import { type CurrentDynamicToolMetadata } from "#context/dynamic-tool-metadata.js";
4
4
  import type { HarnessToolDefinition } from "#harness/execute-tool.js";
5
- import type { SessionStartedStreamEvent, UnstampedMessageStreamEvent } from "#protocol/message.js";
5
+ import type { SessionStartedStreamEvent, StepStartedStreamEvent, UnstampedMessageStreamEvent } from "#protocol/message.js";
6
6
  import { type DynamicToolEntry } from "#tools/dynamic.js";
7
7
  import { type DurableDynamicToolCallbacks } from "#tools/durable-callbacks.js";
8
8
  import type { ResolvedDynamicToolResolver } from "#runtime/types.js";
9
9
  /** Kept as the session-specific entry point for existing runtime consumers. */
10
- export declare function replayDynamicSessionTools(metadata: readonly DurableDynamicToolMetadata[], _resolvers: readonly ResolvedDynamicToolResolver[]): readonly HarnessToolDefinition[];
10
+ export declare function replayDynamicSessionTools(metadata: readonly CurrentDynamicToolMetadata[], _resolvers: readonly ResolvedDynamicToolResolver[]): readonly HarnessToolDefinition[];
11
11
  export declare function validateDurableDynamicToolCallbacks(name: string, entry: DynamicToolEntry): DurableDynamicToolCallbacks;
12
12
  /** Resolves step-scoped tools once for one internal policy/model pass. */
13
13
  export declare function resolveStepDynamicTools(input: {
14
- readonly ctx: ContextContainer;
14
+ readonly ctx: AlsContext;
15
15
  readonly resolvers: readonly ResolvedDynamicToolResolver[];
16
- readonly event: UnstampedMessageStreamEvent;
16
+ readonly event: StepStartedStreamEvent;
17
+ readonly messages: readonly ModelMessage[];
18
+ }): Promise<void>;
19
+ /** Converts persisted step metadata before any approval replay can read it. */
20
+ export declare function preparePersistedStepDynamicToolMetadata(input: {
21
+ readonly ctx: AlsContext;
22
+ readonly resolvers: readonly ResolvedDynamicToolResolver[];
23
+ readonly event: StepStartedStreamEvent;
17
24
  readonly messages: readonly ModelMessage[];
18
25
  }): Promise<void>;
19
26
  export declare function dispatchDynamicToolEvent(input: {
20
- readonly ctx: ContextContainer;
27
+ readonly ctx: AlsContext;
21
28
  readonly resolvers: readonly ResolvedDynamicToolResolver[];
22
29
  readonly event: UnstampedMessageStreamEvent;
23
30
  readonly messages: readonly ModelMessage[];
@@ -28,7 +35,7 @@ export declare function dispatchDynamicToolEvent(input: {
28
35
  * a crash, or a redeploy), so replay always resolves against current code.
29
36
  */
30
37
  export declare function refreshDynamicSessionToolsForRuntimeRevision(input: {
31
- readonly ctx: ContextContainer;
38
+ readonly ctx: AlsContext;
32
39
  readonly resolvers: readonly ResolvedDynamicToolResolver[];
33
40
  readonly event: SessionStartedStreamEvent;
34
41
  readonly messages: readonly ModelMessage[];
@@ -36,7 +43,7 @@ export declare function refreshDynamicSessionToolsForRuntimeRevision(input: {
36
43
  }): Promise<void>;
37
44
  /** Re-registers callbacks for compiled resolvers that explicitly support cold replay. */
38
45
  export declare function rebindMissingCompiledDynamicToolCallbacks(input: {
39
- readonly ctx: ContextContainer;
46
+ readonly ctx: AlsContext;
40
47
  readonly event: UnstampedMessageStreamEvent;
41
48
  readonly messages: readonly ModelMessage[];
42
49
  readonly resolvers: readonly ResolvedDynamicToolResolver[];
@@ -1 +1 @@
1
- import{createLogger}from"#internal/logging.js";import{contextStorage}from"#context/container.js";import{SessionDynamicToolMetadataKey,SessionDynamicToolRuntimeRevisionKey,StepDynamicToolMetadataKey,TurnDynamicToolMetadataKey}from"#context/keys.js";import{toErrorMessage}from"#shared/errors.js";import{serializeInputSchema,serializeOutputSchema}from"#tools/schema.js";import{parseJsonObject}from"#shared/json.js";import{ALLOWED_DYNAMIC_TOOL_EVENTS}from"#dynamic/definition.js";import{hasUnregisteredDurableDynamicCallbacks,readDurableDynamicToolCallbacks,registerDurableDynamicCallback}from"#tools/durable-callbacks.js";import{buildResolveContext}from"#context/dynamic-resolve-context.js";import{replayDynamicTools}from"#context/build-dynamic-tools.js";import{isBrandedToolEntry}from"#tools/dynamic.js";const log=createLogger(`dynamic-tools`);function qualifyDynamicToolNames(e,t,n){let r=Object.keys(n);if(r.length===0)return[];if(t){let t=r[0];return[{name:e.slug,entryKey:t,entry:n[t]}]}let i=e.extensionNamespace===void 0?``:`${e.extensionNamespace}__`;return r.map(e=>({entry:n[e],entryKey:e,name:`${i}${e}`}))}function replayDynamicSessionTools(e,t){return replayDynamicTools(e)}function durableKeyForEvent(e){switch(e){case`session.started`:return SessionDynamicToolMetadataKey;case`turn.started`:return TurnDynamicToolMetadataKey;case`step.started`:return StepDynamicToolMetadataKey;default:return}}function readDynamicToolResult(e,t){if(isBrandedToolEntry(t))return{entries:{_single:t},isSingle:!0};if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`Dynamic tool resolver "${e.logicalPath}" must return defineTool(), a map of defineTool() values, or null.`);let n={};for(let[r,i]of Object.entries(t)){if(!isBrandedToolEntry(i))throw Error(`Dynamic tool resolver "${e.logicalPath}" returned "${r}" without defineTool(). Wrap every dynamic tool entry in defineTool().`);n[r]=i}return{entries:n,isSingle:!1}}function validateReference(e){if(e.stamped===void 0){if(e.required)throw Error(`Dynamic tool "${e.name}" callback "${e.phase}" does not have a durable descriptor. Author the callback inline in transformed source or use an eve durable callback helper.`);return}let t=Object.keys(e.stamped).filter(e=>e!==`closure`&&e!==`callback`);if(t.includes(`stepId`))throw Error(`Dynamic tool "${e.name}" callback "${e.phase}" was persisted by a pre-release eve version that identified callbacks by build offset. Start a new session to re-resolve it.`);if(t.length>0)throw Error(`Dynamic tool "${e.name}" has invalid ${e.phase} callback metadata: unknown key(s) ${t.join(`, `)}.`);if(typeof e.stamped.callback!=`function`)throw Error(`Dynamic tool "${e.name}" callback "${e.phase}" does not have a durable descriptor. Author the callback inline in transformed source or use an eve durable callback helper.`);let n;try{n=parseJsonObject(e.stamped.closure)}catch(t){throw Error(`Dynamic tool "${e.name}" callback "${e.phase}" has a non-serializable capture. ${toErrorMessage(t)}`)}return registerDurableDynamicCallback({callback:e.stamped.callback,phase:e.phase,toolName:e.name}),{closure:n}}function validateDurableDynamicToolCallbacks(e,t){let n=readDurableDynamicToolCallbacks(t)??{},r=Object.keys(n).filter(e=>e!==`execute`&&e!==`approvalRequest`&&e!==`approvalResponse`&&e!==`toModelOutput`);if(r.length>0)throw Error(`Dynamic tool "${e}" has unknown durable callback phase(s): ${r.join(`, `)}.`);let i=t.approval!==void 0,a=t.approval!==void 0&&typeof t.approval!=`function`&&t.approval.response!==void 0,o=validateReference({name:e,phase:`execute`,stamped:n.execute,required:!0}),s=validateReference({name:e,phase:`approvalRequest`,stamped:n.approvalRequest,required:i}),c=validateReference({name:e,phase:`approvalResponse`,stamped:n.approvalResponse,required:a}),l=validateReference({name:e,phase:`toModelOutput`,stamped:n.toModelOutput,required:t.toModelOutput!==void 0}),u={execute:o};return s!==void 0&&(u.approvalRequest=s),c!==void 0&&(u.approvalResponse=c),l!==void 0&&(u.toModelOutput=l),u}function createMetadata(e){return{callbacks:validateDurableDynamicToolCallbacks(e.name,e.entry),description:e.entry.description,entryKey:e.entryKey,inputSchema:serializeInputSchema(e.entry.inputSchema),name:e.name,outputSchema:serializeOutputSchema(e.entry.outputSchema),resolverSlug:e.resolver.slug}}async function resolveToolsFromEvent(e,t,n,r){let i=await Promise.allSettled(t.map(async t=>{let i=t.events[n.type];if(i===void 0)return null;let a=await i(n,buildResolveContext(e,r));if(a==null)return null;let{entries:o,isSingle:s}=readDynamicToolResult(t,a);return{metadata:qualifyDynamicToolNames(t,s,o).map(({name:e,entryKey:n,entry:r})=>createMetadata({entry:r,entryKey:n,name:e,resolver:t})),resolver:t}})),a=[],s=new Map;for(let e of i){if(e.status===`rejected`){log.error(`Dynamic tool resolver (${n.type}) failed — skipping its complete result.`,{error:toErrorMessage(e.reason)});continue}if(e.value!==null){for(let t of e.value.metadata){let n=s.get(t.name);if(n!==void 0&&n!==e.value.resolver.slug)throw Error(`Dynamic tool "${t.name}" from resolver "${e.value.resolver.slug}" collides with dynamic resolver "${n}". Namespace the map key manually.`);s.set(t.name,e.value.resolver.slug)}a.push(...e.value.metadata)}}return{metadata:a}}const resolvedStepTools=new WeakMap;async function resolveStepDynamicTools(e){let t=`data`in e.event?e.event.data:void 0,n=typeof t?.turnId==`string`&&typeof t.stepIndex==`number`?`${t.turnId}:${String(t.stepIndex)}`:void 0,r=resolvedStepTools.get(e.ctx);if(n!==void 0&&r?.coordinate===n){e.ctx.set(StepDynamicToolMetadataKey,r.metadata);return}let a=e.resolvers.filter(e=>e.eventNames.includes(`step.started`)),{metadata:o}=a.length===0?{metadata:[]}:await resolveToolsFromEvent(e.ctx,a,e.event,e.messages);e.ctx.set(StepDynamicToolMetadataKey,o),n!==void 0&&resolvedStepTools.set(e.ctx,{coordinate:n,metadata:o})}async function dispatchDynamicToolEvent(e){if(!ALLOWED_DYNAMIC_TOOL_EVENTS.has(e.event.type))return;if(e.event.type===`step.started`){await resolveStepDynamicTools(e);return}e.event.type===`turn.started`&&e.ctx.set(StepDynamicToolMetadataKey,[]);let t=e.resolvers.filter(t=>t.eventNames.includes(e.event.type)),{metadata:r}=t.length===0?{metadata:[]}:await resolveToolsFromEvent(e.ctx,t,e.event,e.messages),a=durableKeyForEvent(e.event.type);if(a===void 0)return;if(e.event.type===`session.started`){e.ctx.set(SessionDynamicToolMetadataKey,r);return}let o=new Set(t.map(e=>e.slug)),s=(e.ctx.get(a)??[]).filter(e=>!o.has(e.resolverSlug));e.ctx.set(a,[...s,...r])}async function refreshDynamicSessionToolsForRuntimeRevision(e){let t=e.ctx.get(SessionDynamicToolRuntimeRevisionKey)!==e.runtimeRevision,i=hasUnregisteredDurableDynamicCallbacks(e.ctx.get(SessionDynamicToolMetadataKey)??[]);if(!t&&!i)return;let a=e.resolvers.filter(e=>e.eventNames.includes(`session.started`)),{metadata:o}=a.length===0?{metadata:[]}:await resolveToolsFromEvent(e.ctx,a,e.event,e.messages);e.ctx.set(SessionDynamicToolMetadataKey,o),e.ctx.set(SessionDynamicToolRuntimeRevisionKey,e.runtimeRevision)}async function rebindMissingCompiledDynamicToolCallbacks(e){let n=(e.ctx.get(TurnDynamicToolMetadataKey)??[]).filter(e=>hasUnregisteredDurableDynamicCallbacks([e]));if(n.length===0)return;let r=new Set(n.map(e=>e.resolverSlug)),i=e.resolvers.filter(e=>e.rebindMissingCallbacks===!0&&r.has(e.slug));if(i.length===0)return;await contextStorage.run(e.ctx,async()=>await resolveToolsFromEvent(e.ctx,i,e.event,e.messages));let o=n.filter(e=>hasUnregisteredDurableDynamicCallbacks([e]));if(o.length>0)throw Error(`Dynamic tool callback rebind did not restore: ${o.map(e=>e.name).join(`, `)}. The tool may have been renamed or removed.`)}export{dispatchDynamicToolEvent,rebindMissingCompiledDynamicToolCallbacks,refreshDynamicSessionToolsForRuntimeRevision,replayDynamicSessionTools,resolveStepDynamicTools,validateDurableDynamicToolCallbacks};
1
+ import{createLogger}from"#internal/logging.js";import{contextStorage}from"#context/container.js";import{SessionDynamicToolMetadataKey,SessionDynamicToolRuntimeRevisionKey,StepDynamicToolMetadataKey,TurnDynamicToolMetadataKey}from"#context/keys.js";import{toErrorMessage}from"#shared/errors.js";import{serializeInputSchema,serializeOutputSchema}from"#tools/schema.js";import{parseJsonObject}from"#shared/json.js";import{ALLOWED_DYNAMIC_TOOL_EVENTS}from"#dynamic/definition.js";import{isCurrentDynamicToolMetadata,toCurrentDynamicToolMetadataList}from"#context/dynamic-tool-metadata.js";import{hasUnregisteredDurableDynamicCallbacks,readDurableDynamicToolCallbacks,registerDurableDynamicCallback}from"#tools/durable-callbacks.js";import{buildResolveContext}from"#context/dynamic-resolve-context.js";import{replayDynamicTools}from"#context/build-dynamic-tools.js";import{isBrandedToolEntry}from"#tools/dynamic.js";const log=createLogger(`dynamic-tools`);function qualifyDynamicToolNames(e,t,n){let r=Object.keys(n);if(r.length===0)return[];if(t){let t=r[0];return[{name:e.slug,entryKey:t,entry:n[t]}]}let i=e.extensionNamespace===void 0?``:`${e.extensionNamespace}__`;return r.map(e=>({entry:n[e],entryKey:e,name:`${i}${e}`}))}function replayDynamicSessionTools(e,t){return replayDynamicTools(e)}function durableKeyForEvent(e){switch(e){case`session.started`:return SessionDynamicToolMetadataKey;case`turn.started`:return TurnDynamicToolMetadataKey;case`step.started`:return StepDynamicToolMetadataKey;default:return}}function readDynamicToolResult(e,t){if(isBrandedToolEntry(t))return{entries:{_single:t},isSingle:!0};if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`Dynamic tool resolver "${e.logicalPath}" must return defineTool(), a map of defineTool() values, or null.`);let n={};for(let[r,i]of Object.entries(t)){if(!isBrandedToolEntry(i))throw Error(`Dynamic tool resolver "${e.logicalPath}" returned "${r}" without defineTool(). Wrap every dynamic tool entry in defineTool().`);n[r]=i}return{entries:n,isSingle:!1}}function validateReference(e){if(e.stamped===void 0){if(e.required)throw Error(`Dynamic tool "${e.name}" callback "${e.phase}" does not have a durable descriptor. Author the callback inline in transformed source or use an eve durable callback helper.`);return}let t=Object.keys(e.stamped).filter(e=>e!==`closure`&&e!==`callback`);if(t.includes(`stepId`))throw Error(`Dynamic tool "${e.name}" callback "${e.phase}" was persisted by a pre-release eve version that identified callbacks by build offset. Start a new session to re-resolve it.`);if(t.length>0)throw Error(`Dynamic tool "${e.name}" has invalid ${e.phase} callback metadata: unknown key(s) ${t.join(`, `)}.`);if(typeof e.stamped.callback!=`function`)throw Error(`Dynamic tool "${e.name}" callback "${e.phase}" does not have a durable descriptor. Author the callback inline in transformed source or use an eve durable callback helper.`);let n;try{n=parseJsonObject(e.stamped.closure)}catch(t){throw Error(`Dynamic tool "${e.name}" callback "${e.phase}" has a non-serializable capture. ${toErrorMessage(t)}`)}return registerDurableDynamicCallback({callback:e.stamped.callback,phase:e.phase,toolName:e.name}),{closure:n}}function validateDurableDynamicToolCallbacks(e,t){let n=readDurableDynamicToolCallbacks(t)??{},r=Object.keys(n).filter(e=>e!==`execute`&&e!==`approvalRequest`&&e!==`approvalResponse`&&e!==`toModelOutput`);if(r.length>0)throw Error(`Dynamic tool "${e}" has unknown durable callback phase(s): ${r.join(`, `)}.`);let i=t.approval!==void 0,a=t.approval!==void 0&&typeof t.approval!=`function`&&t.approval.response!==void 0,o=validateReference({name:e,phase:`execute`,stamped:n.execute,required:!0}),s=validateReference({name:e,phase:`approvalRequest`,stamped:n.approvalRequest,required:i}),c=validateReference({name:e,phase:`approvalResponse`,stamped:n.approvalResponse,required:a}),l=validateReference({name:e,phase:`toModelOutput`,stamped:n.toModelOutput,required:t.toModelOutput!==void 0}),u={execute:o};return s!==void 0&&(u.approvalRequest=s),c!==void 0&&(u.approvalResponse=c),l!==void 0&&(u.toModelOutput=l),u}function createMetadata(e){return{callbacks:validateDurableDynamicToolCallbacks(e.name,e.entry),description:e.entry.description,entryKey:e.entryKey,inputSchema:serializeInputSchema(e.entry.inputSchema),name:e.name,outputSchema:serializeOutputSchema(e.entry.outputSchema),resolverSlug:e.resolver.slug}}async function resolveToolsFromEvent(e,t,n,r){let i=await Promise.allSettled(t.map(async t=>{let i=t.events[n.type];if(i===void 0)return null;let a=await i(n,buildResolveContext(e,r));if(a==null)return null;let{entries:o,isSingle:s}=readDynamicToolResult(t,a);return{metadata:qualifyDynamicToolNames(t,s,o).map(({name:e,entryKey:n,entry:r})=>createMetadata({entry:r,entryKey:n,name:e,resolver:t})),resolver:t}})),a=[],s=new Map;for(let e of i){if(e.status===`rejected`){log.error(`Dynamic tool resolver (${n.type}) failed — skipping its complete result.`,{error:toErrorMessage(e.reason)});continue}if(e.value!==null){for(let t of e.value.metadata){let n=s.get(t.name);if(n!==void 0&&n!==e.value.resolver.slug)throw Error(`Dynamic tool "${t.name}" from resolver "${e.value.resolver.slug}" collides with dynamic resolver "${n}". Namespace the map key manually.`);s.set(t.name,e.value.resolver.slug)}a.push(...e.value.metadata)}}return{metadata:a}}const resolvedStepTools=new WeakMap;function stepCoordinate(e){return`${e.data.turnId}:${String(e.data.stepIndex)}`}function storeResolvedStepTools(e){e.ctx.set(StepDynamicToolMetadataKey,e.metadata);let t=stepCoordinate(e.event);resolvedStepTools.set(e.ctx,{coordinate:t,metadata:e.metadata})}async function resolveStepDynamicTools(e){let t=stepCoordinate(e.event),n=resolvedStepTools.get(e.ctx);if(n?.coordinate===t){e.ctx.set(StepDynamicToolMetadataKey,n.metadata);return}let r=e.resolvers.filter(e=>e.eventNames.includes(`step.started`)),{metadata:a}=r.length===0?{metadata:[]}:await resolveToolsFromEvent(e.ctx,r,e.event,e.messages);storeResolvedStepTools({ctx:e.ctx,event:e.event,metadata:a})}async function preparePersistedStepDynamicToolMetadata(e){let t=e.ctx.get(StepDynamicToolMetadataKey)??[],n=t.filter(isCurrentDynamicToolMetadata);if(n.length===t.length&&!hasUnregisteredDurableDynamicCallbacks(n)){n.length>0&&storeResolvedStepTools({ctx:e.ctx,event:e.event,metadata:n});return}await resolveStepDynamicTools(e);let r=e.ctx.get(StepDynamicToolMetadataKey)??[];storeResolvedStepTools({ctx:e.ctx,event:e.event,metadata:toCurrentDynamicToolMetadataList(t,r.filter(isCurrentDynamicToolMetadata))})}async function dispatchDynamicToolEvent(e){if(!ALLOWED_DYNAMIC_TOOL_EVENTS.has(e.event.type))return;if(e.event.type===`step.started`){await resolveStepDynamicTools({...e,event:e.event});return}e.event.type===`turn.started`&&e.ctx.set(StepDynamicToolMetadataKey,[]);let t=e.resolvers.filter(t=>t.eventNames.includes(e.event.type)),{metadata:r}=t.length===0?{metadata:[]}:await resolveToolsFromEvent(e.ctx,t,e.event,e.messages),a=durableKeyForEvent(e.event.type);if(a===void 0)return;if(e.event.type===`session.started`){e.ctx.set(SessionDynamicToolMetadataKey,r);return}let o=new Set(t.map(e=>e.slug)),s=(e.ctx.get(a)??[]).filter(e=>!o.has(e.resolverSlug));e.ctx.set(a,[...s,...r])}async function refreshDynamicSessionToolsForRuntimeRevision(e){let t=e.ctx.get(SessionDynamicToolMetadataKey)??[],i=t.filter(isCurrentDynamicToolMetadata),a=i.length!==t.length,o=e.ctx.get(SessionDynamicToolRuntimeRevisionKey)!==e.runtimeRevision;if(!o&&!a&&!hasUnregisteredDurableDynamicCallbacks(i))return;let s=e.resolvers.filter(e=>e.eventNames.includes(`session.started`)),{metadata:c}=s.length===0?{metadata:[]}:await resolveToolsFromEvent(e.ctx,s,e.event,e.messages);e.ctx.set(SessionDynamicToolMetadataKey,o?c:toCurrentDynamicToolMetadataList(t,c)),e.ctx.set(SessionDynamicToolRuntimeRevisionKey,e.runtimeRevision)}async function rebindMissingCompiledDynamicToolCallbacks(e){let n=e.ctx.get(TurnDynamicToolMetadataKey)??[],r=n.filter(e=>!isCurrentDynamicToolMetadata(e)||hasUnregisteredDurableDynamicCallbacks([e]));if(r.length===0)return;let i=new Set(r.map(e=>e.resolverSlug)),o=new Set(n.filter(e=>!isCurrentDynamicToolMetadata(e)).map(e=>e.resolverSlug)),s=e.resolvers.filter(e=>i.has(e.slug)&&(o.has(e.slug)||e.rebindMissingCallbacks===!0));if(s.length===0){e.ctx.set(TurnDynamicToolMetadataKey,toCurrentDynamicToolMetadataList(n));return}let c=toCurrentDynamicToolMetadataList(n,(await contextStorage.run(e.ctx,async()=>await resolveToolsFromEvent(e.ctx,s,e.event,e.messages))).metadata);e.ctx.set(TurnDynamicToolMetadataKey,c);let l=c.filter(e=>r.some(t=>t.resolverSlug===e.resolverSlug&&t.name===e.name)&&hasUnregisteredDurableDynamicCallbacks([e]));if(l.length>0)throw Error(`Dynamic tool callback rebind did not restore: ${l.map(e=>e.name).join(`, `)}. The tool may have been renamed or removed.`)}export{dispatchDynamicToolEvent,preparePersistedStepDynamicToolMetadata,rebindMissingCompiledDynamicToolCallbacks,refreshDynamicSessionToolsForRuntimeRevision,replayDynamicSessionTools,resolveStepDynamicTools,validateDurableDynamicToolCallbacks};
@@ -0,0 +1,44 @@
1
+ import type { JsonObject } from "#shared/json.js";
2
+ import type { DurableDynamicToolCallbacks } from "#tools/durable-callbacks.js";
3
+ interface DynamicToolMetadataBase {
4
+ readonly name: string;
5
+ readonly description: string;
6
+ readonly inputSchema: JsonObject;
7
+ readonly outputSchema?: JsonObject;
8
+ readonly resolverSlug: string;
9
+ readonly entryKey: string;
10
+ }
11
+ /** Current schema: callback identity is the surrounding tool name and phase. */
12
+ export interface CurrentDynamicToolMetadata extends DynamicToolMetadataBase {
13
+ readonly callbacks: DurableDynamicToolCallbacks;
14
+ }
15
+ /** Old schema written before callback descriptors existed. */
16
+ export interface OldStepFunctionDynamicToolMetadata extends DynamicToolMetadataBase {
17
+ readonly callbacks?: never;
18
+ readonly executeStepFnName?: string;
19
+ readonly approvalStepFnName?: string;
20
+ readonly approvalResponseStepFnName?: string;
21
+ readonly closureVars?: Record<string, unknown>;
22
+ }
23
+ interface OldSourceOffsetDynamicCallbackReference {
24
+ readonly closure: JsonObject;
25
+ readonly stepId: string;
26
+ }
27
+ /** Old schema whose callback identity was a generated source offset. */
28
+ export interface OldSourceOffsetDynamicToolMetadata extends DynamicToolMetadataBase {
29
+ readonly callbacks: {
30
+ readonly execute: OldSourceOffsetDynamicCallbackReference;
31
+ readonly approvalRequest?: OldSourceOffsetDynamicCallbackReference;
32
+ readonly approvalResponse?: OldSourceOffsetDynamicCallbackReference;
33
+ readonly toModelOutput?: OldSourceOffsetDynamicCallbackReference;
34
+ };
35
+ }
36
+ export type OldDynamicToolMetadata = OldStepFunctionDynamicToolMetadata | OldSourceOffsetDynamicToolMetadata;
37
+ export type PersistedDynamicToolMetadata = CurrentDynamicToolMetadata | OldDynamicToolMetadata;
38
+ export declare function isOldSourceOffsetDynamicToolMetadata(metadata: PersistedDynamicToolMetadata): metadata is OldSourceOffsetDynamicToolMetadata;
39
+ export declare function isCurrentDynamicToolMetadata(metadata: PersistedDynamicToolMetadata): metadata is CurrentDynamicToolMetadata;
40
+ export declare function isOldStepFunctionDynamicToolMetadata(metadata: PersistedDynamicToolMetadata): metadata is OldStepFunctionDynamicToolMetadata;
41
+ /** Converts persisted metadata without changing already-persisted callback closures. */
42
+ export declare function toCurrentDynamicToolMetadata(persisted: PersistedDynamicToolMetadata, resolved?: CurrentDynamicToolMetadata): CurrentDynamicToolMetadata;
43
+ export declare function toCurrentDynamicToolMetadataList(persisted: readonly PersistedDynamicToolMetadata[], resolved?: readonly CurrentDynamicToolMetadata[]): readonly CurrentDynamicToolMetadata[];
44
+ export {};
@@ -0,0 +1 @@
1
+ function isOldSourceOffsetDynamicToolMetadata(e){return e.callbacks!==void 0&&`stepId`in e.callbacks.execute}function isCurrentDynamicToolMetadata(e){return e.callbacks!==void 0&&!isOldSourceOffsetDynamicToolMetadata(e)}function isOldStepFunctionDynamicToolMetadata(e){return e.callbacks===void 0}function withoutSourceOffset(e){return{closure:e.closure}}function convertSourceOffsetMetadata(e){let t={execute:withoutSourceOffset(e.callbacks.execute),...e.callbacks.approvalRequest===void 0?{}:{approvalRequest:withoutSourceOffset(e.callbacks.approvalRequest)},...e.callbacks.approvalResponse===void 0?{}:{approvalResponse:withoutSourceOffset(e.callbacks.approvalResponse)},...e.callbacks.toModelOutput===void 0?{}:{toModelOutput:withoutSourceOffset(e.callbacks.toModelOutput)}};return{...e,callbacks:t}}function toCurrentDynamicToolMetadata(e,t){if(isCurrentDynamicToolMetadata(e))return e;if(t===void 0)throw Error(`Dynamic tool "${e.name}" uses old persisted metadata, but its resolver did not return a current replacement.`);if(t.resolverSlug!==e.resolverSlug||t.name!==e.name)throw Error(`Dynamic tool "${e.name}" received current metadata from a different resolver or tool.`);if(!isOldStepFunctionDynamicToolMetadata(e)){for(let n of Object.keys(e.callbacks))if(t.callbacks[n]===void 0)throw Error(`Dynamic tool "${e.name}" lost its ${n} callback while converting old persisted metadata.`);return convertSourceOffsetMetadata(e)}if(e.approvalResponseStepFnName!==void 0&&e.approvalStepFnName===void 0)throw Error(`Dynamic tool "${e.name}" has an old approval-response callback without an approval-request callback.`);if(e.approvalStepFnName!==void 0&&t.callbacks.approvalRequest===void 0)throw Error(`Dynamic tool "${e.name}" lost its approval-request callback while converting old persisted metadata.`);if(e.approvalResponseStepFnName!==void 0&&t.callbacks.approvalResponse===void 0)throw Error(`Dynamic tool "${e.name}" lost its approval-response callback while converting old persisted metadata.`);return t}function toCurrentDynamicToolMetadataList(e,t=[]){return e.map(e=>toCurrentDynamicToolMetadata(e,t.find(t=>t.resolverSlug===e.resolverSlug&&t.name===e.name)))}export{isCurrentDynamicToolMetadata,isOldSourceOffsetDynamicToolMetadata,isOldStepFunctionDynamicToolMetadata,toCurrentDynamicToolMetadata,toCurrentDynamicToolMetadataList};
@@ -4,13 +4,11 @@
4
4
  * `#runtime/sessions/runtime-context-keys.ts`.
5
5
  */
6
6
  import type { LanguageModel, ModelMessage, SystemModelMessage } from "ai";
7
- import type { JsonObject } from "#shared/json.js";
8
- import type { InstrumentationDecision } from "#shared/instrumentation-decision.js";
9
7
  import type { ActivityObserverConfig, ChannelDeliveryMetadata, ChannelInstrumentationProjection, SessionAuthContext, SessionCallback, SessionCapabilities, SessionParent, SessionTraceContext, SessionTurn } from "#channel/types.js";
10
8
  import { ContextKey } from "#context/key.js";
11
9
  import type { InstrumentationChannelDeliveryRef } from "#instrumentation/lifecycle.js";
12
10
  import type { HandleEventFn } from "#harness/types.js";
13
- import type { DurableDynamicToolCallbacks } from "#tools/durable-callbacks.js";
11
+ import type { PersistedDynamicToolMetadata } from "#context/dynamic-tool-metadata.js";
14
12
  import type { DynamicSubagentAgentConfig } from "#runtime/subagents/dynamic-agent-config.js";
15
13
  import type { DynamicRemoteAgentConfig } from "#runtime/subagents/dynamic-remote-agent-config.js";
16
14
  import type { SandboxAccess } from "#sandbox/state.js";
@@ -48,6 +46,13 @@ export declare const InitiatorAuthKey: ContextKey<SessionAuthContext | null>;
48
46
  export declare const SessionIdKey: ContextKey<string>;
49
47
  export declare const ContinuationTokenKey: ContextKey<string>;
50
48
  export declare const ChannelRequestIdKey: ContextKey<string>;
49
+ /** Parent-verified local client provenance, valid only for the current dev host secret. */
50
+ export interface LocalDevRequestProvenance {
51
+ readonly address: string;
52
+ readonly interactiveClient: boolean;
53
+ readonly signature: string;
54
+ }
55
+ export declare const LocalDevRequestKey: ContextKey<LocalDevRequestProvenance>;
51
56
  /** Authored schedule whose dispatch created this session. */
52
57
  export declare const ScheduleIdKey: ContextKey<string>;
53
58
  export declare const ChannelDeliveryKey: ContextKey<ChannelDeliveryMetadata>;
@@ -67,17 +72,13 @@ export interface ActiveChannelDelivery {
67
72
  }
68
73
  export declare const ActiveChannelDeliveriesKey: ContextKey<readonly ActiveChannelDelivery[]>;
69
74
  export declare const ChannelInstrumentationKey: ContextKey<ChannelInstrumentationProjection>;
75
+ /** Trace ceiling and immutable origin accepted from a trusted forwarding deployment. */
70
76
  export declare const ModeKey: ContextKey<RunMode>;
71
77
  export declare const ParentSessionKey: ContextKey<SessionParent>;
72
78
  /** Separate from {@link ParentSessionKey} so it stays out of what extensions read. */
73
79
  export declare const ParentTraceContextKey: ContextKey<SessionTraceContext>;
74
- export interface SessionTraceSeed {
75
- readonly decision?: InstrumentationDecision;
76
- readonly traceId: string;
77
- readonly spanId: string;
78
- readonly traceFlags: number;
79
- }
80
- export declare const SessionTraceSeedKey: ContextKey<SessionTraceSeed>;
80
+ export type SessionTraceSeed = SessionTraceContext;
81
+ export declare const SessionTraceSeedKey: ContextKey<SessionTraceContext>;
81
82
  export declare const OtelTraceEnabledKey: ContextKey<boolean>;
82
83
  export declare const SubagentDepthKey: ContextKey<number>;
83
84
  /**
@@ -113,20 +114,11 @@ export interface LiveDynamicModelSelection {
113
114
  }
114
115
  /** Virtual step-scoped dynamic model selection (from `step.started`); never serialized. */
115
116
  export declare const LiveStepDynamicModelSelectionKey: ContextKey<LiveDynamicModelSelection | null>;
116
- export interface DurableDynamicToolMetadata {
117
- readonly callbacks: DurableDynamicToolCallbacks;
118
- readonly name: string;
119
- readonly description: string;
120
- readonly inputSchema: JsonObject;
121
- readonly outputSchema?: JsonObject;
122
- readonly resolverSlug: string;
123
- readonly entryKey: string;
124
- }
125
117
  /**
126
118
  * Session-scoped dynamic tool metadata (from `session.started`).
127
119
  * Persists for the session lifetime.
128
120
  */
129
- export declare const SessionDynamicToolMetadataKey: ContextKey<readonly DurableDynamicToolMetadata[]>;
121
+ export declare const SessionDynamicToolMetadataKey: ContextKey<readonly PersistedDynamicToolMetadata[]>;
130
122
  /**
131
123
  * Runtime revision that last resolved session-scoped dynamic tools.
132
124
  * Used to refresh their durable metadata after a deploy or development rebuild.
@@ -136,7 +128,7 @@ export declare const SessionDynamicToolRuntimeRevisionKey: ContextKey<string>;
136
128
  * Turn-scoped dynamic tool metadata (from `turn.started`).
137
129
  * Replaced each turn.
138
130
  */
139
- export declare const TurnDynamicToolMetadataKey: ContextKey<readonly DurableDynamicToolMetadata[]>;
131
+ export declare const TurnDynamicToolMetadataKey: ContextKey<readonly PersistedDynamicToolMetadata[]>;
140
132
  export interface LockedMemorySlot {
141
133
  readonly scope: MemoryScope;
142
134
  readonly slot: string;
@@ -162,7 +154,7 @@ export interface PreparedMemoryCompaction {
162
154
  }
163
155
  export declare const PreparedMemoryCompactionKey: ContextKey<PreparedMemoryCompaction>;
164
156
  /** Step-scoped dynamic tool metadata, replaced before each model step. */
165
- export declare const StepDynamicToolMetadataKey: ContextKey<readonly DurableDynamicToolMetadata[]>;
157
+ export declare const StepDynamicToolMetadataKey: ContextKey<readonly PersistedDynamicToolMetadata[]>;
166
158
  /** Whether this turn executes subagent definitions as durable background tools. */
167
159
  export declare const TasksEnabledKey: ContextKey<boolean>;
168
160
  export type DurableDynamicSubagentSelection = {
@@ -1 +1 @@
1
- import{ContextKey}from"#context/key.js";import{SESSION_CALLBACK_CONTEXT_KEY_NAME}from"#context/key-names.js";const AuthKey=new ContextKey(`eve.auth`),InitiatorAuthKey=new ContextKey(`eve.initiatorAuth`),SessionIdKey=new ContextKey(`eve.sessionId`),ContinuationTokenKey=new ContextKey(`eve.continuationToken`),ChannelRequestIdKey=new ContextKey(`eve.channelRequestId`),ScheduleIdKey=new ContextKey(`eve.scheduleId`),ChannelDeliveryKey=new ContextKey(`eve.channelDelivery`),TurnTaskDeliveryKey=new ContextKey(`eve.turnTaskDelivery`),TurnTaskStateKey=new ContextKey(`eve.turnTaskState`),ActiveChannelDeliveriesKey=new ContextKey(`eve.activeChannelDeliveries`),ChannelInstrumentationKey=new ContextKey(`eve.channelInstrumentation`),ModeKey=new ContextKey(`eve.mode`),ParentSessionKey=new ContextKey(`eve.parentSession`),ParentTraceContextKey=new ContextKey(`eve.parentTraceContext`),SessionTraceSeedKey=new ContextKey(`eve.sessionTraceSeed`),OtelTraceEnabledKey=new ContextKey(`eve.otelTraceEnabled`),SubagentDepthKey=new ContextKey(`eve.subagentDepth`),CapabilitiesKey=new ContextKey(`eve.capabilities`),ActivityObserverKey=new ContextKey(`eve.activityObserver`),SessionCallbackKey=new ContextKey(SESSION_CALLBACK_CONTEXT_KEY_NAME),SessionKey=new ContextKey(`eve.session`),SandboxKey=new ContextKey(`eve.sandbox`),HandleEventKey=new ContextKey(`eve.internal.handleEvent`),SessionDynamicModelReferenceKey=new ContextKey(`eve.sessionDynamicModelReference`),TurnDynamicModelReferenceKey=new ContextKey(`eve.turnDynamicModelReference`),RuntimeModelMetadataCacheKey=new ContextKey(`eve.runtimeModelMetadataCache`),LiveStepDynamicModelSelectionKey=new ContextKey(`eve.liveStepDynamicModelSelection`),SessionDynamicToolMetadataKey=new ContextKey(`eve.sessionDynamicToolMetadata`),SessionDynamicToolRuntimeRevisionKey=new ContextKey(`eve.sessionDynamicToolRuntimeRevision`),TurnDynamicToolMetadataKey=new ContextKey(`eve.turnDynamicToolMetadata`),TurnMemoryLocksKey=new ContextKey(`eve.memory.turnLocks`),PreparedMemoryPreambleKey=new ContextKey(`eve.memory.preparedPreamble`),PendingMemoryCommitKey=new ContextKey(`eve.memory.pendingCommit`),PreparedMemoryCompactionKey=new ContextKey(`eve.memory.preparedCompaction`),StepDynamicToolMetadataKey=new ContextKey(`eve.stepDynamicToolMetadata`),TasksEnabledKey=new ContextKey(`eve.tasksEnabled`),SessionDynamicSubagentSelectionsKey=new ContextKey(`eve.sessionDynamicSubagentSelections`),TurnDynamicSubagentSelectionsKey=new ContextKey(`eve.turnDynamicSubagentSelections`),SessionDynamicSubagentRuntimeRevisionKey=new ContextKey(`eve.sessionDynamicSubagentRuntimeRevision`),DynamicSubagentAgentConfigKey=new ContextKey(`eve.dynamicSubagentAgentConfig`),DynamicSkillManifestKey=new ContextKey(`eve.dynamicSkillManifest`),SessionDynamicInstructionsKey=new ContextKey(`eve.sessionDynamicInstructions`),TurnDynamicInstructionsKey=new ContextKey(`eve.turnDynamicInstructions`),DynamicInstructionResolveMessagesKey=new ContextKey(`eve.dynamicInstructionResolveMessages`),PendingDynamicInstructionUserMessagesKey=new ContextKey(`eve.pendingDynamicInstructionUserMessages`);export{ActiveChannelDeliveriesKey,ActivityObserverKey,AuthKey,CapabilitiesKey,ChannelDeliveryKey,ChannelInstrumentationKey,ChannelRequestIdKey,ContinuationTokenKey,DynamicInstructionResolveMessagesKey,DynamicSkillManifestKey,DynamicSubagentAgentConfigKey,HandleEventKey,InitiatorAuthKey,LiveStepDynamicModelSelectionKey,ModeKey,OtelTraceEnabledKey,ParentSessionKey,ParentTraceContextKey,PendingDynamicInstructionUserMessagesKey,PendingMemoryCommitKey,PreparedMemoryCompactionKey,PreparedMemoryPreambleKey,RuntimeModelMetadataCacheKey,SandboxKey,ScheduleIdKey,SessionCallbackKey,SessionDynamicInstructionsKey,SessionDynamicModelReferenceKey,SessionDynamicSubagentRuntimeRevisionKey,SessionDynamicSubagentSelectionsKey,SessionDynamicToolMetadataKey,SessionDynamicToolRuntimeRevisionKey,SessionIdKey,SessionKey,SessionTraceSeedKey,StepDynamicToolMetadataKey,SubagentDepthKey,TasksEnabledKey,TurnDynamicInstructionsKey,TurnDynamicModelReferenceKey,TurnDynamicSubagentSelectionsKey,TurnDynamicToolMetadataKey,TurnMemoryLocksKey,TurnTaskDeliveryKey,TurnTaskStateKey};
1
+ import{ContextKey}from"#context/key.js";import{SESSION_CALLBACK_CONTEXT_KEY_NAME}from"#context/key-names.js";const AuthKey=new ContextKey(`eve.auth`),InitiatorAuthKey=new ContextKey(`eve.initiatorAuth`),SessionIdKey=new ContextKey(`eve.sessionId`),ContinuationTokenKey=new ContextKey(`eve.continuationToken`),ChannelRequestIdKey=new ContextKey(`eve.channelRequestId`),LocalDevRequestKey=new ContextKey(`eve.internal.localDevRequest`),ScheduleIdKey=new ContextKey(`eve.scheduleId`),ChannelDeliveryKey=new ContextKey(`eve.channelDelivery`),TurnTaskDeliveryKey=new ContextKey(`eve.turnTaskDelivery`),TurnTaskStateKey=new ContextKey(`eve.turnTaskState`),ActiveChannelDeliveriesKey=new ContextKey(`eve.activeChannelDeliveries`),ChannelInstrumentationKey=new ContextKey(`eve.channelInstrumentation`),ModeKey=new ContextKey(`eve.mode`),ParentSessionKey=new ContextKey(`eve.parentSession`),ParentTraceContextKey=new ContextKey(`eve.parentTraceContext`),SessionTraceSeedKey=new ContextKey(`eve.sessionTraceSeed`),OtelTraceEnabledKey=new ContextKey(`eve.otelTraceEnabled`),SubagentDepthKey=new ContextKey(`eve.subagentDepth`),CapabilitiesKey=new ContextKey(`eve.capabilities`),ActivityObserverKey=new ContextKey(`eve.activityObserver`),SessionCallbackKey=new ContextKey(SESSION_CALLBACK_CONTEXT_KEY_NAME),SessionKey=new ContextKey(`eve.session`),SandboxKey=new ContextKey(`eve.sandbox`),HandleEventKey=new ContextKey(`eve.internal.handleEvent`),SessionDynamicModelReferenceKey=new ContextKey(`eve.sessionDynamicModelReference`),TurnDynamicModelReferenceKey=new ContextKey(`eve.turnDynamicModelReference`),RuntimeModelMetadataCacheKey=new ContextKey(`eve.runtimeModelMetadataCache`),LiveStepDynamicModelSelectionKey=new ContextKey(`eve.liveStepDynamicModelSelection`),SessionDynamicToolMetadataKey=new ContextKey(`eve.sessionDynamicToolMetadata`),SessionDynamicToolRuntimeRevisionKey=new ContextKey(`eve.sessionDynamicToolRuntimeRevision`),TurnDynamicToolMetadataKey=new ContextKey(`eve.turnDynamicToolMetadata`),TurnMemoryLocksKey=new ContextKey(`eve.memory.turnLocks`),PreparedMemoryPreambleKey=new ContextKey(`eve.memory.preparedPreamble`),PendingMemoryCommitKey=new ContextKey(`eve.memory.pendingCommit`),PreparedMemoryCompactionKey=new ContextKey(`eve.memory.preparedCompaction`),StepDynamicToolMetadataKey=new ContextKey(`eve.stepDynamicToolMetadata`),TasksEnabledKey=new ContextKey(`eve.tasksEnabled`),SessionDynamicSubagentSelectionsKey=new ContextKey(`eve.sessionDynamicSubagentSelections`),TurnDynamicSubagentSelectionsKey=new ContextKey(`eve.turnDynamicSubagentSelections`),SessionDynamicSubagentRuntimeRevisionKey=new ContextKey(`eve.sessionDynamicSubagentRuntimeRevision`),DynamicSubagentAgentConfigKey=new ContextKey(`eve.dynamicSubagentAgentConfig`),DynamicSkillManifestKey=new ContextKey(`eve.dynamicSkillManifest`),SessionDynamicInstructionsKey=new ContextKey(`eve.sessionDynamicInstructions`),TurnDynamicInstructionsKey=new ContextKey(`eve.turnDynamicInstructions`),DynamicInstructionResolveMessagesKey=new ContextKey(`eve.dynamicInstructionResolveMessages`),PendingDynamicInstructionUserMessagesKey=new ContextKey(`eve.pendingDynamicInstructionUserMessages`);export{ActiveChannelDeliveriesKey,ActivityObserverKey,AuthKey,CapabilitiesKey,ChannelDeliveryKey,ChannelInstrumentationKey,ChannelRequestIdKey,ContinuationTokenKey,DynamicInstructionResolveMessagesKey,DynamicSkillManifestKey,DynamicSubagentAgentConfigKey,HandleEventKey,InitiatorAuthKey,LiveStepDynamicModelSelectionKey,LocalDevRequestKey,ModeKey,OtelTraceEnabledKey,ParentSessionKey,ParentTraceContextKey,PendingDynamicInstructionUserMessagesKey,PendingMemoryCommitKey,PreparedMemoryCompactionKey,PreparedMemoryPreambleKey,RuntimeModelMetadataCacheKey,SandboxKey,ScheduleIdKey,SessionCallbackKey,SessionDynamicInstructionsKey,SessionDynamicModelReferenceKey,SessionDynamicSubagentRuntimeRevisionKey,SessionDynamicSubagentSelectionsKey,SessionDynamicToolMetadataKey,SessionDynamicToolRuntimeRevisionKey,SessionIdKey,SessionKey,SessionTraceSeedKey,StepDynamicToolMetadataKey,SubagentDepthKey,TasksEnabledKey,TurnDynamicInstructionsKey,TurnDynamicModelReferenceKey,TurnDynamicSubagentSelectionsKey,TurnDynamicToolMetadataKey,TurnMemoryLocksKey,TurnTaskDeliveryKey,TurnTaskStateKey};
@@ -1 +1 @@
1
- import{EVE_ACTIVITY_ROUTE_PATTERN,EVE_CALLBACK_ROUTE_PATTERN,EVE_CONNECTION_CALLBACK_ROUTE_PATTERN,EVE_HEALTH_ROUTE_PATH,EVE_INFO_ROUTE_PATH,EVE_LEGACY_CONNECTION_CALLBACK_ROUTE_PATTERN,EVE_SESSION_CANCEL_ROUTE_PATTERN,EVE_SESSION_CLEAR_ROUTE_PATTERN,EVE_SESSION_COMPACT_ROUTE_PATTERN,EVE_SESSION_RESET_ROUTE_PATTERN,EVE_SESSION_ROUTE_PATH,EVE_SESSION_ROUTE_PATTERN,EVE_SESSION_STREAM_ROUTE_PATTERN,EVE_SUBAGENT_STREAM_ROUTE_PATTERN,EVE_TASK_INPUT_ROUTE_PATTERN,createEveSessionStreamRoutePath,createEveSubagentStreamRoutePath}from"#protocol/routes.js";import{createLogger,logError}from"#internal/logging.js";import{isRuntimeSessionOwnershipConflictError}from"#execution/runtime-errors.js";import{EVE_SESSION_ID_HEADER,EVE_STREAM_FORMAT_HEADER,EVE_STREAM_TAIL_INDEX_HEADER,EVE_STREAM_VERSION_HEADER}from"#protocol/message.js";import{GET,HEAD,POST,defineChannel}from"#public/definitions/channel.js";import{resolveForwardedPrincipal}from"#channel/forwarded-principal.js";import{handleConnectionCallbackRequest,handleLegacyConnectionCallbackRequest}from"#execution/connections/callback-route.js";import{handleActivityRequest}from"#execution/activity-route.js";import{handleSessionCallbackRequest}from"#execution/session-callback-route.js";import{handleTaskInputResponseRequest}from"#execution/task-input-response-route.js";import{readAgentInfoRouteResponse,readRemoteAgentStreamHeadersResolver,readRouteSessionCreator}from"#internal/nitro/routes/channel-route-context.js";import{parseTraceparent}from"#protocol/traceparent.js";import{routeAuth}from"#public/channels/auth.js";import{mergeUploadPolicy}from"#public/channels/upload-policy.js";import{checkUploadPolicy,createSessionStreamResponse,deriveOperationContinuationToken,mergeContext,parseCancelTurnBody,parseCreateBody,parseIncludeTailIndex,parseJsonRequest,parseResetBody,parseSessionControlBody,parseSessionMessageBody,parseStartIndex,rejectSessionContinuationToken,requireSessionId}from"#eve-channel/request.js";import{findRemoteSubagentBinding,healthResponse,normalizeEveCors,resolveOnMessage}from"#eve-channel/support.js";export*from"#eve-channel/types.js";const log=createLogger(`eve.channel`);function eveChannel(h){let g=mergeUploadPolicy(h.uploadPolicy);return defineChannel({cors:normalizeEveCors(h.cors),turnPolicy:h.turnPolicy,routes:[GET(EVE_HEALTH_ROUTE_PATH,async()=>healthResponse()),HEAD(EVE_HEALTH_ROUTE_PATH,async()=>healthResponse()),GET(EVE_INFO_ROUTE_PATH,async(e,t)=>{let n=await routeAuth(e,h.auth);if(n instanceof Response)return n;let r=readAgentInfoRouteResponse(t);return r===void 0?Response.json({error:`Agent info route requires internal channel dispatch context.`,ok:!1},{status:500}):await r()}),GET(EVE_CONNECTION_CALLBACK_ROUTE_PATTERN,handleConnectionCallbackRequest),POST(EVE_CONNECTION_CALLBACK_ROUTE_PATTERN,handleConnectionCallbackRequest),GET(EVE_LEGACY_CONNECTION_CALLBACK_ROUTE_PATTERN,handleLegacyConnectionCallbackRequest),POST(EVE_LEGACY_CONNECTION_CALLBACK_ROUTE_PATTERN,handleLegacyConnectionCallbackRequest),POST(EVE_ACTIVITY_ROUTE_PATTERN,handleActivityRequest),POST(EVE_CALLBACK_ROUTE_PATTERN,handleSessionCallbackRequest),POST(EVE_TASK_INPUT_ROUTE_PATTERN,handleTaskInputResponseRequest),POST(EVE_SESSION_ROUTE_PATH,async(e,t)=>{let n=await routeAuth(e,h.auth);if(n instanceof Response)return n;let r=await parseJsonRequest(e);if(r instanceof Response)return r;let i=rejectSessionContinuationToken(r);if(i!==null)return i;let a=await resolveForwardedPrincipal({trustedForwarders:h.trustedForwarders,forwarder:n,payload:r});if(a instanceof Response)return a;let o=parseCreateBody(r);if(o instanceof Response)return o;let s=o.callback===void 0?void 0:parseTraceparent(e.headers.get(`traceparent`)),c=checkUploadPolicy(o,g);if(c!==null)return c;if(o.operationId!==void 0&&a.auth.principalType===`anonymous`)return Response.json({error:`operationId requires an authenticated principal.`,ok:!1},{status:400});let l=o.operationId===void 0?void 0:await deriveOperationContinuationToken({auth:a.auth,operationId:o.operationId});if(l!==void 0){let e=await t.resolveSession(l);if(e!==void 0)return Response.json({ok:!0,sessionId:e.id,status:`accepted`},{headers:{"cache-control":`no-store`,[EVE_SESSION_ID_HEADER]:e.id},status:202})}let u=await resolveOnMessage({auth:a.auth,config:h,message:o.message,request:e});if(u instanceof Response)return u;let d=readRouteSessionCreator(t);if(d===void 0)return Response.json({error:`Session creation requires internal channel dispatch context.`,ok:!1},{status:500});let f;try{f=await d({activityObserver:o.activityObserver,auth:u.auth,capabilities:o.capabilities??(o.mode===`task`?void 0:{requestInput:!0}),callback:o.callback,continuationToken:l,initiatorAuth:a.accepted?a.initiatorAuth:void 0,input:{message:o.message,context:mergeContext(o.context,u.context),outputSchema:o.outputSchema},mode:o.mode??`conversation`,parentTraceContext:s,title:u.title})}catch(e){if(l!==void 0&&isRuntimeSessionOwnershipConflictError(e))return Response.json({ok:!0,sessionId:e.ownerSessionId,status:`accepted`},{headers:{"cache-control":`no-store`,[EVE_SESSION_ID_HEADER]:e.ownerSessionId},status:202});let t=logError(log,`session-create request failed`,e);return Response.json({error:`Failed to create the session.`,errorId:t,ok:!1},{status:500})}return Response.json({ok:!0,sessionId:f.sessionId,status:`accepted`},{headers:{"cache-control":`no-store`,[EVE_SESSION_ID_HEADER]:f.sessionId},status:202})}),POST(EVE_SESSION_ROUTE_PATTERN,async(e,{attachSession:t,params:n})=>{let r=await routeAuth(e,h.auth);if(r instanceof Response)return r;let i=requireSessionId(n);if(i instanceof Response)return i;let a=await parseJsonRequest(e);if(a instanceof Response)return a;let o=await resolveForwardedPrincipal({trustedForwarders:h.trustedForwarders,forwarder:r,payload:a});if(o instanceof Response)return o;let s=parseSessionMessageBody(a);if(s instanceof Response)return s;let c=checkUploadPolicy(s,g);if(c!==null)return c;let l=s.context,u=o.auth;if(s.message!==void 0){let t=await resolveOnMessage({auth:o.auth,config:h,message:s.message,request:e,sessionId:i});if(t instanceof Response)return t;l=mergeContext(s.context,t.context),u=t.auth}let d;try{let e=t(i),n={activityObserver:s.activityObserver,auth:u,callback:s.callback,context:l,outputSchema:s.outputSchema,turnPolicy:s.turnPolicy};d=s.inputResponses===void 0?await e.send(s.message,n):await e.respond(s.inputResponses,n)}catch(e){let t=logError(log,`session-message request failed`,e,{sessionId:i});return Response.json({error:`Failed to send the session message.`,errorId:t,ok:!1},{status:500})}return d.status===`session_not_active`?Response.json({code:`session_not_active`,error:`The session is no longer active.`,ok:!1},{headers:{"cache-control":`no-store`},status:409}):Response.json({ok:!0,sessionId:d.sessionId,status:`accepted`},{headers:{"cache-control":`no-store`,[EVE_SESSION_ID_HEADER]:d.sessionId},status:202})}),POST(EVE_SESSION_CANCEL_ROUTE_PATTERN,async(e,{attachSession:t,params:n})=>{let r=await routeAuth(e,h.auth);if(r instanceof Response)return r;let i=requireSessionId(n);if(i instanceof Response)return i;let a=await parseCancelTurnBody(e);if(a instanceof Response)return a;let o;try{o=await t(i).cancel({taskId:a.taskId,turnId:a.turnId})}catch(e){let t=logError(log,`cancel-turn request failed`,e,{sessionId:i});return Response.json({error:`Failed to cancel the turn.`,errorId:t,ok:!1},{status:500})}return Response.json(o.status===`accepted`?{ok:!0,sessionId:o.sessionId,status:`accepted`}:{ok:!0,status:`no_active_turn`},{headers:{"cache-control":`no-store`},status:o.status===`accepted`?202:200})}),POST(EVE_SESSION_COMPACT_ROUTE_PATTERN,async(e,{attachSession:t,params:n})=>{let r=await routeAuth(e,h.auth);if(r instanceof Response)return r;let i=requireSessionId(n);if(i instanceof Response)return i;let a=await parseSessionControlBody(e);if(a instanceof Response)return a;let o;try{o=await t(i).compact()}catch(e){let t=logError(log,`session-compaction request failed`,e,{sessionId:i});return Response.json({error:`Failed to compact the session.`,errorId:t,ok:!1},{status:500})}return Response.json(o.status===`accepted`?{ok:!0,sessionId:o.sessionId,status:`accepted`}:{ok:!0,status:`no_active_session`},{headers:{"cache-control":`no-store`},status:o.status===`accepted`?202:200})}),POST(EVE_SESSION_CLEAR_ROUTE_PATTERN,async(e,{attachSession:t,params:n})=>{let r=await routeAuth(e,h.auth);if(r instanceof Response)return r;let i=requireSessionId(n);if(i instanceof Response)return i;let a=await parseSessionControlBody(e);if(a instanceof Response)return a;let o;try{o=await t(i).clear()}catch(e){let t=logError(log,`session-clear request failed`,e,{sessionId:i});return Response.json({error:`Failed to clear the session context.`,errorId:t,ok:!1},{status:500})}return Response.json(o.status===`accepted`?{ok:!0,sessionId:o.sessionId,status:`accepted`}:{ok:!0,status:`no_active_session`},{headers:{"cache-control":`no-store`},status:o.status===`accepted`?202:200})}),POST(EVE_SESSION_RESET_ROUTE_PATTERN,async(e,{attachSession:t,params:n})=>{let r=await routeAuth(e,h.auth);if(r instanceof Response)return r;let i=requireSessionId(n);if(i instanceof Response)return i;let a=await parseResetBody(e);if(a instanceof Response)return a;let o;try{o=await t(i).reset({reason:a.reason})}catch(e){let t=logError(log,`session-reset request failed`,e,{sessionId:i});return Response.json({error:`Failed to reset the session.`,errorId:t,ok:!1},{status:500})}return Response.json(o.status===`reset`?{ok:!0,previousSessionId:o.previousSessionId,status:`reset`}:{ok:!0,status:`no_active_session`},{headers:{"cache-control":`no-store`}})}),GET(EVE_SESSION_STREAM_ROUTE_PATTERN,async(e,{attachSession:t,params:n})=>{let r=await routeAuth(e,h.auth);if(r instanceof Response)return r;let i=requireSessionId(n);return i instanceof Response?i:await createSessionStreamResponse(e,t(i))}),GET(EVE_SUBAGENT_STREAM_ROUTE_PATTERN,async(e,t)=>{let n=await routeAuth(e,h.auth);if(n instanceof Response)return n;let r=t.params.parentSessionId,i=t.params.callId,a=t.params.childSessionId;if(!r||!i||!a)return Response.json({error:`Missing subagent stream coordinates.`,ok:!1},{status:400});let o=parseStartIndex(e);if(o instanceof Response)return o;let s=parseIncludeTailIndex(e),c=createEveSubagentStreamRoutePath({callId:i,childSessionId:a,parentSessionId:r}),l;try{let e=await findRemoteSubagentBinding({callId:i,childSessionId:a,childStreamPath:c,parentSessionId:r,parent:t.attachSession(r)});if(e===void 0)throw Error(`Remote subagent binding not found.`);l=e}catch{return Response.json({error:`Subagent stream not found.`,ok:!1},{status:404})}let u=readRemoteAgentStreamHeadersResolver(t);if(u===void 0)return Response.json({error:`Subagent stream proxy requires internal channel dispatch context.`,ok:!1},{status:500});let d;try{d=await u({name:l.data.toolName,resolverId:l.data.remote.resolverId,url:l.data.remote.url})}catch{return Response.json({error:`Subagent stream not found.`,ok:!1},{status:404})}let f=new URL(createEveSessionStreamRoutePath(a).replace(/^\/+/,``),`${l.data.remote.url.replace(/\/+$/,``)}/`);o!==void 0&&f.searchParams.set(`startIndex`,String(o)),s&&f.searchParams.set(`includeTailIndex`,`1`);let p=await fetch(f,{cache:`no-store`,headers:d,redirect:`manual`,signal:e.signal}),m=new Headers;for(let e of[`cache-control`,`content-type`,`x-accel-buffering`,EVE_SESSION_ID_HEADER,EVE_STREAM_FORMAT_HEADER,EVE_STREAM_TAIL_INDEX_HEADER,EVE_STREAM_VERSION_HEADER]){let t=p.headers.get(e);t!==null&&m.set(e,t)}return new Response(p.body,{headers:m,status:p.status,statusText:p.statusText})})],events:h.events})}export{eveChannel};
1
+ import{EVE_ACTIVITY_ROUTE_PATTERN,EVE_CALLBACK_ROUTE_PATTERN,EVE_CONNECTION_CALLBACK_ROUTE_PATTERN,EVE_HEALTH_ROUTE_PATH,EVE_INFO_ROUTE_PATH,EVE_LEGACY_CONNECTION_CALLBACK_ROUTE_PATTERN,EVE_SESSION_CANCEL_ROUTE_PATTERN,EVE_SESSION_CLEAR_ROUTE_PATTERN,EVE_SESSION_COMPACT_ROUTE_PATTERN,EVE_SESSION_RESET_ROUTE_PATTERN,EVE_SESSION_ROUTE_PATH,EVE_SESSION_ROUTE_PATTERN,EVE_SESSION_STREAM_ROUTE_PATTERN,EVE_SUBAGENT_STREAM_ROUTE_PATTERN,EVE_TASK_INPUT_ROUTE_PATTERN,createEveSessionStreamRoutePath,createEveSubagentStreamRoutePath}from"#protocol/routes.js";import{attachClientContext}from"#internal/client-context.js";import{createLogger,logError}from"#internal/logging.js";import{isRuntimeSessionOwnershipConflictError}from"#execution/runtime-errors.js";import{EVE_SESSION_ID_HEADER,EVE_STREAM_FORMAT_HEADER,EVE_STREAM_TAIL_INDEX_HEADER,EVE_STREAM_VERSION_HEADER}from"#protocol/message.js";import{DELETE,GET,HEAD,PATCH,POST,PUT,defineChannel}from"#public/definitions/channel.js";import{resolveForwardedPrincipal}from"#channel/forwarded-principal.js";import{handleConnectionCallbackRequest,handleLegacyConnectionCallbackRequest}from"#execution/connections/callback-route.js";import{handleActivityRequest}from"#execution/activity-route.js";import{handleSessionCallbackRequest}from"#execution/session-callback-route.js";import{handleTaskInputResponseRequest}from"#execution/task-input-response-route.js";import{WORKFLOW_WEBHOOK_ROUTE_PATTERN,handleWorkflowWebhookRequest}from"#execution/workflow-webhook-route.js";import{readAgentInfoRouteResponse,readRemoteAgentStreamHeadersResolver,readRouteSessionCreator}from"#internal/nitro/routes/channel-route-context.js";import{parseTraceparent}from"#protocol/traceparent.js";import{readForwardedAudienceBaggage}from"#protocol/baggage.js";import{FAIL_CLOSED_FORWARDED_TRACE_ASSERTION,formatTraceContentCeiling}from"#shared/forwarded-trace-policy.js";import{routeAuth}from"#public/channels/auth.js";import{mergeUploadPolicy}from"#public/channels/upload-policy.js";import{checkUploadPolicy,createSessionStreamResponse,deriveOperationContinuationToken,parseCancelTurnBody,parseCreateBody,parseIncludeTailIndex,parseJsonRequest,parseResetBody,parseSessionControlBody,parseSessionMessageBody,parseStartIndex,rejectSessionContinuationToken,requireSessionId}from"#eve-channel/request.js";import{findRemoteSubagentBinding,healthResponse,normalizeEveCors,resolveOnMessage}from"#eve-channel/support.js";export*from"#eve-channel/types.js";const log=createLogger(`eve.channel`);function eveChannel(g){let _=mergeUploadPolicy(g.uploadPolicy);return defineChannel({cors:normalizeEveCors(g.cors),turnPolicy:g.turnPolicy,routes:[GET(EVE_HEALTH_ROUTE_PATH,async()=>healthResponse()),HEAD(EVE_HEALTH_ROUTE_PATH,async()=>healthResponse()),GET(EVE_INFO_ROUTE_PATH,async(e,t)=>{let n=await routeAuth(e,g.auth);if(n instanceof Response)return n;let r=readAgentInfoRouteResponse(t);return r===void 0?Response.json({error:`Agent info route requires internal channel dispatch context.`,ok:!1},{status:500}):await r()}),GET(EVE_CONNECTION_CALLBACK_ROUTE_PATTERN,handleConnectionCallbackRequest),POST(EVE_CONNECTION_CALLBACK_ROUTE_PATTERN,handleConnectionCallbackRequest),GET(EVE_LEGACY_CONNECTION_CALLBACK_ROUTE_PATTERN,handleLegacyConnectionCallbackRequest),POST(EVE_LEGACY_CONNECTION_CALLBACK_ROUTE_PATTERN,handleLegacyConnectionCallbackRequest),POST(EVE_ACTIVITY_ROUTE_PATTERN,handleActivityRequest),POST(EVE_CALLBACK_ROUTE_PATTERN,handleSessionCallbackRequest),POST(EVE_TASK_INPUT_ROUTE_PATTERN,handleTaskInputResponseRequest),GET(WORKFLOW_WEBHOOK_ROUTE_PATTERN,handleWorkflowWebhookRequest),POST(WORKFLOW_WEBHOOK_ROUTE_PATTERN,handleWorkflowWebhookRequest),PUT(WORKFLOW_WEBHOOK_ROUTE_PATTERN,handleWorkflowWebhookRequest),PATCH(WORKFLOW_WEBHOOK_ROUTE_PATTERN,handleWorkflowWebhookRequest),DELETE(WORKFLOW_WEBHOOK_ROUTE_PATTERN,handleWorkflowWebhookRequest),POST(EVE_SESSION_ROUTE_PATH,async(e,t)=>{let n=await routeAuth(e,g.auth);if(n instanceof Response)return n;let r=await parseJsonRequest(e);if(r instanceof Response)return r;let i=rejectSessionContinuationToken(r);if(i!==null)return i;let a=await resolveForwardedPrincipal({trustedForwarders:g.trustedForwarders,forwarder:n,payload:r});if(a instanceof Response)return a;let o=parseCreateBody(r);if(o instanceof Response)return o;let s=o.callback===void 0?void 0:parseTraceparent(e.headers.get(`traceparent`)),c=checkUploadPolicy(o,_);if(c!==null)return c;if(o.operationId!==void 0&&a.auth.principalType===`anonymous`)return Response.json({error:`operationId requires an authenticated principal.`,ok:!1},{status:400});let l=o.operationId===void 0?void 0:await deriveOperationContinuationToken({auth:a.auth,operationId:o.operationId});if(l!==void 0){let e=await t.resolveSession(l);if(e!==void 0)return Response.json({ok:!0,sessionId:e.id,status:`accepted`},{headers:{"cache-control":`no-store`,[EVE_SESSION_ID_HEADER]:e.id},status:202})}let u=s===void 0?`absent`:readForwardedAudienceBaggage(e.headers.get(`baggage`)),d=a.accepted&&s!==void 0&&(s.traceFlags&1)==1?typeof u==`object`?u:u===`malformed`?FAIL_CLOSED_FORWARDED_TRACE_ASSERTION:void 0:void 0,f=s;d!==void 0&&s!==void 0&&(f={...s,forwardedTracePolicy:d}),u===`malformed`?log.warn(`using metadata-only policy for malformed forwarded audience baggage`,{forwarder:n.principalId}):typeof u==`object`&&(d===void 0?log.warn(`ignoring forwarded trace policy without an accepted sampled principal`,{forwarder:n.principalId}):log.info(`accepted forwarded trace policy`,{audience:u.originAudience,ceiling:formatTraceContentCeiling(u.ceiling),forwarder:n.principalId}));let p=await resolveOnMessage({auth:a.auth,config:g,message:o.message,request:e});if(p instanceof Response)return p;let m=readRouteSessionCreator(t);if(m===void 0)return Response.json({error:`Session creation requires internal channel dispatch context.`,ok:!1},{status:500});let h;try{h=await m({activityObserver:o.activityObserver,auth:p.auth,capabilities:o.capabilities??(o.mode===`task`?void 0:{requestInput:!0}),callback:o.callback,continuationToken:l,initiatorAuth:a.accepted?a.initiatorAuth:void 0,input:attachClientContext({message:o.message,context:p.context,outputSchema:o.outputSchema},o.context),mode:o.mode??`conversation`,parentTraceContext:f,title:p.title})}catch(e){if(l!==void 0&&isRuntimeSessionOwnershipConflictError(e))return Response.json({ok:!0,sessionId:e.ownerSessionId,status:`accepted`},{headers:{"cache-control":`no-store`,[EVE_SESSION_ID_HEADER]:e.ownerSessionId},status:202});let t=logError(log,`session-create request failed`,e);return Response.json({error:`Failed to create the session.`,errorId:t,ok:!1},{status:500})}return Response.json({ok:!0,sessionId:h.sessionId,status:`accepted`},{headers:{"cache-control":`no-store`,[EVE_SESSION_ID_HEADER]:h.sessionId},status:202})}),POST(EVE_SESSION_ROUTE_PATTERN,async(e,{attachSession:t,params:n})=>{let r=await routeAuth(e,g.auth);if(r instanceof Response)return r;let i=requireSessionId(n);if(i instanceof Response)return i;let a=await parseJsonRequest(e);if(a instanceof Response)return a;let o=await resolveForwardedPrincipal({trustedForwarders:g.trustedForwarders,forwarder:r,payload:a});if(o instanceof Response)return o;let s=parseSessionMessageBody(a);if(s instanceof Response)return s;let c=checkUploadPolicy(s,_);if(c!==null)return c;let l,u=o.auth;if(s.message!==void 0){let t=await resolveOnMessage({auth:o.auth,config:g,message:s.message,request:e,sessionId:i});if(t instanceof Response)return t;l=t.context,u=t.auth}let d;try{let e=t(i),n=attachClientContext({activityObserver:s.activityObserver,auth:u,callback:s.callback,context:l,outputSchema:s.outputSchema,turnPolicy:s.turnPolicy},s.context);d=s.inputResponses===void 0?await e.send(s.message,n):await e.respond(s.inputResponses,n)}catch(e){let t=logError(log,`session-message request failed`,e,{sessionId:i});return Response.json({error:`Failed to send the session message.`,errorId:t,ok:!1},{status:500})}return d.status===`session_not_active`?Response.json({code:`session_not_active`,error:`The session is no longer active.`,ok:!1},{headers:{"cache-control":`no-store`},status:409}):Response.json({ok:!0,sessionId:d.sessionId,status:`accepted`},{headers:{"cache-control":`no-store`,[EVE_SESSION_ID_HEADER]:d.sessionId},status:202})}),POST(EVE_SESSION_CANCEL_ROUTE_PATTERN,async(e,{attachSession:t,params:n})=>{let r=await routeAuth(e,g.auth);if(r instanceof Response)return r;let i=requireSessionId(n);if(i instanceof Response)return i;let a=await parseCancelTurnBody(e);if(a instanceof Response)return a;let o;try{o=await t(i).cancel({taskId:a.taskId,turnId:a.turnId})}catch(e){let t=logError(log,`cancel-turn request failed`,e,{sessionId:i});return Response.json({error:`Failed to cancel the turn.`,errorId:t,ok:!1},{status:500})}return Response.json(o.status===`accepted`?{ok:!0,sessionId:o.sessionId,status:`accepted`}:{ok:!0,status:`no_active_turn`},{headers:{"cache-control":`no-store`},status:o.status===`accepted`?202:200})}),POST(EVE_SESSION_COMPACT_ROUTE_PATTERN,async(e,{attachSession:t,params:n})=>{let r=await routeAuth(e,g.auth);if(r instanceof Response)return r;let i=requireSessionId(n);if(i instanceof Response)return i;let a=await parseSessionControlBody(e);if(a instanceof Response)return a;let o;try{o=await t(i).compact()}catch(e){let t=logError(log,`session-compaction request failed`,e,{sessionId:i});return Response.json({error:`Failed to compact the session.`,errorId:t,ok:!1},{status:500})}return Response.json(o.status===`accepted`?{ok:!0,sessionId:o.sessionId,status:`accepted`}:{ok:!0,status:`no_active_session`},{headers:{"cache-control":`no-store`},status:o.status===`accepted`?202:200})}),POST(EVE_SESSION_CLEAR_ROUTE_PATTERN,async(e,{attachSession:t,params:n})=>{let r=await routeAuth(e,g.auth);if(r instanceof Response)return r;let i=requireSessionId(n);if(i instanceof Response)return i;let a=await parseSessionControlBody(e);if(a instanceof Response)return a;let o;try{o=await t(i).clear()}catch(e){let t=logError(log,`session-clear request failed`,e,{sessionId:i});return Response.json({error:`Failed to clear the session context.`,errorId:t,ok:!1},{status:500})}return Response.json(o.status===`accepted`?{ok:!0,sessionId:o.sessionId,status:`accepted`}:{ok:!0,status:`no_active_session`},{headers:{"cache-control":`no-store`},status:o.status===`accepted`?202:200})}),POST(EVE_SESSION_RESET_ROUTE_PATTERN,async(e,{attachSession:t,params:n})=>{let r=await routeAuth(e,g.auth);if(r instanceof Response)return r;let i=requireSessionId(n);if(i instanceof Response)return i;let a=await parseResetBody(e);if(a instanceof Response)return a;let o;try{o=await t(i).reset({reason:a.reason})}catch(e){let t=logError(log,`session-reset request failed`,e,{sessionId:i});return Response.json({error:`Failed to reset the session.`,errorId:t,ok:!1},{status:500})}return Response.json(o.status===`reset`?{ok:!0,previousSessionId:o.previousSessionId,status:`reset`}:{ok:!0,status:`no_active_session`},{headers:{"cache-control":`no-store`}})}),GET(EVE_SESSION_STREAM_ROUTE_PATTERN,async(e,{attachSession:t,params:n})=>{let r=await routeAuth(e,g.auth);if(r instanceof Response)return r;let i=requireSessionId(n);return i instanceof Response?i:await createSessionStreamResponse(e,t(i))}),GET(EVE_SUBAGENT_STREAM_ROUTE_PATTERN,async(e,t)=>{let n=await routeAuth(e,g.auth);if(n instanceof Response)return n;let r=t.params.parentSessionId,i=t.params.callId,a=t.params.childSessionId;if(!r||!i||!a)return Response.json({error:`Missing subagent stream coordinates.`,ok:!1},{status:400});let o=parseStartIndex(e);if(o instanceof Response)return o;let s=parseIncludeTailIndex(e),c=createEveSubagentStreamRoutePath({callId:i,childSessionId:a,parentSessionId:r}),l;try{let e=await findRemoteSubagentBinding({callId:i,childSessionId:a,childStreamPath:c,parentSessionId:r,parent:t.attachSession(r)});if(e===void 0)throw Error(`Remote subagent binding not found.`);l=e}catch{return Response.json({error:`Subagent stream not found.`,ok:!1},{status:404})}let u=readRemoteAgentStreamHeadersResolver(t);if(u===void 0)return Response.json({error:`Subagent stream proxy requires internal channel dispatch context.`,ok:!1},{status:500});let d;try{d=await u({name:l.data.toolName,resolverId:l.data.remote.resolverId,url:l.data.remote.url})}catch{return Response.json({error:`Subagent stream not found.`,ok:!1},{status:404})}let f=new URL(createEveSessionStreamRoutePath(a).replace(/^\/+/,``),`${l.data.remote.url.replace(/\/+$/,``)}/`);o!==void 0&&f.searchParams.set(`startIndex`,String(o)),s&&f.searchParams.set(`includeTailIndex`,`1`);let p=await fetch(f,{cache:`no-store`,headers:d,redirect:`manual`,signal:e.signal}),m=new Headers;for(let e of[`cache-control`,`content-type`,`x-accel-buffering`,EVE_SESSION_ID_HEADER,EVE_STREAM_FORMAT_HEADER,EVE_STREAM_TAIL_INDEX_HEADER,EVE_STREAM_VERSION_HEADER]){let t=p.headers.get(e);t!==null&&m.set(e,t)}return new Response(p.body,{headers:m,status:p.status,statusText:p.statusText})})],events:g.events})}export{eveChannel};
@@ -45,7 +45,6 @@ export declare function rejectSessionContinuationToken(payload: Record<string, u
45
45
  export declare function requireSessionId(params: Readonly<Record<string, string>>): string | Response;
46
46
  export declare function createSessionStreamResponse(request: Request, session: Session): Promise<Response>;
47
47
  export declare function checkUploadPolicy(body: ParsedCreateBody | ParsedSessionMessageBody, policy: UploadPolicy): Response | null;
48
- export declare function mergeContext(existing: readonly string[] | undefined, added: readonly string[] | undefined): readonly string[] | undefined;
49
48
  export declare function parseIncludeTailIndex(request: Request): boolean;
50
49
  export declare function parseStartIndex(request: Request): number | undefined | Response;
51
50
  export {};