eve 0.44.4 → 0.45.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 (779) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +13 -12
  3. package/dist/src/acp/adapter.d.ts +1 -1
  4. package/dist/src/approval/definition.d.ts +84 -0
  5. package/dist/src/approval/definition.js +1 -0
  6. package/dist/src/{runtime/governance → channel}/auth/http-basic.d.ts +1 -1
  7. package/dist/src/{runtime/governance → channel}/auth/jwt-ecdsa.d.ts +1 -1
  8. package/dist/src/channel/auth/jwt-ecdsa.js +1 -0
  9. package/dist/src/{runtime/governance → channel}/auth/jwt-hmac.d.ts +1 -1
  10. package/dist/src/channel/auth/jwt-hmac.js +1 -0
  11. package/dist/src/{runtime/governance → channel}/auth/oidc.d.ts +1 -1
  12. package/dist/src/channel/auth/oidc.js +1 -0
  13. package/dist/src/{runtime/governance → channel}/auth/token-claims.d.ts +1 -1
  14. package/dist/src/{runtime/governance → channel}/auth/types.d.ts +1 -1
  15. package/dist/src/{runtime/governance → channel}/auth/vercel-oidc-project.d.ts +1 -1
  16. package/dist/src/channel/channel-operations.d.ts +1 -1
  17. package/dist/src/channel/channel-operations.js +1 -1
  18. package/dist/src/channel/instrumentation.d.ts +1 -0
  19. package/dist/src/channel/instrumentation.js +1 -1
  20. package/dist/src/channel/resolve-text.d.ts +1 -1
  21. package/dist/src/channel/routes.d.ts +1 -1
  22. package/dist/src/channel/session.d.ts +1 -1
  23. package/dist/src/channel/session.js +1 -1
  24. package/dist/src/channel/types.d.ts +2 -2
  25. package/dist/src/chunks/{use-eve-agent-BJwaMe5k.js → use-eve-agent-C46Kan_I.js} +385 -106
  26. package/dist/src/chunks/{use-eve-agent-BtsOXv3s.js → use-eve-agent-OtHRoxIS.js} +385 -106
  27. package/dist/src/cli/banner.js +1 -1
  28. package/dist/src/cli/commands/agent-instructions.js +2 -2
  29. package/dist/src/cli/commands/channel-add-conflicts.js +1 -1
  30. package/dist/src/cli/commands/extension-build.js +1 -1
  31. package/dist/src/cli/commands/extension-init.js +1 -1
  32. package/dist/src/cli/commands/info.js +1 -1
  33. package/dist/src/cli/commands/init.js +1 -1
  34. package/dist/src/cli/commands/trace.js +1 -1
  35. package/dist/src/cli/dev/tui/remote-auth.js +1 -1
  36. package/dist/src/cli/dev/tui/setup-selection-input.d.ts +3 -1
  37. package/dist/src/cli/dev/tui/setup-selection-input.js +2 -2
  38. package/dist/src/cli/dev/tui/terminal-renderer.js +2 -2
  39. package/dist/src/cli/dev/tui/traces/trace-conversation.d.ts +1 -1
  40. package/dist/src/cli/dev/tui/traces/trace-conversation.js +1 -1
  41. package/dist/src/cli/dev/tui/traces/trace-viewer-state.js +1 -1
  42. package/dist/src/cli/invoke/result.d.ts +1 -1
  43. package/dist/src/cli/ui/live-row.js +1 -1
  44. package/dist/src/cli/ui/output.js +1 -1
  45. package/dist/src/client/agent-info-schema.d.ts +1757 -302
  46. package/dist/src/client/agent-info-schema.js +1 -1
  47. package/dist/src/client/client.js +1 -1
  48. package/dist/src/client/eve-agent-store.d.ts +6 -5
  49. package/dist/src/client/eve-agent-store.js +1 -1
  50. package/dist/src/client/health-response-error.d.ts +5 -0
  51. package/dist/src/client/health-response-error.js +1 -0
  52. package/dist/src/client/health-schema.d.ts +7 -0
  53. package/dist/src/client/health-schema.js +1 -0
  54. package/dist/src/client/index.d.ts +6 -3
  55. package/dist/src/client/index.js +1 -1
  56. package/dist/src/client/message-action-parts.d.ts +2 -2
  57. package/dist/src/client/message-reducer-types.d.ts +1 -1
  58. package/dist/src/client/reducer.d.ts +1 -1
  59. package/dist/src/client/session-utils.d.ts +1 -1
  60. package/dist/src/client/session.d.ts +1 -1
  61. package/dist/src/client/session.js +1 -1
  62. package/dist/src/client/types.d.ts +3 -7
  63. package/dist/src/compiler/artifacts.d.ts +37 -11
  64. package/dist/src/compiler/artifacts.js +1 -1
  65. package/dist/src/compiler/channel-route-plan.d.ts +10 -0
  66. package/dist/src/compiler/channel-route-plan.js +1 -0
  67. package/dist/src/compiler/compile-agent.d.ts +2 -2
  68. package/dist/src/compiler/compile-agent.js +2 -2
  69. package/dist/src/compiler/compile-from-memory.d.ts +13 -52
  70. package/dist/src/compiler/compile-from-memory.js +1 -1
  71. package/dist/src/compiler/diagnostics.d.ts +38 -0
  72. package/dist/src/compiler/diagnostics.js +1 -0
  73. package/dist/src/compiler/extension-compatibility.d.ts +14 -11
  74. package/dist/src/compiler/extension-compatibility.js +1 -1
  75. package/dist/src/compiler/load-binding-namespace.d.ts +9 -0
  76. package/dist/src/compiler/load-binding-namespace.js +1 -0
  77. package/dist/src/compiler/manifest.d.ts +172 -51
  78. package/dist/src/compiler/manifest.js +1 -1
  79. package/dist/src/compiler/module-map.d.ts +12 -30
  80. package/dist/src/compiler/module-map.js +3 -3
  81. package/dist/src/compiler/node-source-state.d.ts +24 -0
  82. package/dist/src/compiler/node-source-state.js +1 -0
  83. package/dist/src/compiler/normalize-agent-config.d.ts +5 -1
  84. package/dist/src/compiler/normalize-agent-config.js +1 -1
  85. package/dist/src/compiler/normalize-channel.d.ts +8 -2
  86. package/dist/src/compiler/normalize-channel.js +1 -1
  87. package/dist/src/compiler/normalize-connection.d.ts +1 -1
  88. package/dist/src/compiler/normalize-connection.js +1 -1
  89. package/dist/src/compiler/normalize-helpers.d.ts +13 -4
  90. package/dist/src/compiler/normalize-helpers.js +1 -1
  91. package/dist/src/compiler/normalize-hook.d.ts +4 -11
  92. package/dist/src/compiler/normalize-hook.js +1 -1
  93. package/dist/src/compiler/normalize-instructions.d.ts +3 -3
  94. package/dist/src/compiler/normalize-instructions.js +1 -1
  95. package/dist/src/compiler/normalize-manifest-helpers.d.ts +29 -0
  96. package/dist/src/compiler/normalize-manifest-helpers.js +1 -0
  97. package/dist/src/compiler/normalize-manifest.d.ts +8 -4
  98. package/dist/src/compiler/normalize-manifest.js +1 -1
  99. package/dist/src/compiler/normalize-sandbox.d.ts +1 -1
  100. package/dist/src/compiler/normalize-sandbox.js +1 -1
  101. package/dist/src/compiler/normalize-schedule.d.ts +2 -2
  102. package/dist/src/compiler/normalize-schedule.js +1 -1
  103. package/dist/src/compiler/normalize-skill.d.ts +2 -2
  104. package/dist/src/compiler/normalize-skill.js +1 -1
  105. package/dist/src/compiler/normalize-subagent.d.ts +21 -39
  106. package/dist/src/compiler/normalize-subagent.js +1 -1
  107. package/dist/src/compiler/normalize-tool.d.ts +2 -1
  108. package/dist/src/compiler/normalize-tool.js +1 -1
  109. package/dist/src/compiler/project-sources.d.ts +71 -0
  110. package/dist/src/compiler/project-sources.js +1 -0
  111. package/dist/src/compiler/remote-agent-node.d.ts +8 -0
  112. package/dist/src/compiler/remote-agent-node.js +1 -1
  113. package/dist/src/compiler/source-graph.d.ts +153 -0
  114. package/dist/src/compiler/source-graph.js +1 -0
  115. package/dist/src/compiler/validate-artifact.d.ts +17 -0
  116. package/dist/src/compiler/validate-artifact.js +1 -0
  117. package/dist/src/compiler/workspace-resources.js +1 -1
  118. package/dist/src/connections/errors.d.ts +125 -0
  119. package/dist/src/connections/errors.js +1 -0
  120. package/dist/src/context/build-base-tool-context.d.ts +2 -2
  121. package/dist/src/context/build-callback-context.d.ts +1 -1
  122. package/dist/src/context/build-dynamic-tools.js +1 -1
  123. package/dist/src/context/dynamic-instruction-lifecycle.js +1 -1
  124. package/dist/src/context/dynamic-resolve-context.d.ts +1 -1
  125. package/dist/src/context/dynamic-skill-lifecycle.js +1 -1
  126. package/dist/src/context/dynamic-subagent-lifecycle.d.ts +0 -2
  127. package/dist/src/context/dynamic-subagent-lifecycle.js +1 -1
  128. package/dist/src/context/dynamic-tool-lifecycle.d.ts +2 -2
  129. package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
  130. package/dist/src/context/key-names.d.ts +12 -0
  131. package/dist/src/context/key-names.js +1 -0
  132. package/dist/src/context/keys.d.ts +8 -1
  133. package/dist/src/context/keys.js +1 -1
  134. package/dist/src/context/providers/connection-key.d.ts +1 -1
  135. package/dist/src/context/providers/connection.d.ts +1 -1
  136. package/dist/src/context/session-context.d.ts +32 -0
  137. package/dist/src/discover/discover-agent.d.ts +0 -13
  138. package/dist/src/discover/discover-agent.js +1 -1
  139. package/dist/src/discover/discover-subagent.js +1 -1
  140. package/dist/src/discover/extensions.d.ts +0 -6
  141. package/dist/src/discover/extensions.js +1 -1
  142. package/dist/src/discover/manifest.d.ts +4 -1
  143. package/dist/src/discover/manifest.js +1 -1
  144. package/dist/src/dynamic/definition.d.ts +117 -0
  145. package/dist/src/dynamic/definition.js +1 -0
  146. package/dist/src/evals/autoevals-client.js +1 -1
  147. package/dist/src/evals/index.d.ts +1 -1
  148. package/dist/src/evals/match.d.ts +1 -1
  149. package/dist/src/evals/runner/reporters/console.js +1 -1
  150. package/dist/src/evals/session.d.ts +1 -1
  151. package/dist/src/evals/target.js +1 -1
  152. package/dist/src/evals/types.d.ts +1 -1
  153. package/dist/src/eve-channel/index.d.ts +12 -0
  154. package/dist/src/eve-channel/index.js +1 -0
  155. package/dist/src/eve-channel/request.d.ts +49 -0
  156. package/dist/src/eve-channel/request.js +3 -0
  157. package/dist/src/eve-channel/support.d.ts +34 -0
  158. package/dist/src/eve-channel/support.js +1 -0
  159. package/dist/src/eve-channel/types.d.ts +128 -0
  160. package/dist/src/eve-channel/types.js +1 -0
  161. package/dist/src/execution/agent-handle-dispatch.d.ts +1 -1
  162. package/dist/src/execution/agent-handle-dispatch.js +1 -1
  163. package/dist/src/execution/authorization-callback-match.d.ts +1 -1
  164. package/dist/src/execution/cancel-descendant-turns-step.js +1 -1
  165. package/dist/src/execution/compaction.js +1 -1
  166. package/dist/src/execution/connection-auth-tool-result.d.ts +1 -1
  167. package/dist/src/{runtime → execution}/connections/callback-route.d.ts +2 -20
  168. package/dist/src/execution/connections/callback-route.js +1 -0
  169. package/dist/src/execution/create-session-step.js +1 -1
  170. package/dist/src/execution/delegated-parent-notification.d.ts +2 -2
  171. package/dist/src/execution/delegated-parent-notification.js +1 -1
  172. package/dist/src/execution/delegated-parent-result.d.ts +1 -1
  173. package/dist/src/execution/delegated-parent-result.js +1 -1
  174. package/dist/src/execution/delegation-tool.d.ts +1 -1
  175. package/dist/src/execution/delegation-tool.js +1 -1
  176. package/dist/src/execution/dispatch-action-failures.d.ts +1 -1
  177. package/dist/src/execution/dispatch-runtime-actions-shared.d.ts +1 -2
  178. package/dist/src/execution/dispatch-runtime-actions-shared.js +1 -1
  179. package/dist/src/execution/dispatch-runtime-actions-step.js +1 -1
  180. package/dist/src/execution/dispatch-workflow-runtime-actions-step.d.ts +1 -1
  181. package/dist/src/execution/durable-session-migrations/turn-workflow.d.ts +1 -1
  182. package/dist/src/execution/durable-session-store.js +1 -1
  183. package/dist/src/execution/effective-output-schema.d.ts +2 -1
  184. package/dist/src/execution/eve-workflow-attributes.d.ts +6 -0
  185. package/dist/src/execution/eve-workflow-attributes.js +1 -1
  186. package/dist/src/execution/forward-turn-cancellation-step.js +1 -1
  187. package/dist/src/execution/node-step.js +1 -1
  188. package/dist/src/execution/remote-agent-dispatch.d.ts +10 -8
  189. package/dist/src/execution/remote-agent-dispatch.js +1 -1
  190. package/dist/src/execution/runtime-context.js +1 -1
  191. package/dist/src/execution/sandbox/{bash-tool.d.ts → bash.d.ts} +2 -2
  192. package/dist/src/execution/sandbox/bindings/vercel-credentials.js +1 -1
  193. package/dist/src/execution/sandbox/glob-tool.js +1 -1
  194. package/dist/src/execution/sandbox/grep-tool.js +1 -1
  195. package/dist/src/execution/sandbox/{read-file-tool.d.ts → read-file.d.ts} +2 -2
  196. package/dist/src/execution/sandbox/{read-file-tool.js → read-file.js} +1 -1
  197. package/dist/src/execution/sandbox/{write-file-tool.d.ts → write-file.d.ts} +2 -2
  198. package/dist/src/execution/sandbox/write-file.js +1 -0
  199. package/dist/src/execution/session-callback-route.d.ts +2 -0
  200. package/dist/src/execution/session-callback-route.js +1 -0
  201. package/dist/src/execution/session-callback-step.js +1 -1
  202. package/dist/src/execution/session-timeout-steps.js +1 -1
  203. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  204. package/dist/src/execution/subagent-adapter.js +1 -1
  205. package/dist/src/execution/subagent-hitl-proxy.d.ts +1 -1
  206. package/dist/src/execution/subagent-invocation.d.ts +0 -3
  207. package/dist/src/execution/subagent-invocation.js +1 -1
  208. package/dist/src/execution/subagent-start-local.d.ts +1 -2
  209. package/dist/src/execution/subagent-start-local.js +1 -1
  210. package/dist/src/execution/subagent-start-remote.d.ts +1 -2
  211. package/dist/src/execution/subagent-start-remote.js +1 -1
  212. package/dist/src/execution/subagent-tool.d.ts +4 -8
  213. package/dist/src/execution/subagent-tool.js +1 -1
  214. package/dist/src/execution/subagent-usage-span.d.ts +1 -1
  215. package/dist/src/execution/task-input-response-route.d.ts +2 -0
  216. package/dist/src/execution/task-input-response-route.js +1 -0
  217. package/dist/src/execution/tasks/child/instructions.js +1 -1
  218. package/dist/src/execution/tasks/child/update.d.ts +1 -1
  219. package/dist/src/execution/tasks/child/update.js +1 -1
  220. package/dist/src/execution/tasks/parent/continuation-dispatch.d.ts +1 -1
  221. package/dist/src/execution/tasks/parent/control-shared.d.ts +1 -1
  222. package/dist/src/execution/tasks/parent/delegate.d.ts +2 -2
  223. package/dist/src/execution/tasks/parent/delegate.js +1 -1
  224. package/dist/src/execution/tasks/parent/dispatch-task-step.js +1 -1
  225. package/dist/src/execution/tasks/parent/dispatch.d.ts +3 -1
  226. package/dist/src/execution/tasks/parent/dispatch.js +1 -1
  227. package/dist/src/execution/tasks/parent/hitl-proxy-steps.js +1 -1
  228. package/dist/src/execution/tasks/parent/tool-execution.js +1 -1
  229. package/dist/src/execution/terminate-child-sessions-step.d.ts +4 -5
  230. package/dist/src/execution/terminate-child-sessions-step.js +1 -1
  231. package/dist/src/execution/tool-auth.d.ts +5 -6
  232. package/dist/src/execution/tool-auth.js +1 -1
  233. package/dist/src/execution/tools/connection-search.d.ts +1 -0
  234. package/dist/src/execution/tools/connection-search.js +2 -0
  235. package/dist/src/{runtime/framework-tools → execution/tools}/file-state.d.ts +2 -2
  236. package/dist/src/execution/tools/load-skill.d.ts +6 -0
  237. package/dist/src/execution/tools/load-skill.js +1 -0
  238. package/dist/src/{runtime/framework-tools → execution/tools}/subagent/local.d.ts +7 -7
  239. package/dist/src/execution/tools/subagent/local.js +1 -0
  240. package/dist/src/{runtime/framework-tools → execution/tools}/subagent/remote.d.ts +5 -5
  241. package/dist/src/execution/tools/subagent/remote.js +1 -0
  242. package/dist/src/execution/tools/tasks.d.ts +18 -0
  243. package/dist/src/execution/tools/tasks.js +1 -0
  244. package/dist/src/{runtime/framework-tools → execution/tools}/todo.d.ts +0 -2
  245. package/dist/src/{runtime/framework-tools → execution/tools}/todo.js +1 -2
  246. package/dist/src/execution/turn-control-protocol.js +1 -1
  247. package/dist/src/execution/web-fetch/request.js +1 -1
  248. package/dist/src/execution/wire/session-inbox-resume.js +1 -1
  249. package/dist/src/execution/wire/session-inbox-wire.v1.js +1 -1
  250. package/dist/src/execution/workflow-entry.js +1 -1
  251. package/dist/src/execution/workflow-runtime.js +1 -1
  252. package/dist/src/execution/workflow-steps.js +1 -1
  253. package/dist/src/execution/workflow-trace-context.js +1 -1
  254. package/dist/src/framework/host-inventory.d.ts +8 -0
  255. package/dist/src/framework/host-inventory.js +1 -0
  256. package/dist/src/framework/sources/modules/agent.d.ts +4 -0
  257. package/dist/src/framework/sources/modules/agent.js +1 -0
  258. package/dist/src/framework/sources/modules/eve-channel.d.ts +1 -0
  259. package/dist/src/framework/sources/modules/eve-channel.js +1 -0
  260. package/dist/src/framework/sources/modules/home-channel.d.ts +2 -0
  261. package/dist/src/framework/sources/modules/home-channel.js +1 -0
  262. package/dist/src/framework/sources/modules/sandbox.d.ts +2 -0
  263. package/dist/src/framework/sources/modules/sandbox.js +1 -0
  264. package/dist/src/framework/sources/registry.d.ts +5 -0
  265. package/dist/src/framework/sources/registry.js +1 -0
  266. package/dist/src/harness/action-result-helpers.d.ts +1 -1
  267. package/dist/src/harness/advertised-tools.js +1 -1
  268. package/dist/src/harness/authorization.d.ts +3 -3
  269. package/dist/src/harness/background-tools.d.ts +2 -2
  270. package/dist/src/harness/channel-delivery-instrumentation.js +1 -1
  271. package/dist/src/harness/compaction.js +1 -1
  272. package/dist/src/harness/execute-tool.d.ts +3 -3
  273. package/dist/src/{runtime/framework-tools → harness}/final-output.d.ts +1 -1
  274. package/dist/src/harness/final-output.js +1 -0
  275. package/dist/src/harness/handles/query.d.ts +1 -1
  276. package/dist/src/harness/handles/store.d.ts +8 -0
  277. package/dist/src/harness/handles/store.js +1 -1
  278. package/dist/src/harness/hitl/approval-input-requests.d.ts +1 -1
  279. package/dist/src/harness/hitl/approval-prompt.d.ts +1 -1
  280. package/dist/src/harness/hitl/pending-input-resolution.d.ts +2 -2
  281. package/dist/src/harness/hitl/question-input-requests.d.ts +1 -1
  282. package/dist/src/harness/input-extraction.d.ts +1 -1
  283. package/dist/src/harness/input-extraction.js +1 -1
  284. package/dist/src/harness/input-request-class.d.ts +1 -1
  285. package/dist/src/harness/input-request-resolution.d.ts +1 -1
  286. package/dist/src/harness/input-requests.d.ts +2 -2
  287. package/dist/src/harness/instrumentation/lifecycle.d.ts +3 -0
  288. package/dist/src/harness/instrumentation/providers.js +1 -1
  289. package/dist/src/harness/instrumentation/runtime.d.ts +2 -1
  290. package/dist/src/harness/pending-input-batches.d.ts +1 -1
  291. package/dist/src/harness/prepare-trace-context.d.ts +3 -0
  292. package/dist/src/harness/prepare-trace-context.js +1 -1
  293. package/dist/src/harness/provider-safety.d.ts +7 -0
  294. package/dist/src/harness/provider-safety.js +1 -0
  295. package/dist/src/{runtime/framework-tools/web-search.d.ts → harness/provider-tool-schemas.d.ts} +1 -9
  296. package/dist/src/harness/provider-tool-schemas.js +1 -0
  297. package/dist/src/harness/provider-tools.js +1 -1
  298. package/dist/src/harness/proxy-input-requests.d.ts +1 -1
  299. package/dist/src/harness/request-input-tool.d.ts +4 -0
  300. package/dist/src/harness/request-input-tool.js +1 -0
  301. package/dist/src/harness/runtime-actions.d.ts +1 -1
  302. package/dist/src/harness/session-limit-continuation.d.ts +1 -1
  303. package/dist/src/harness/step-hooks.d.ts +2 -0
  304. package/dist/src/harness/step-hooks.js +1 -1
  305. package/dist/src/harness/stream-actions.d.ts +1 -1
  306. package/dist/src/harness/subagent-depth.d.ts +1 -1
  307. package/dist/src/harness/tool-call-action.d.ts +1 -1
  308. package/dist/src/harness/tool-call-input-errors.d.ts +1 -1
  309. package/dist/src/harness/tool-loop.js +2 -2
  310. package/dist/src/harness/tool-model-output.d.ts +1 -1
  311. package/dist/src/harness/tools.d.ts +1 -1
  312. package/dist/src/harness/tools.js +1 -1
  313. package/dist/src/harness/types.d.ts +3 -9
  314. package/dist/src/harness/workflow-runtime-action-state.d.ts +1 -1
  315. package/dist/src/harness/workflow-subagent-limit.d.ts +1 -1
  316. package/dist/src/instrumentation/provider.d.ts +117 -0
  317. package/dist/src/instrumentation/provider.js +1 -0
  318. package/dist/src/internal/application/compiled-artifacts.js +5 -4
  319. package/dist/src/internal/application/package.js +1 -1
  320. package/dist/src/internal/authored-definition/approval.d.ts +1 -1
  321. package/dist/src/internal/authored-definition/connection.js +1 -1
  322. package/dist/src/internal/authored-definition/core.js +1 -1
  323. package/dist/src/internal/authored-definition/schema-backed.d.ts +6 -3
  324. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  325. package/dist/src/internal/authored-definition/source-identity.d.ts +17 -0
  326. package/dist/src/internal/authored-definition/source-identity.js +1 -0
  327. package/dist/src/internal/authored-module-map-loader.d.ts +1 -5
  328. package/dist/src/internal/authored-module-map-loader.js +1 -1
  329. package/dist/src/internal/helpers/markdown.js +1 -1
  330. package/dist/src/internal/invocation/agent-invocation.d.ts +2 -2
  331. package/dist/src/internal/invocation/workflow-execution.d.ts +1 -1
  332. package/dist/src/internal/invocation/workflow-execution.js +1 -1
  333. package/dist/src/internal/materialized-authored-modules.js +1 -1
  334. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  335. package/dist/src/internal/nitro/host/application-route-registry.d.ts +2 -41
  336. package/dist/src/internal/nitro/host/application-route-registry.js +1 -1
  337. package/dist/src/internal/nitro/host/build-extension.js +1 -1
  338. package/dist/src/internal/nitro/host/build-vercel-agent-summary.js +1 -1
  339. package/dist/src/internal/nitro/host/configure-nitro-routes.js +3 -4
  340. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  341. package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
  342. package/dist/src/internal/nitro/host/extension-capability-requirements.d.ts +2 -0
  343. package/dist/src/internal/nitro/host/extension-capability-requirements.js +1 -1
  344. package/dist/src/internal/nitro/host/start-development-server.js +2 -2
  345. package/dist/src/internal/nitro/host/start-production-server.js +3 -3
  346. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.d.ts +9 -215
  347. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  348. package/dist/src/internal/nitro/routes/agent-info/load-agent-info-data.d.ts +2 -13
  349. package/dist/src/internal/nitro/routes/agent-info/load-agent-info-data.js +1 -1
  350. package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
  351. package/dist/src/internal/nitro/routes/channel-route-context.d.ts +5 -0
  352. package/dist/src/internal/nitro/routes/channel-route-context.js +1 -1
  353. package/dist/src/internal/nitro/routes/index.d.ts +0 -9
  354. package/dist/src/internal/nitro/routes/index.js +1 -1
  355. package/dist/src/internal/nitro/routes/info.js +1 -1
  356. package/dist/src/internal/nitro/routes/runtime-stack.d.ts +5 -5
  357. package/dist/src/internal/nitro/routes/runtime-stack.js +1 -1
  358. package/dist/src/internal/programmatic-source-loader.d.ts +1 -0
  359. package/dist/src/internal/programmatic-source-loader.js +1 -0
  360. package/dist/src/internal/runtime-registry.d.ts +3 -4
  361. package/dist/src/protocol/message.d.ts +3 -3
  362. package/dist/src/protocol/routes.d.ts +2 -0
  363. package/dist/src/protocol/routes.js +1 -1
  364. package/dist/src/public/agents/auth.d.ts +10 -6
  365. package/dist/src/public/agents/auth.js +1 -1
  366. package/dist/src/public/channels/auth.d.ts +1 -1
  367. package/dist/src/public/channels/auth.js +1 -1
  368. package/dist/src/public/channels/discord/discordChannel.js +1 -1
  369. package/dist/src/public/channels/discord/hitl.d.ts +1 -1
  370. package/dist/src/public/channels/discord/hitl.js +1 -1
  371. package/dist/src/public/channels/discord/inbound.d.ts +1 -0
  372. package/dist/src/public/channels/discord/inbound.js +1 -1
  373. package/dist/src/public/channels/eve.d.ts +1 -139
  374. package/dist/src/public/channels/eve.js +1 -3
  375. package/dist/src/public/channels/github/dispatch.d.ts +5 -0
  376. package/dist/src/public/channels/github/dispatch.js +1 -1
  377. package/dist/src/public/channels/github/githubChannel.js +1 -1
  378. package/dist/src/public/channels/github/inbound.d.ts +2 -0
  379. package/dist/src/public/channels/github/inbound.js +1 -1
  380. package/dist/src/public/channels/index.d.ts +1 -1
  381. package/dist/src/public/channels/index.js +1 -1
  382. package/dist/src/public/channels/linear/hitl.d.ts +1 -1
  383. package/dist/src/public/channels/linear/inbound.js +1 -1
  384. package/dist/src/public/channels/mcp.js +1 -1
  385. package/dist/src/public/channels/slack/action-status.d.ts +1 -1
  386. package/dist/src/public/channels/slack/hitl.d.ts +1 -1
  387. package/dist/src/public/channels/slack/hitl.js +1 -1
  388. package/dist/src/public/channels/slack/inbound.d.ts +9 -0
  389. package/dist/src/public/channels/slack/inbound.js +1 -1
  390. package/dist/src/public/channels/slack/interactions.js +1 -1
  391. package/dist/src/public/channels/slack/model-context.d.ts +3 -1
  392. package/dist/src/public/channels/slack/model-context.js +2 -2
  393. package/dist/src/public/channels/slack/session-operations.d.ts +1 -1
  394. package/dist/src/public/channels/slack/slackChannel.d.ts +1 -1
  395. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  396. package/dist/src/public/channels/teams/hitl.d.ts +1 -1
  397. package/dist/src/public/channels/teams/hitl.js +1 -1
  398. package/dist/src/public/channels/teams/inbound.d.ts +2 -0
  399. package/dist/src/public/channels/teams/inbound.js +1 -1
  400. package/dist/src/public/channels/teams/teamsChannel.js +1 -1
  401. package/dist/src/public/channels/teams/verify.js +1 -1
  402. package/dist/src/public/channels/telegram/api.d.ts +15 -0
  403. package/dist/src/public/channels/telegram/api.js +2 -2
  404. package/dist/src/public/channels/telegram/authorization-callback.d.ts +10 -0
  405. package/dist/src/public/channels/telegram/authorization-callback.js +1 -0
  406. package/dist/src/public/channels/telegram/authorization.d.ts +19 -0
  407. package/dist/src/public/channels/telegram/authorization.js +3 -0
  408. package/dist/src/public/channels/telegram/defaults.d.ts +1 -0
  409. package/dist/src/public/channels/telegram/defaults.js +3 -3
  410. package/dist/src/public/channels/telegram/hitl.d.ts +1 -1
  411. package/dist/src/public/channels/telegram/hitl.js +1 -1
  412. package/dist/src/public/channels/telegram/inbound.d.ts +1 -0
  413. package/dist/src/public/channels/telegram/inbound.js +1 -1
  414. package/dist/src/public/channels/telegram/index.d.ts +1 -1
  415. package/dist/src/public/channels/telegram/index.js +1 -1
  416. package/dist/src/public/channels/telegram/state.d.ts +6 -0
  417. package/dist/src/public/channels/telegram/state.js +1 -0
  418. package/dist/src/public/channels/telegram/telegramChannel.d.ts +11 -0
  419. package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
  420. package/dist/src/public/connections/errors.d.ts +1 -125
  421. package/dist/src/public/connections/errors.js +1 -1
  422. package/dist/src/public/connections/index.d.ts +2 -2
  423. package/dist/src/public/connections/index.js +1 -1
  424. package/dist/src/public/definitions/agent.d.ts +1 -1
  425. package/dist/src/public/definitions/agent.js +1 -1
  426. package/dist/src/public/definitions/approval.d.ts +2 -84
  427. package/dist/src/public/definitions/approval.js +1 -1
  428. package/dist/src/public/definitions/callback-context.d.ts +1 -32
  429. package/dist/src/public/definitions/connections/mcp.d.ts +1 -1
  430. package/dist/src/public/definitions/connections/mcp.js +1 -1
  431. package/dist/src/public/definitions/connections/openapi.d.ts +1 -1
  432. package/dist/src/public/definitions/connections/openapi.js +1 -1
  433. package/dist/src/public/definitions/connections/protocol.d.ts +1 -1
  434. package/dist/src/public/definitions/instructions.d.ts +2 -2
  435. package/dist/src/public/definitions/instructions.js +1 -1
  436. package/dist/src/public/definitions/skill.js +1 -1
  437. package/dist/src/public/index.d.ts +1 -1
  438. package/dist/src/public/instructions/index.d.ts +1 -1
  439. package/dist/src/public/instrumentation/provider.d.ts +1 -117
  440. package/dist/src/public/instrumentation/provider.js +1 -1
  441. package/dist/src/public/models/openai/chatgpt/auth.js +1 -1
  442. package/dist/src/public/next/server.js +1 -1
  443. package/dist/src/public/nuxt/dev-server.js +1 -1
  444. package/dist/src/public/sandbox/backends/default.d.ts +1 -49
  445. package/dist/src/public/sandbox/backends/default.js +1 -1
  446. package/dist/src/public/sandbox/backends/docker.d.ts +1 -14
  447. package/dist/src/public/sandbox/backends/docker.js +1 -1
  448. package/dist/src/public/sandbox/backends/just-bash.d.ts +1 -17
  449. package/dist/src/public/sandbox/backends/just-bash.js +1 -1
  450. package/dist/src/public/sandbox/backends/microsandbox.d.ts +1 -17
  451. package/dist/src/public/sandbox/backends/microsandbox.js +1 -1
  452. package/dist/src/public/sandbox/backends/vercel.d.ts +1 -30
  453. package/dist/src/public/sandbox/backends/vercel.js +1 -1
  454. package/dist/src/public/skills/index.d.ts +3 -3
  455. package/dist/src/public/skills/index.js +1 -1
  456. package/dist/src/public/sveltekit/dev-server.js +1 -1
  457. package/dist/src/public/tools/approval/index.d.ts +2 -2
  458. package/dist/src/public/tools/approval/index.js +1 -1
  459. package/dist/src/public/tools/bash.d.ts +3 -0
  460. package/dist/src/public/tools/bash.js +1 -0
  461. package/dist/src/public/tools/glob.d.ts +3 -0
  462. package/dist/src/public/tools/glob.js +1 -0
  463. package/dist/src/public/tools/grep.d.ts +3 -0
  464. package/dist/src/public/tools/grep.js +1 -0
  465. package/dist/src/public/tools/index.d.ts +6 -11
  466. package/dist/src/public/tools/index.js +1 -1
  467. package/dist/src/public/tools/load-skill.d.ts +3 -0
  468. package/dist/src/public/tools/load-skill.js +1 -0
  469. package/dist/src/public/tools/read-file.d.ts +3 -0
  470. package/dist/src/public/tools/read-file.js +1 -0
  471. package/dist/src/public/{tool-result-narrowing.d.ts → tools/result.d.ts} +2 -28
  472. package/dist/src/public/tools/result.js +1 -0
  473. package/dist/src/public/tools/sleep.d.ts +1 -0
  474. package/dist/src/public/tools/sleep.js +1 -0
  475. package/dist/src/public/tools/todo.d.ts +3 -0
  476. package/dist/src/public/tools/todo.js +1 -0
  477. package/dist/src/public/tools/web-fetch.d.ts +3 -0
  478. package/dist/src/public/tools/web-fetch.js +1 -0
  479. package/dist/src/public/tools/web-search.d.ts +3 -36
  480. package/dist/src/public/tools/web-search.js +1 -1
  481. package/dist/src/public/tools/workflow.d.ts +4 -0
  482. package/dist/src/public/tools/workflow.js +1 -0
  483. package/dist/src/public/tools/write-file.d.ts +3 -0
  484. package/dist/src/public/tools/write-file.js +1 -0
  485. package/dist/src/public/types/json.d.ts +1 -28
  486. package/dist/src/react/use-eve-agent.d.ts +1 -0
  487. package/dist/src/react/use-eve-agent.js +1 -1
  488. package/dist/src/runtime/actions/keys.d.ts +1 -1
  489. package/dist/src/runtime/actions/results.d.ts +1 -1
  490. package/dist/src/runtime/agent/bootstrap.js +1 -1
  491. package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
  492. package/dist/src/runtime/connections/authorization-tokens.d.ts +1 -1
  493. package/dist/src/runtime/connections/mcp-client.d.ts +1 -1
  494. package/dist/src/runtime/connections/mcp-client.js +1 -1
  495. package/dist/src/runtime/connections/openapi-client.d.ts +1 -1
  496. package/dist/src/runtime/connections/openapi-client.js +1 -1
  497. package/dist/src/runtime/connections/principal.d.ts +1 -1
  498. package/dist/src/runtime/connections/principal.js +1 -1
  499. package/dist/src/runtime/connections/registry-types.d.ts +11 -0
  500. package/dist/src/runtime/connections/registry.d.ts +3 -2
  501. package/dist/src/runtime/connections/resolve-authorization.d.ts +2 -2
  502. package/dist/src/runtime/connections/resolve-authorization.js +1 -1
  503. package/dist/src/runtime/connections/scoped-authorization.d.ts +2 -2
  504. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  505. package/dist/src/runtime/loaders/compile-metadata.js +1 -1
  506. package/dist/src/runtime/loaders/manifest.js +1 -1
  507. package/dist/src/runtime/prompt/compose.d.ts +0 -6
  508. package/dist/src/runtime/prompt/compose.js +1 -1
  509. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  510. package/dist/src/runtime/resolve-agent.js +1 -1
  511. package/dist/src/runtime/resolve-connection.js +1 -1
  512. package/dist/src/runtime/resolve-dynamic-tool.js +1 -1
  513. package/dist/src/runtime/resolve-tool.d.ts +2 -1
  514. package/dist/src/runtime/resolve-tool.js +1 -1
  515. package/dist/src/runtime/sandbox/keys.js +1 -1
  516. package/dist/src/runtime/sandbox/registry.d.ts +4 -20
  517. package/dist/src/runtime/sandbox/registry.js +1 -1
  518. package/dist/src/runtime/sessions/compiled-agent-cache.js +1 -1
  519. package/dist/src/runtime/sessions/runtime-context-keys.js +1 -1
  520. package/dist/src/runtime/sessions/turn.d.ts +3 -1
  521. package/dist/src/runtime/skills/sandbox-access.d.ts +1 -1
  522. package/dist/src/runtime/subagents/dynamic-agent-config.js +1 -1
  523. package/dist/src/runtime/subagents/dynamic-remote-agent-config.js +1 -1
  524. package/dist/src/runtime/subagents/registry.d.ts +0 -27
  525. package/dist/src/runtime/subagents/registry.js +1 -1
  526. package/dist/src/runtime/tools/registry.js +1 -1
  527. package/dist/src/runtime/types.d.ts +11 -27
  528. package/dist/src/sandbox/backends/default.d.ts +49 -0
  529. package/dist/src/sandbox/backends/default.js +1 -0
  530. package/dist/src/sandbox/backends/docker.d.ts +14 -0
  531. package/dist/src/sandbox/backends/docker.js +1 -0
  532. package/dist/src/sandbox/backends/just-bash.d.ts +17 -0
  533. package/dist/src/sandbox/backends/just-bash.js +1 -0
  534. package/dist/src/sandbox/backends/microsandbox.d.ts +17 -0
  535. package/dist/src/sandbox/backends/microsandbox.js +1 -0
  536. package/dist/src/sandbox/backends/vercel.d.ts +30 -0
  537. package/dist/src/sandbox/backends/vercel.js +1 -0
  538. package/dist/src/services/dev-client/runtime-artifacts.d.ts +2 -0
  539. package/dist/src/services/dev-client/runtime-artifacts.js +1 -1
  540. package/dist/src/services/dev-client.d.ts +1 -1
  541. package/dist/src/setup/channel-add-conflicts.js +1 -1
  542. package/dist/src/setup/cli/select-component.js +1 -1
  543. package/dist/src/setup/flows/link.js +1 -1
  544. package/dist/src/setup/flows/model-source-change.js +1 -1
  545. package/dist/src/setup/flows/model.js +1 -1
  546. package/dist/src/setup/flows/registry.js +1 -1
  547. package/dist/src/setup/integrations/runner.js +1 -1
  548. package/dist/src/setup/prompter.js +1 -1
  549. package/dist/src/setup/scaffold/create/add-to-project.js +1 -1
  550. package/dist/src/setup/scaffold/create/project.js +2 -2
  551. package/dist/src/setup/scaffold/create/web-template.d.ts +8 -8
  552. package/dist/src/setup/scaffold/create/web-template.js +336 -120
  553. package/dist/src/setup/scaffold/update/channels.js +1 -1
  554. package/dist/src/setup/scaffold/update/connections.js +1 -1
  555. package/dist/src/setup/vercel-project.js +0 -0
  556. package/dist/src/{runtime/actions/types.d.ts → shared/action-types.d.ts} +12 -12
  557. package/dist/src/{runtime/actions/types.js → shared/action-types.js} +1 -1
  558. package/dist/src/shared/agent-definition.d.ts +3 -10
  559. package/dist/src/shared/agent-definition.js +1 -1
  560. package/dist/src/{runtime/connections/types.d.ts → shared/connection-types.d.ts} +3 -13
  561. package/dist/src/{runtime/input/types.d.ts → shared/input.d.ts} +1 -1
  562. package/dist/src/shared/input.js +1 -0
  563. package/dist/src/shared/instructions-definition.d.ts +2 -0
  564. package/dist/src/shared/instructions-definition.js +1 -1
  565. package/dist/src/shared/objects.d.ts +5 -0
  566. package/dist/src/shared/objects.js +1 -0
  567. package/dist/src/shared/sandbox-definition.d.ts +1 -1
  568. package/dist/src/shared/skill-definition.d.ts +2 -0
  569. package/dist/src/shared/skill-definition.js +1 -1
  570. package/dist/src/{execution/skills/types.d.ts → shared/skill-types.d.ts} +1 -1
  571. package/dist/src/shared/skill-types.js +1 -0
  572. package/dist/src/{runtime/connections → shared}/validate-authorization.d.ts +1 -1
  573. package/dist/src/shared/vercel-project.d.ts +1 -0
  574. package/dist/src/shared/vercel-project.js +1 -1
  575. package/dist/src/svelte/index.js +1 -1
  576. package/dist/src/svelte/use-eve-agent.d.ts +8 -4
  577. package/dist/src/svelte/use-eve-agent.js +1 -1
  578. package/dist/src/tasks/json.d.ts +4 -89
  579. package/dist/src/tasks/json.js +1 -1
  580. package/dist/src/tasks/session-index.d.ts +1 -1
  581. package/dist/src/tasks/task-id.d.ts +0 -1
  582. package/dist/src/tasks/task-id.js +1 -1
  583. package/dist/src/tasks/types.d.ts +1 -1
  584. package/dist/src/tasks/types.js +1 -1
  585. package/dist/src/{public/tools/approval/approval-helpers.d.ts → tools/approval/policies.d.ts} +1 -1
  586. package/dist/src/tools/approval/policies.js +1 -0
  587. package/dist/src/tools/auth.d.ts +35 -0
  588. package/dist/src/tools/auth.js +1 -0
  589. package/dist/src/{public/definitions/tool.d.ts → tools/definition.d.ts} +42 -138
  590. package/dist/src/tools/definition.js +1 -0
  591. package/dist/src/{shared/durable-dynamic-tool-callbacks.d.ts → tools/durable-callbacks.d.ts} +1 -1
  592. package/dist/src/tools/durable-callbacks.js +1 -0
  593. package/dist/src/tools/dynamic.d.ts +68 -0
  594. package/dist/src/tools/dynamic.js +1 -0
  595. package/dist/src/tools/framework/agent-contract.d.ts +8 -0
  596. package/dist/src/tools/framework/agent-contract.js +1 -0
  597. package/dist/src/tools/framework/agent.d.ts +17 -0
  598. package/dist/src/tools/framework/agent.js +1 -0
  599. package/dist/src/tools/framework/ask-question.d.ts +50 -0
  600. package/dist/src/tools/framework/ask-question.js +1 -0
  601. package/dist/src/tools/framework/connection-search.d.ts +3 -0
  602. package/dist/src/tools/framework/connection-search.js +1 -0
  603. package/dist/src/tools/framework/task-cancel.d.ts +29 -0
  604. package/dist/src/tools/framework/task-cancel.js +1 -0
  605. package/dist/src/tools/framework/task-contract.d.ts +167 -0
  606. package/dist/src/tools/framework/task-contract.js +1 -0
  607. package/dist/src/tools/framework/task-update.d.ts +9 -0
  608. package/dist/src/tools/framework/task-update.js +1 -0
  609. package/dist/src/{public/tools/output-builders.d.ts → tools/model-output.d.ts} +41 -1
  610. package/dist/src/tools/provided/bash.d.ts +29 -0
  611. package/dist/src/tools/provided/bash.js +1 -0
  612. package/dist/src/tools/provided/glob.d.ts +26 -0
  613. package/dist/src/tools/provided/glob.js +2 -0
  614. package/dist/src/{runtime/framework-tools → tools/provided}/grep.d.ts +10 -10
  615. package/dist/src/tools/provided/grep.js +2 -0
  616. package/dist/src/tools/provided/load-skill.d.ts +2 -0
  617. package/dist/src/tools/provided/load-skill.js +1 -0
  618. package/dist/src/tools/provided/read-file.d.ts +27 -0
  619. package/dist/src/tools/provided/read-file.js +2 -0
  620. package/dist/src/{public/tools/sleep/index.d.ts → tools/provided/sleep.d.ts} +3 -3
  621. package/dist/src/tools/provided/sleep.js +1 -0
  622. package/dist/src/tools/provided/todo.d.ts +8 -0
  623. package/dist/src/tools/provided/todo.js +2 -0
  624. package/dist/src/{runtime/framework-tools → tools/provided}/web-fetch.d.ts +5 -2
  625. package/dist/src/tools/provided/web-fetch.js +2 -0
  626. package/dist/src/tools/provided/web-search.d.ts +39 -0
  627. package/dist/src/tools/provided/web-search.js +1 -0
  628. package/dist/src/tools/provided/write-file.d.ts +23 -0
  629. package/dist/src/tools/provided/write-file.js +2 -0
  630. package/dist/src/tools/workflow.d.ts +37 -0
  631. package/dist/src/tools/workflow.js +1 -0
  632. package/dist/src/tracing/agent-action-instrumentation.js +1 -1
  633. package/dist/src/tracing/agent-approval-instrumentation.js +1 -1
  634. package/dist/src/tracing/agent-channel-delivery-instrumentation.js +1 -1
  635. package/dist/src/tracing/agent-otel-provider.js +2 -2
  636. package/dist/src/tracing/agent-otel-session-context.d.ts +1 -1
  637. package/dist/src/tracing/agent-otel-session-context.js +1 -1
  638. package/dist/src/tracing/agent-span-id-generator.d.ts +1 -0
  639. package/dist/src/tracing/agent-span-id-generator.js +1 -1
  640. package/dist/src/tracing/agent-trace-context-store.d.ts +1 -1
  641. package/dist/src/tracing/agent-trace-context-store.js +1 -1
  642. package/dist/src/tracing/agent-trace-span-processor.js +1 -1
  643. package/dist/src/tracing/agent-trace-state.d.ts +2 -6
  644. package/dist/src/tracing/agent-trace-state.js +1 -1
  645. package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
  646. package/dist/src/tracing/local-trace-reader.d.ts +1 -3
  647. package/dist/src/tracing/local-trace-reader.js +1 -1
  648. package/dist/src/tracing/otel-declaration.d.ts +1 -2
  649. package/dist/src/tracing/otel-registration.js +1 -1
  650. package/dist/src/tracing/sampled-trace.d.ts +10 -2
  651. package/dist/src/tracing/sampled-trace.js +1 -1
  652. package/dist/src/vue/index.js +1 -1
  653. package/dist/src/vue/use-eve-agent.d.ts +8 -4
  654. package/dist/src/vue/use-eve-agent.js +1 -1
  655. package/docs/agent-config.md +16 -4
  656. package/docs/channels/chat-sdk.mdx +1 -1
  657. package/docs/channels/discord.mdx +5 -1
  658. package/docs/channels/eve.mdx +19 -3
  659. package/docs/channels/github.mdx +2 -0
  660. package/docs/channels/linear.mdx +1 -1
  661. package/docs/channels/overview.mdx +1 -1
  662. package/docs/channels/slack.mdx +2 -0
  663. package/docs/channels/teams.mdx +1 -1
  664. package/docs/channels/telegram.mdx +2 -0
  665. package/docs/concepts/built-in-tools.md +30 -21
  666. package/docs/concepts/sessions-runs-and-streaming.md +3 -1
  667. package/docs/connections/overview.mdx +1 -1
  668. package/docs/extensions.md +2 -2
  669. package/docs/getting-started.mdx +9 -9
  670. package/docs/guides/auth-and-route-protection.md +3 -3
  671. package/docs/guides/client/output-schema.mdx +2 -2
  672. package/docs/guides/client/overview.mdx +4 -2
  673. package/docs/guides/frontend/nuxt.mdx +4 -3
  674. package/docs/guides/frontend/overview.mdx +21 -18
  675. package/docs/guides/frontend/sveltekit.mdx +4 -3
  676. package/docs/guides/frontend/use-eve-agent-svelte.mdx +5 -4
  677. package/docs/guides/frontend/use-eve-agent-vue.mdx +5 -4
  678. package/docs/guides/instrumentation.md +1 -0
  679. package/docs/guides/remote-agents.md +37 -18
  680. package/docs/patterns/multi-tenant-approvals.md +1 -1
  681. package/docs/reference/cli.md +2 -4
  682. package/docs/reference/typescript-api.md +35 -31
  683. package/docs/sandbox.mdx +1 -1
  684. package/docs/subagents/index.mdx +11 -28
  685. package/docs/tools/human-in-the-loop.md +43 -2
  686. package/docs/tools/overview.mdx +1 -1
  687. package/package.json +58 -8
  688. package/dist/src/compiler/normalize-extension.d.ts +0 -80
  689. package/dist/src/compiler/normalize-extension.js +0 -1
  690. package/dist/src/execution/sandbox/write-file-tool.js +0 -1
  691. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response-from-manifest.d.ts +0 -9
  692. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response-from-manifest.js +0 -1
  693. package/dist/src/internal/nitro/routes/health.d.ts +0 -14
  694. package/dist/src/internal/nitro/routes/health.js +0 -1
  695. package/dist/src/node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js +0 -1
  696. package/dist/src/public/definitions/tool.js +0 -1
  697. package/dist/src/public/tool-result-narrowing.js +0 -1
  698. package/dist/src/public/tools/approval/approval-helpers.js +0 -1
  699. package/dist/src/public/tools/defaults.d.ts +0 -46
  700. package/dist/src/public/tools/defaults.js +0 -1
  701. package/dist/src/public/tools/define-bash-tool.d.ts +0 -21
  702. package/dist/src/public/tools/define-bash-tool.js +0 -1
  703. package/dist/src/public/tools/define-glob-tool.d.ts +0 -22
  704. package/dist/src/public/tools/define-glob-tool.js +0 -1
  705. package/dist/src/public/tools/define-grep-tool.d.ts +0 -22
  706. package/dist/src/public/tools/define-grep-tool.js +0 -1
  707. package/dist/src/public/tools/define-read-file-tool.d.ts +0 -21
  708. package/dist/src/public/tools/define-read-file-tool.js +0 -1
  709. package/dist/src/public/tools/define-write-file-tool.d.ts +0 -22
  710. package/dist/src/public/tools/define-write-file-tool.js +0 -1
  711. package/dist/src/public/tools/internal.d.ts +0 -13
  712. package/dist/src/public/tools/internal.js +0 -1
  713. package/dist/src/public/tools/sleep/index.js +0 -1
  714. package/dist/src/runtime/connections/callback-route.js +0 -1
  715. package/dist/src/runtime/framework-channels/index.d.ts +0 -6
  716. package/dist/src/runtime/framework-channels/index.js +0 -1
  717. package/dist/src/runtime/framework-tools/agent.d.ts +0 -29
  718. package/dist/src/runtime/framework-tools/agent.js +0 -1
  719. package/dist/src/runtime/framework-tools/ask-question.d.ts +0 -35
  720. package/dist/src/runtime/framework-tools/ask-question.js +0 -1
  721. package/dist/src/runtime/framework-tools/bash.d.ts +0 -24
  722. package/dist/src/runtime/framework-tools/bash.js +0 -1
  723. package/dist/src/runtime/framework-tools/connection-search-dynamic.d.ts +0 -19
  724. package/dist/src/runtime/framework-tools/connection-search-dynamic.js +0 -2
  725. package/dist/src/runtime/framework-tools/final-output.js +0 -1
  726. package/dist/src/runtime/framework-tools/glob.d.ts +0 -26
  727. package/dist/src/runtime/framework-tools/glob.js +0 -2
  728. package/dist/src/runtime/framework-tools/grep.js +0 -2
  729. package/dist/src/runtime/framework-tools/index.d.ts +0 -39
  730. package/dist/src/runtime/framework-tools/index.js +0 -1
  731. package/dist/src/runtime/framework-tools/read-file.d.ts +0 -27
  732. package/dist/src/runtime/framework-tools/read-file.js +0 -2
  733. package/dist/src/runtime/framework-tools/skill.d.ts +0 -12
  734. package/dist/src/runtime/framework-tools/skill.js +0 -1
  735. package/dist/src/runtime/framework-tools/subagent/local.js +0 -1
  736. package/dist/src/runtime/framework-tools/subagent/remote.js +0 -1
  737. package/dist/src/runtime/framework-tools/tasks.d.ts +0 -91
  738. package/dist/src/runtime/framework-tools/tasks.js +0 -1
  739. package/dist/src/runtime/framework-tools/web-fetch.js +0 -2
  740. package/dist/src/runtime/framework-tools/web-search.js +0 -1
  741. package/dist/src/runtime/framework-tools/write-file.d.ts +0 -23
  742. package/dist/src/runtime/framework-tools/write-file.js +0 -2
  743. package/dist/src/runtime/governance/auth/jwt-ecdsa.js +0 -1
  744. package/dist/src/runtime/governance/auth/jwt-hmac.js +0 -1
  745. package/dist/src/runtime/governance/auth/oidc.js +0 -1
  746. package/dist/src/runtime/input/types.js +0 -1
  747. package/dist/src/runtime/session-callback-route.d.ts +0 -6
  748. package/dist/src/runtime/session-callback-route.js +0 -1
  749. package/dist/src/runtime/task-input-response-route.d.ts +0 -5
  750. package/dist/src/runtime/task-input-response-route.js +0 -1
  751. package/dist/src/shared/durable-dynamic-tool-callbacks.js +0 -1
  752. package/dist/src/shared/dynamic-tool-definition.d.ts +0 -154
  753. package/dist/src/shared/dynamic-tool-definition.js +0 -1
  754. package/dist/src/shared/eve-server-health.d.ts +0 -5
  755. package/dist/src/shared/eve-server-health.js +0 -1
  756. package/dist/src/shared/tool-definition.d.ts +0 -89
  757. /package/dist/src/{runtime/governance → channel}/auth/http-basic.js +0 -0
  758. /package/dist/src/{runtime/governance → channel}/auth/token-claims.js +0 -0
  759. /package/dist/src/{runtime/governance → channel}/auth/types.js +0 -0
  760. /package/dist/src/{runtime/governance → channel}/auth/vercel-oidc-project.js +0 -0
  761. /package/dist/src/{runtime/governance/network → channel}/ip-allow-list.d.ts +0 -0
  762. /package/dist/src/{runtime/governance/network → channel}/ip-allow-list.js +0 -0
  763. /package/dist/src/{execution/skills/types.js → context/session-context.js} +0 -0
  764. /package/dist/src/execution/sandbox/{bash-tool.js → bash.js} +0 -0
  765. /package/dist/src/{runtime/framework-tools → execution/tools}/file-state.js +0 -0
  766. /package/dist/src/{runtime/framework-tools → execution/tools}/sleep.d.ts +0 -0
  767. /package/dist/src/{runtime/framework-tools → execution/tools}/sleep.js +0 -0
  768. /package/dist/src/execution/web-fetch/{tool.d.ts → execute.d.ts} +0 -0
  769. /package/dist/src/execution/web-fetch/{tool.js → execute.js} +0 -0
  770. /package/dist/src/{shared/tool-definition.js → runtime/connections/registry-types.js} +0 -0
  771. /package/dist/src/{runtime/connections/types.js → shared/connection-types.js} +0 -0
  772. /package/dist/src/{runtime/sessions/auth.d.ts → shared/session-auth.d.ts} +0 -0
  773. /package/dist/src/{runtime/sessions/auth.js → shared/session-auth.js} +0 -0
  774. /package/dist/src/{runtime/connections → shared}/validate-authorization.js +0 -0
  775. /package/dist/src/{public/tools/output-builders.js → tools/model-output.js} +0 -0
  776. /package/dist/src/{shared/tool-schema.d.ts → tools/schema.d.ts} +0 -0
  777. /package/dist/src/{shared/tool-schema.js → tools/schema.js} +0 -0
  778. /package/dist/src/{shared/tool-task.d.ts → tools/task.d.ts} +0 -0
  779. /package/dist/src/{shared/tool-task.js → tools/task.js} +0 -0
@@ -1 +1 @@
1
- import{isLoopbackHostname,isPrivateOrReservedIpAddress}from"#shared/network-address.js";import{lookup}from"node:dns";import{isIP}from"node:net";const REDIRECT_STATUSES=new Set([301,302,303,307,308]),UNSAFE_DESTINATION_ERROR=`URL must not target localhost, private, link-local, or reserved IP addresses.`;async function requestPublicUrl(e,t){let n=parseHttpsUrl(e);for(let e=0;;e++){let{dispatcher:r,response:a}=await requestOnce(n,t);try{let r=a.headers.get(`location`);if(r!==null&&REDIRECT_STATUSES.has(a.status)&&e<10){await cancelResponseBody(a),n=parseHttpsUrl(new URL(r,n).toString());continue}return await consumeResponse(a,t.maxResponseSize)}finally{await r.close()}}}function parseHttpsUrl(e){let t;try{t=new URL(e)}catch{throw Error(`URL must be a valid absolute https:// URL.`)}if(t.protocol!==`https:`)throw Error(`URL must start with https://`);return t}async function requestOnce(e,t){assertPublicHostname(e.hostname);let{Agent:n,Dispatcher1Wrapper:r}=await import(`undici`),i=new r(new n({connect:{lookup:createPublicLookup()}}));try{return{dispatcher:i,response:await fetchWithDispatcher(e,{dispatcher:i,headers:t.headers,redirect:`manual`,signal:t.signal})}}catch(e){throw await i.close(),e}}function fetchWithDispatcher(e,t){return fetch(e,t)}function assertPublicHostname(t){let n=t.replace(/^\[(.*)\]$/u,`$1`);if(isIP(n)!==0){assertPublicAddress(n);return}if(isLoopbackHostname(n))throw Error(UNSAFE_DESTINATION_ERROR)}function assertPublicAddress(e){if(isPrivateOrReservedIpAddress(e))throw Error(UNSAFE_DESTINATION_ERROR)}function createPublicLookup(){return(e,t,r)=>{lookup(e,{all:!0,verbatim:!0},(n,i)=>{if(n!==null){r(n,``,0);return}try{for(let{address:e}of i)assertPublicAddress(e)}catch(e){r(e,``,0);return}let a=t.family===void 0||t.family===0?i:i.filter(({family:e})=>e===t.family);if(a.length===0){let t=Error(`Unable to resolve URL hostname "${e}" in the requested IP family.`);Object.assign(t,{code:`ENOTFOUND`}),r(t,``,0);return}if(t.all===!0){r(null,a);return}let o=a[0];r(null,o.address,o.family)})}}async function consumeResponse(e,t){let n=parseContentLength(e.headers.get(`content-length`));if(n!==void 0&&n>t)throw await cancelResponseBody(e),createResponseTooLargeError();let r=await readBoundedBody(e,t),i=r.byteLength===0?null:Uint8Array.from(r).buffer;return new Response(i,{headers:e.headers,status:e.status,statusText:e.statusText})}function parseContentLength(e){if(e===null)return;let t=Number.parseInt(e,10);return Number.isFinite(t)&&t>=0?t:void 0}async function readBoundedBody(e,t){if(e.body===null)return new Uint8Array;let n=e.body.getReader(),r=[],i=0;try{for(;;){let{done:e,value:a}=await n.read();if(e)break;if(i+=a.byteLength,i>t)throw await n.cancel(),createResponseTooLargeError();r.push(a)}}finally{n.releaseLock()}let a=new Uint8Array(i),o=0;for(let e of r)a.set(e,o),o+=e.byteLength;return a}async function cancelResponseBody(e){try{await e.body?.cancel()}catch{}}function createResponseTooLargeError(){return Error(`Response too large (exceeds 5 MB limit).`)}export{requestPublicUrl};
1
+ import{isIP}from"node:net";import{isLoopbackHostname,isPrivateOrReservedIpAddress}from"#shared/network-address.js";import{lookup}from"node:dns";const REDIRECT_STATUSES=new Set([301,302,303,307,308]),UNSAFE_DESTINATION_ERROR=`URL must not target localhost, private, link-local, or reserved IP addresses.`;async function requestPublicUrl(e,t){let n=parseHttpsUrl(e);for(let e=0;;e++){let{dispatcher:r,response:a}=await requestOnce(n,t);try{let r=a.headers.get(`location`);if(r!==null&&REDIRECT_STATUSES.has(a.status)&&e<10){await cancelResponseBody(a),n=parseHttpsUrl(new URL(r,n).toString());continue}return await consumeResponse(a,t.maxResponseSize)}finally{await r.close()}}}function parseHttpsUrl(e){let t;try{t=new URL(e)}catch{throw Error(`URL must be a valid absolute https:// URL.`)}if(t.protocol!==`https:`)throw Error(`URL must start with https://`);return t}async function requestOnce(e,t){assertPublicHostname(e.hostname);let{Agent:n,Dispatcher1Wrapper:r}=await import(`undici`),i=new r(new n({connect:{lookup:createPublicLookup()}}));try{return{dispatcher:i,response:await fetchWithDispatcher(e,{dispatcher:i,headers:t.headers,redirect:`manual`,signal:t.signal})}}catch(e){throw await i.close(),e}}function fetchWithDispatcher(e,t){return fetch(e,t)}function assertPublicHostname(n){let r=n.replace(/^\[(.*)\]$/u,`$1`);if(isIP(r)!==0){assertPublicAddress(r);return}if(isLoopbackHostname(r))throw Error(UNSAFE_DESTINATION_ERROR)}function assertPublicAddress(e){if(isPrivateOrReservedIpAddress(e))throw Error(UNSAFE_DESTINATION_ERROR)}function createPublicLookup(){return(e,t,n)=>{lookup(e,{all:!0,verbatim:!0},(r,i)=>{if(r!==null){n(r,``,0);return}try{for(let{address:e}of i)assertPublicAddress(e)}catch(e){n(e,``,0);return}let a=t.family===void 0||t.family===0?i:i.filter(({family:e})=>e===t.family);if(a.length===0){let t=Error(`Unable to resolve URL hostname "${e}" in the requested IP family.`);Object.assign(t,{code:`ENOTFOUND`}),n(t,``,0);return}if(t.all===!0){n(null,a);return}let o=a[0];n(null,o.address,o.family)})}}async function consumeResponse(e,t){let n=parseContentLength(e.headers.get(`content-length`));if(n!==void 0&&n>t)throw await cancelResponseBody(e),createResponseTooLargeError();let r=await readBoundedBody(e,t),i=r.byteLength===0?null:Uint8Array.from(r).buffer;return new Response(i,{headers:e.headers,status:e.status,statusText:e.statusText})}function parseContentLength(e){if(e===null)return;let t=Number.parseInt(e,10);return Number.isFinite(t)&&t>=0?t:void 0}async function readBoundedBody(e,t){if(e.body===null)return new Uint8Array;let n=e.body.getReader(),r=[],i=0;try{for(;;){let{done:e,value:a}=await n.read();if(e)break;if(i+=a.byteLength,i>t)throw await n.cancel(),createResponseTooLargeError();r.push(a)}}finally{n.releaseLock()}let a=new Uint8Array(i),o=0;for(let e of r)a.set(e,o),o+=e.byteLength;return a}async function cancelResponseBody(e){try{await e.body?.cancel()}catch{}}function createResponseTooLargeError(){return Error(`Response too large (exceeds 5 MB limit).`)}export{requestPublicUrl};
@@ -1 +1 @@
1
- import{sessionCommandHookToken}from"#execution/session-command-token.js";import{isObject}from"#shared/guards.js";import{HookNotFoundError}from"#compiled/@workflow/errors/index.js";import{getHookByToken,resumeHook}from"#internal/workflow/runtime.js";import{SESSION_INBOX_WIRE_VERSION_METADATA_KEY,SessionInboxWireError,isSessionInboxWireVersion}from"#execution/wire/session-inbox-contract.js";import{sessionInboxWire}from"#execution/wire/session-inbox-encoder.js";async function resumeSessionInbox(e,t){let n=await getHookByToken(e),i=await resolveSessionInboxWireTarget(n);return await resumeHook(n,sessionInboxWire.encode(t,i))}async function resolveSessionInboxWireTarget(r){let a=isObject(r.metadata)?r.metadata:void 0;if(a!==void 0&&SESSION_INBOX_WIRE_VERSION_METADATA_KEY in a){let e=a[SESSION_INBOX_WIRE_VERSION_METADATA_KEY];if(isSessionInboxWireVersion(e))return{version:e};throw new SessionInboxWireError(`Session inbox target declares unsupported wire version ${JSON.stringify(e)}.`)}let o=sessionCommandHookToken(r.runId);if(r.token===o)return{variant:`send`,version:0};try{let e=await getHookByToken(o);if(e.runId!==r.runId)throw new SessionInboxWireError(`Stable session inbox ${JSON.stringify(o)} belongs to run ${JSON.stringify(e.runId)}, expected ${JSON.stringify(r.runId)}.`);return{variant:`send`,version:0}}catch(e){if(HookNotFoundError.is(e))return{variant:`deliver`,version:0};throw e}}export{resolveSessionInboxWireTarget,resumeSessionInbox};
1
+ import{sessionCommandHookToken}from"#execution/session-command-token.js";import{isObject}from"#shared/guards.js";import{getHookByToken,resumeHook}from"#internal/workflow/runtime.js";import{HookNotFoundError}from"#compiled/@workflow/errors/index.js";import{SESSION_INBOX_WIRE_VERSION_METADATA_KEY,SessionInboxWireError,isSessionInboxWireVersion}from"#execution/wire/session-inbox-contract.js";import{sessionInboxWire}from"#execution/wire/session-inbox-encoder.js";async function resumeSessionInbox(e,t){let r=await getHookByToken(e),i=await resolveSessionInboxWireTarget(r);return await resumeHook(r,sessionInboxWire.encode(t,i))}async function resolveSessionInboxWireTarget(n){let a=isObject(n.metadata)?n.metadata:void 0;if(a!==void 0&&SESSION_INBOX_WIRE_VERSION_METADATA_KEY in a){let e=a[SESSION_INBOX_WIRE_VERSION_METADATA_KEY];if(isSessionInboxWireVersion(e))return{version:e};throw new SessionInboxWireError(`Session inbox target declares unsupported wire version ${JSON.stringify(e)}.`)}let o=sessionCommandHookToken(n.runId);if(n.token===o)return{variant:`send`,version:0};try{let e=await getHookByToken(o);if(e.runId!==n.runId)throw new SessionInboxWireError(`Stable session inbox ${JSON.stringify(o)} belongs to run ${JSON.stringify(e.runId)}, expected ${JSON.stringify(n.runId)}.`);return{variant:`send`,version:0}}catch(e){if(HookNotFoundError.is(e))return{variant:`deliver`,version:0};throw e}}export{resolveSessionInboxWireTarget,resumeSessionInbox};
@@ -1 +1 @@
1
- import{inputRequestSchema,inputResponseSchema}from"#runtime/input/types.js";import{z}from"#compiled/zod/index.js";import{formatValidationError}from"#runtime/validation.js";import{jsonObjectSchema,jsonValueSchema}from"#shared/json-schemas.js";import{coalesceDeliverPayloads}from"#execution/deliver-payloads.js";import{SessionInboxWireError}from"#execution/wire/session-inbox-contract.js";import{tokenUsageSchema}from"#shared/token-usage.js";const providerOptionsSchema=z.record(z.string(),jsonObjectSchema),textPartSchema=z.object({providerOptions:providerOptionsSchema.optional(),text:z.string(),type:z.literal(`text`)}).strict(),binaryDataSchema=z.custom(e=>typeof e==`string`||e instanceof Uint8Array||e instanceof ArrayBuffer||e instanceof URL,`Expected a string, URL, Uint8Array, or ArrayBuffer.`),imagePartSchema=z.object({image:binaryDataSchema,mediaType:z.string().optional(),providerOptions:providerOptionsSchema.optional(),type:z.literal(`image`)}).strict(),filePartSchema=z.object({data:binaryDataSchema,filename:z.string().optional(),mediaType:z.string(),providerOptions:providerOptionsSchema.optional(),type:z.literal(`file`)}).strict(),userContentSchema=z.union([z.string(),z.array(z.discriminatedUnion(`type`,[textPartSchema,imagePartSchema,filePartSchema]))]),eventCoordinateSchema=z.number().int().nonnegative(),opaqueObjectSchema=z.custom(e=>typeof e==`object`&&!!e&&!Array.isArray(e),`Expected an object.`),subagentInputRequestHookPayloadSchema=z.object({callId:z.string(),childContinuationToken:z.string(),childSessionId:z.string(),event:z.object({requests:z.array(inputRequestSchema),sequence:eventCoordinateSchema,stepIndex:eventCoordinateSchema,turnId:z.string()}).strict(),kind:z.literal(`subagent-input-request`),subagentName:z.string()}).strict(),subagentAuthorizationEventHookPayloadSchema=z.object({callId:z.string(),childSessionId:z.string(),event:opaqueObjectSchema,kind:z.literal(`subagent-authorization-event`),subagentName:z.string()}).strict(),taskMetadataSchema=z.union([z.object({agentId:z.string(),kind:z.literal(`subagent`),mode:z.enum([`local`,`remote`]),name:z.string()}).strict(),z.object({kind:z.string(),name:z.string()}).strict()]),taskViewBase={executor:z.object({binding:z.object({data:z.record(z.string(),jsonValueSchema),kind:z.string()}).strict().optional(),childSessionId:z.string().optional(),childTurnId:z.string().optional(),lifecycle:z.enum([`parked`,`terminal`]).optional()}).strict().optional(),metadata:taskMetadataSchema,taskId:z.string(),usage:tokenUsageSchema.optional()},taskViewSchema=z.discriminatedUnion(`status`,[z.object({...taskViewBase,status:z.literal(`working`)}).strict(),z.object({...taskViewBase,inputRequests:z.array(jsonValueSchema),status:z.literal(`input_required`)}).strict(),z.object({...taskViewBase,lastOutput:z.object({data:jsonValueSchema,type:z.literal(`result`)}).strict(),status:z.literal(`completed`)}).strict(),z.object({...taskViewBase,lastOutput:z.object({data:jsonValueSchema,type:z.literal(`error`)}).strict(),status:z.literal(`failed`)}).strict(),z.object({...taskViewBase,status:z.literal(`cancelled`)}).strict()]),taskPayloadSchema=z.object({authorizationEvents:z.array(z.object({hookPayload:subagentAuthorizationEventHookPayloadSchema,taskId:z.string()}).strict()).optional(),inputRequests:z.array(z.object({hookPayload:subagentInputRequestHookPayloadSchema,taskId:z.string()}).strict()).optional(),views:z.array(taskViewSchema).optional()}).strict(),deliverPayloadSchema=z.object({context:z.array(z.string()).optional(),inputResponses:z.array(inputResponseSchema).optional(),message:userContentSchema.optional(),outputSchema:jsonObjectSchema.optional(),task:taskPayloadSchema.optional()}).loose(),authSchema=z.object({attributes:z.record(z.string(),z.union([z.string(),z.array(z.string())])),authenticator:z.string(),issuer:z.string().optional(),principalId:z.string(),principalType:z.string(),subject:z.string().optional()}).strict(),callerSchema=z.object({callId:z.string(),replyTo:z.discriminatedUnion(`kind`,[z.object({kind:z.literal(`hook`),token:z.string()}).strict(),z.object({kind:z.literal(`callback`),token:z.string(),url:z.string()}).strict()]),subagentName:z.string(),taskId:z.string().optional()}).strict(),traceContextSchema=z.object({spanId:z.string(),traceFlags:z.number(),traceId:z.string()}).strict(),deliveryMetadataSchema=z.object({channelKind:z.string(),channelName:z.string(),deliveryId:z.string(),payloadIndex:z.number().int().nonnegative(),requestId:z.string().optional(),requestTraceContext:traceContextSchema.optional()}).strict(),version=z.literal(1),sessionInboxWireV1Schema=z.discriminatedUnion(`kind`,[z.object({auth:authSchema.nullable().optional(),caller:callerSchema.optional(),deliveryMetadata:z.array(deliveryMetadataSchema).optional(),kind:z.literal(`deliver`),payload:deliverPayloadSchema.optional(),payloads:z.array(deliverPayloadSchema),requestId:z.string().optional(),taskDeliveryId:z.string().optional(),turnPolicy:z.enum([`queue`,`steer`]).optional(),version}).strict(),z.object({kind:z.literal(`session-timeout`),version}).strict(),z.object({kind:z.literal(`clear`),version}).strict(),z.object({kind:z.literal(`compact`),version}).strict(),z.object({kind:z.literal(`reset`),reason:z.string().optional(),version}).strict(),z.object({kind:z.literal(`cancel`),taskId:z.string().optional(),turnId:z.string().optional(),version}).strict()]);function encodeSessionCommandV1(e){let t=e.kind===`send`?{auth:e.auth,caller:e.caller,deliveryMetadata:e.delivery===void 0?void 0:[{...e.delivery,payloadIndex:0}],kind:`deliver`,payload:e.payload,payloads:[e.payload],requestId:e.requestId,taskDeliveryId:e.taskDeliveryId,turnPolicy:e.turnPolicy,version:1}:e.kind===`deliver`?{...e,payload:coalesceDeliverPayloads(e.payloads),version:1}:{...e,version:1},n=sessionInboxWireV1Schema.safeParse(t);if(!n.success)throw new SessionInboxWireError(`Produced a session inbox payload that does not match wire version 1: ${formatValidationError(n.error)}`);return n.data}export{encodeSessionCommandV1,sessionInboxWireV1Schema};
1
+ import{z}from"#compiled/zod/index.js";import{inputRequestSchema,inputResponseSchema}from"#shared/input.js";import{formatValidationError}from"#runtime/validation.js";import{jsonObjectSchema,jsonValueSchema}from"#shared/json-schemas.js";import{coalesceDeliverPayloads}from"#execution/deliver-payloads.js";import{tokenUsageSchema}from"#shared/token-usage.js";import{SessionInboxWireError}from"#execution/wire/session-inbox-contract.js";const providerOptionsSchema=z.record(z.string(),jsonObjectSchema),textPartSchema=z.object({providerOptions:providerOptionsSchema.optional(),text:z.string(),type:z.literal(`text`)}).strict(),binaryDataSchema=z.custom(e=>typeof e==`string`||e instanceof Uint8Array||e instanceof ArrayBuffer||e instanceof URL,`Expected a string, URL, Uint8Array, or ArrayBuffer.`),imagePartSchema=z.object({image:binaryDataSchema,mediaType:z.string().optional(),providerOptions:providerOptionsSchema.optional(),type:z.literal(`image`)}).strict(),filePartSchema=z.object({data:binaryDataSchema,filename:z.string().optional(),mediaType:z.string(),providerOptions:providerOptionsSchema.optional(),type:z.literal(`file`)}).strict(),userContentSchema=z.union([z.string(),z.array(z.discriminatedUnion(`type`,[textPartSchema,imagePartSchema,filePartSchema]))]),eventCoordinateSchema=z.number().int().nonnegative(),opaqueObjectSchema=z.custom(e=>typeof e==`object`&&!!e&&!Array.isArray(e),`Expected an object.`),subagentInputRequestHookPayloadSchema=z.object({callId:z.string(),childContinuationToken:z.string(),childSessionId:z.string(),event:z.object({requests:z.array(inputRequestSchema),sequence:eventCoordinateSchema,stepIndex:eventCoordinateSchema,turnId:z.string()}).strict(),kind:z.literal(`subagent-input-request`),subagentName:z.string()}).strict(),subagentAuthorizationEventHookPayloadSchema=z.object({callId:z.string(),childSessionId:z.string(),event:opaqueObjectSchema,kind:z.literal(`subagent-authorization-event`),subagentName:z.string()}).strict(),taskMetadataSchema=z.union([z.object({agentId:z.string(),kind:z.literal(`subagent`),mode:z.enum([`local`,`remote`]),name:z.string()}).strict(),z.object({kind:z.string(),name:z.string()}).strict()]),taskViewBase={executor:z.object({binding:z.object({data:z.record(z.string(),jsonValueSchema),kind:z.string()}).strict().optional(),childSessionId:z.string().optional(),childTurnId:z.string().optional(),lifecycle:z.enum([`parked`,`terminal`]).optional()}).strict().optional(),metadata:taskMetadataSchema,taskId:z.string(),usage:tokenUsageSchema.optional()},taskViewSchema=z.discriminatedUnion(`status`,[z.object({...taskViewBase,status:z.literal(`working`)}).strict(),z.object({...taskViewBase,inputRequests:z.array(jsonValueSchema),status:z.literal(`input_required`)}).strict(),z.object({...taskViewBase,lastOutput:z.object({data:jsonValueSchema,type:z.literal(`result`)}).strict(),status:z.literal(`completed`)}).strict(),z.object({...taskViewBase,lastOutput:z.object({data:jsonValueSchema,type:z.literal(`error`)}).strict(),status:z.literal(`failed`)}).strict(),z.object({...taskViewBase,status:z.literal(`cancelled`)}).strict()]),taskPayloadSchema=z.object({authorizationEvents:z.array(z.object({hookPayload:subagentAuthorizationEventHookPayloadSchema,taskId:z.string()}).strict()).optional(),inputRequests:z.array(z.object({hookPayload:subagentInputRequestHookPayloadSchema,taskId:z.string()}).strict()).optional(),views:z.array(taskViewSchema).optional()}).strict(),deliverPayloadSchema=z.object({context:z.array(z.string()).optional(),inputResponses:z.array(inputResponseSchema).optional(),message:userContentSchema.optional(),outputSchema:jsonObjectSchema.optional(),task:taskPayloadSchema.optional()}).loose(),authSchema=z.object({attributes:z.record(z.string(),z.union([z.string(),z.array(z.string())])),authenticator:z.string(),issuer:z.string().optional(),principalId:z.string(),principalType:z.string(),subject:z.string().optional()}).strict(),callerSchema=z.object({callId:z.string(),replyTo:z.discriminatedUnion(`kind`,[z.object({kind:z.literal(`hook`),token:z.string()}).strict(),z.object({kind:z.literal(`callback`),token:z.string(),url:z.string()}).strict()]),subagentName:z.string(),taskId:z.string().optional()}).strict(),traceContextSchema=z.object({spanId:z.string(),traceFlags:z.number(),traceId:z.string()}).strict(),deliveryMetadataSchema=z.object({channelKind:z.string(),channelName:z.string(),deliveryId:z.string(),payloadIndex:z.number().int().nonnegative(),requestId:z.string().optional(),requestTraceContext:traceContextSchema.optional()}).strict(),version=z.literal(1),sessionInboxWireV1Schema=z.discriminatedUnion(`kind`,[z.object({auth:authSchema.nullable().optional(),caller:callerSchema.optional(),deliveryMetadata:z.array(deliveryMetadataSchema).optional(),kind:z.literal(`deliver`),payload:deliverPayloadSchema.optional(),payloads:z.array(deliverPayloadSchema),requestId:z.string().optional(),taskDeliveryId:z.string().optional(),turnPolicy:z.enum([`queue`,`steer`]).optional(),version}).strict(),z.object({kind:z.literal(`session-timeout`),version}).strict(),z.object({kind:z.literal(`clear`),version}).strict(),z.object({kind:z.literal(`compact`),version}).strict(),z.object({kind:z.literal(`reset`),reason:z.string().optional(),version}).strict(),z.object({kind:z.literal(`cancel`),taskId:z.string().optional(),turnId:z.string().optional(),version}).strict()]);function encodeSessionCommandV1(e){let t=e.kind===`send`?{auth:e.auth,caller:e.caller,deliveryMetadata:e.delivery===void 0?void 0:[{...e.delivery,payloadIndex:0}],kind:`deliver`,payload:e.payload,payloads:[e.payload],requestId:e.requestId,taskDeliveryId:e.taskDeliveryId,turnPolicy:e.turnPolicy,version:1}:e.kind===`deliver`?{...e,payload:coalesceDeliverPayloads(e.payloads),version:1}:{...e,version:1},n=sessionInboxWireV1Schema.safeParse(t);if(!n.success)throw new SessionInboxWireError(`Produced a session inbox payload that does not match wire version 1: ${formatValidationError(n.error)}`);return n.data}export{encodeSessionCommandV1,sessionInboxWireV1Schema};
@@ -1 +1 @@
1
- import{sessionCommandHookToken}from"#execution/session-command-token.js";import{isTaskOwnedSerializedContext}from"#execution/tasks/child/instructions.js";import{readSerializedSubagentDepth}from"#harness/subagent-depth.js";import{readChannelRequestId,readRootSessionId}from"#execution/eve-workflow-attributes.js";import{getWorkflowMetadata,getWritable}from"#compiled/@workflow/core/index.js";import{isHookConflictError}from"#execution/hook-ownership.js";import{activeTurnId}from"#harness/active-turn-id.js";import{fireSessionCallbackStep}from"#execution/session-callback-step.js";import{normalizeSerializableError}from"#execution/workflow-errors.js";import{SessionStateCursor}from"#execution/session-state-cursor.js";import{cancelDescendantTurnsStep}from"#execution/cancel-descendant-turns-step.js";import{bindTurnCallerContextStep,notifyCancelledTaskCallerStep,notifyDelegatedParentStep,notifyTaskTurnStartedStep,notifyTurnCallerStep,resolveInitialTurnCallerStep}from"#execution/delegated-parent-notification.js";import{createDelegatedSubagentErrorResult,createDelegatedSubagentSuccessResult}from"#execution/delegated-parent-result.js";import{nextTurnDelivery}from"#execution/parked-delivery-wait.js";import{dispatchAndAwaitTurn}from"#execution/turn-dispatch.js";import{createSessionStep}from"#execution/create-session-step.js";import{settleCancelledTurnStep}from"#execution/settle-cancelled-turn-step.js";import{emitTerminalSessionFailureStep}from"#execution/terminal-session-failure-step.js";import{createSessionCommandInbox}from"#execution/session-command-inbox.js";import{DEFAULT_SESSION_TIMEOUT_MS}from"#execution/session-timeout.js";import{emitTerminalSessionCompletionStep}from"#execution/terminal-session-completion-step.js";import{createSessionTimeoutControl}from"#execution/session-timeout-control.js";import{terminateChildSessionsStep}from"#execution/terminate-child-sessions-step.js";async function workflowEntry(e){"use workflow";let{workflowRunId:s,workflowStartedAt:c}=getWorkflowMetadata(),d=e.serializedContext[`eve.continuationToken`]||``,f=e.serializedContext[`eve.mode`],p=e.serializedContext[`eve.capabilities`],m=e.serializedContext[`eve.bundle`];e.serializedContext[`eve.sessionId`]=s;let g=getWritable(),y={caller:void 0,callerResolved:!1,lastSessionState:void 0};try{let a=readRootSessionId(e.serializedContext),o=readSerializedSubagentDepth(e.serializedContext),l=e.serializedContext[`eve.dynamicSubagentAgentConfig`],{state:u}=await createSessionStep({compiledArtifactsSource:m.source,continuationToken:d,dynamicSubagentAgentConfig:l,inheritedLimits:e.limits,nodeId:m.nodeId,outputSchema:e.input.outputSchema,rootSessionId:a,sessionId:s,subagentDepth:o,taskOwned:isTaskOwnedSerializedContext(e.serializedContext)});y.lastSessionState=u,y.caller=await resolveInitialTurnCallerStep({serializedContext:e.serializedContext}),y.callerResolved=!0;let h=await runDriverLoop({capabilities:p,driverWritable:g,initialInput:{deliveryMetadata:e.serializedContext[`eve.channelDelivery`]===void 0?void 0:[{...e.serializedContext[`eve.channelDelivery`],payloadIndex:0}],kind:`deliver`,payloads:[{message:e.input.message,context:e.input.context,outputSchema:e.input.outputSchema}],requestId:readChannelRequestId(e.serializedContext)},crashCleanupState:y,mode:f,serializedContext:e.serializedContext,sessionState:u,sessionTimeoutDeadline:e.sessionTimeoutMs===!1?void 0:new Date(c.getTime()+(e.sessionTimeoutMs??DEFAULT_SESSION_TIMEOUT_MS))});return h.kind===`result`?h.result:await finalizeExpiredSession({caller:y.caller,driverWritable:g,mode:f,serializedContext:h.serializedContext,sessionState:h.sessionState})}catch(t){throw y.lastSessionState!==void 0&&await terminateChildSessionsStep({serializedContext:e.serializedContext,sessionState:y.lastSessionState}),await emitTerminalSessionFailureStep({error:normalizeSerializableError(t),parentWritable:g,serializedContext:e.serializedContext}),f===`task`?(await fireSessionCallbackStep({error:normalizeSerializableError(t),serializedContext:e.serializedContext,status:`failed`}),await notifyDelegatedParentStep({result:createDelegatedSubagentErrorResult(e.serializedContext,t),serializedContext:e.serializedContext})):await notifyTurnCallerStep({caller:await resolveCallerForCrash(y,e.serializedContext),lifecycle:`terminal`,sessionId:s,settled:{isError:!0,output:t}}),createSafeOuterWorkflowError()}}async function resolveCallerForCrash(e,t){if(e.callerResolved)return e.caller;try{return await resolveInitialTurnCallerStep({serializedContext:t})}catch{return}}function createSafeOuterWorkflowError(){let e=Error(`Agent workflow failed. Inspect the private session trace for details.`);return e.name=`EveWorkflowFailure`,e}async function runDriverLoop(t){let n=new Map,nextParkedActivity=async e=>{let r=new Set(e.expectedAttemptIds);for(let e of n.keys())r.has(e)||n.delete(e);for(;;){if(r.size>0&&[...r].every(e=>n.has(e))){let e=[...r].map(e=>n.get(e));return n.clear(),{kind:`authorization-resume`,payloads:e}}let e=await nextTurnDelivery({awaitAuthorizationCallbacks:r.size>0,bufferedDeliveries:i,bufferedSessionControls:a,cancelledTaskIds:o,commandInbox:u,deferDeliveries:t.mode===`task`&&r.size>0,driverWritable:t.driverWritable,seenTaskDeliveries:l,stateCursor:v});if(e.kind!==`authorization`)return e;for(let t of e.payloads){let e=t.authorizationCallback;typeof e?.attemptId==`string`&&r.has(e.attemptId)&&!n.has(e.attemptId)&&n.set(e.attemptId,t)}if(e.closed){let e=[...n.values()];return n.clear(),{kind:`authorization-resume`,payloads:e}}}},r=0,nextTurnControlToken=()=>`${t.sessionState.sessionId}:turn-control:${String(r++)}`,i=[],a=[],o=new Set,l=new Set,u=createSessionCommandInbox(),h=sessionCommandHookToken(t.sessionState.sessionId);await u.claimStable(h),await u.claimAuthorization(`${t.sessionState.sessionId}:auth`);let _=t.sessionTimeoutDeadline===void 0?void 0:createSessionTimeoutControl({deadline:t.sessionTimeoutDeadline,token:h}),v=new SessionStateCursor({serializedContext:t.serializedContext,sessionState:t.sessionState}),y,runTurn=async e=>{let n=t.crashCleanupState.caller;n?.taskId!==void 0&&(l.add(n.taskId),await notifyTaskTurnStartedStep({caller:n,childSessionId:v.sessionState.sessionId,childTurnId:activeTurnId(v.sessionState.emissionState)}));let r=await bindTurnCallerContextStep({caller:n,serializedContext:v.serializedContext}),s=await dispatchAndAwaitTurn({bufferedDeliveries:i,bufferedSessionControls:a,cancelledTaskIds:o,capabilities:t.capabilities,commandInbox:u,controlToken:nextTurnControlToken(),delivery:e,mode:t.mode,parentWritable:t.driverWritable,serializedContext:r,seenTaskDeliveries:l,sessionState:v.sessionState});return await y?.(),y=s.dispose,v.adoptState(s.action),t.crashCleanupState.lastSessionState=v.sessionState,s.action};try{if(t.sessionState.continuationToken)try{await u.rekeyContinuation(t.sessionState.continuationToken)}catch(e){if(!isHookConflictError(e))throw e;return{kind:`result`,result:{output:``}}}await _?.start();let e=await runTurn(t.initialInput);for(;;){if(e.kind===`done`)return{kind:`result`,result:await finalizeDone({action:e,caller:t.crashCleanupState.caller,mode:t.mode})};if(e.kind!==`park`)throw Error(`Driver received unexpected turn action "${e.kind}".`);if(e.cancelled===!0){let e=await settleCancelledTurnStep({parentWritable:t.driverWritable,serializedContext:v.serializedContext,sessionState:v.sessionState});v.adoptState(e);let n={caller:t.crashCleanupState.caller,sessionId:v.sessionState.sessionId};await notifyCancelledTaskCallerStep(e.usage===void 0?n:{...n,usage:e.usage}),t.crashCleanupState.lastSessionState=v.sessionState}v.sessionState.continuationToken&&await u.rekeyContinuation(v.sessionState.continuationToken);let n=e.settled;e.cancelled!==!0&&n!==void 0?(await notifyTurnCallerStep({caller:t.crashCleanupState.caller,lifecycle:`parked`,sessionId:v.sessionState.sessionId,settled:n}),t.crashCleanupState.caller=void 0):e.cancelled===!0&&(t.crashCleanupState.caller=void 0);let r=await nextParkedActivity({expectedAttemptIds:e.authorizationAttemptIds??[]});if(t.crashCleanupState.lastSessionState=v.sessionState,r.kind===`authorization-resume`){e=await runTurn({kind:`deliver`,payloads:r.payloads});continue}if(r.kind===`expired`)return{kind:`expired`,serializedContext:v.serializedContext,sessionState:v.sessionState};if(r.kind===`reset`)return await terminateChildSessionsStep({serializedContext:v.serializedContext,sessionState:v.sessionState}),{kind:`result`,result:{output:``}};if(r.kind===`clear`||r.kind===`compact`){e=await runTurn({kind:r.kind});continue}if(r.kind===`closed`)return{kind:`result`,result:{output:``}};if(r.kind===`cancel-turn`){await cancelDescendantTurnsStep({serializedContext:v.serializedContext,sessionState:v.sessionState});let n=await settleCancelledTurnStep({parentWritable:t.driverWritable,serializedContext:v.serializedContext,sessionState:v.sessionState});v.adoptState(n),e={...e,settled:void 0},t.crashCleanupState.caller=void 0,t.crashCleanupState.lastSessionState=v.sessionState;continue}r.delivery.caller!==void 0&&(t.crashCleanupState.caller=r.delivery.caller),e=await runTurn(r.delivery)}}finally{await y?.(),await _?.dispose(),await u.dispose()}}async function finalizeExpiredSession(e){return await terminateChildSessionsStep({serializedContext:e.serializedContext,sessionState:e.sessionState}),await emitTerminalSessionCompletionStep({parentWritable:e.driverWritable,serializedContext:e.serializedContext}),e.mode===`task`?(await fireSessionCallbackStep({output:``,serializedContext:e.serializedContext,status:`completed`}),await notifyDelegatedParentStep({result:createDelegatedSubagentSuccessResult(e.serializedContext,``),serializedContext:e.serializedContext})):await notifyTurnCallerStep({caller:e.caller,lifecycle:`terminal`,sessionId:e.sessionState.sessionId,settled:{output:``}}),{output:``}}async function finalizeDone(e){let{output:t,serializedContext:n}=e.action,r=e.action.isError===!0;if(await terminateChildSessionsStep({serializedContext:n,sessionState:e.action.sessionState}),e.mode===`task`)await fireSessionCallbackStep({error:r?t:void 0,output:r?void 0:t,serializedContext:n,status:r?`failed`:`completed`,usage:e.action.usage}),await notifyDelegatedParentStep({result:r?createDelegatedSubagentErrorResult(n,t):createDelegatedSubagentSuccessResult(n,t),serializedContext:n,usage:e.action.usage});else{let n={output:t,usage:e.action.usageDelta};r&&(n.isError=!0),await notifyTurnCallerStep({caller:e.caller,lifecycle:`terminal`,sessionId:e.action.sessionState.sessionId,settled:n})}return{output:t}}export{workflowEntry};
1
+ import{sessionCommandHookToken}from"#execution/session-command-token.js";import{isTaskOwnedSerializedContext}from"#execution/tasks/child/instructions.js";import{readSerializedSubagentDepth}from"#harness/subagent-depth.js";import{readChannelRequestId,readRootSessionId}from"#execution/eve-workflow-attributes.js";import{getWorkflowMetadata,getWritable}from"#compiled/@workflow/core/index.js";import{isHookConflictError}from"#execution/hook-ownership.js";import{activeTurnId}from"#harness/active-turn-id.js";import{fireSessionCallbackStep}from"#execution/session-callback-step.js";import{normalizeSerializableError}from"#execution/workflow-errors.js";import{SessionStateCursor}from"#execution/session-state-cursor.js";import{cancelDescendantTurnsStep}from"#execution/cancel-descendant-turns-step.js";import{bindTurnCallerContextStep,notifyCancelledTaskCallerStep,notifyDelegatedParentStep,notifyTaskTurnStartedStep,notifyTurnCallerStep,resolveInitialTurnCallerStep}from"#execution/delegated-parent-notification.js";import{createDelegatedSubagentErrorResult,createDelegatedSubagentSuccessResult}from"#execution/delegated-parent-result.js";import{nextTurnDelivery}from"#execution/parked-delivery-wait.js";import{dispatchAndAwaitTurn}from"#execution/turn-dispatch.js";import{createSessionStep}from"#execution/create-session-step.js";import{settleCancelledTurnStep}from"#execution/settle-cancelled-turn-step.js";import{emitTerminalSessionFailureStep}from"#execution/terminal-session-failure-step.js";import{createSessionCommandInbox}from"#execution/session-command-inbox.js";import{DEFAULT_SESSION_TIMEOUT_MS}from"#execution/session-timeout.js";import{emitTerminalSessionCompletionStep}from"#execution/terminal-session-completion-step.js";import{createSessionTimeoutControl}from"#execution/session-timeout-control.js";import{terminateChildSessionsStep}from"#execution/terminate-child-sessions-step.js";async function workflowEntry(e){"use workflow";let{workflowRunId:s,workflowStartedAt:c}=getWorkflowMetadata(),d=e.serializedContext[`eve.continuationToken`]||``,f=e.serializedContext[`eve.mode`],p=e.serializedContext[`eve.capabilities`],m=e.serializedContext[`eve.bundle`];e.serializedContext[`eve.sessionId`]=s;let g=getWritable(),y={caller:void 0,callerResolved:!1,lastSessionState:void 0};try{let a=readRootSessionId(e.serializedContext),o=readSerializedSubagentDepth(e.serializedContext),l=e.serializedContext[`eve.dynamicSubagentAgentConfig`],{state:u}=await createSessionStep({compiledArtifactsSource:m.source,continuationToken:d,dynamicSubagentAgentConfig:l,inheritedLimits:e.limits,nodeId:m.nodeId,outputSchema:e.input.outputSchema,rootSessionId:a,sessionId:s,subagentDepth:o,taskOwned:isTaskOwnedSerializedContext(e.serializedContext)});y.lastSessionState=u,y.caller=await resolveInitialTurnCallerStep({serializedContext:e.serializedContext}),y.callerResolved=!0;let h=await runDriverLoop({capabilities:p,driverWritable:g,initialInput:{deliveryMetadata:e.serializedContext[`eve.channelDelivery`]===void 0?void 0:[{...e.serializedContext[`eve.channelDelivery`],payloadIndex:0}],kind:`deliver`,payloads:[{message:e.input.message,context:e.input.context,outputSchema:e.input.outputSchema}],requestId:readChannelRequestId(e.serializedContext)},crashCleanupState:y,mode:f,serializedContext:e.serializedContext,sessionState:u,sessionTimeoutDeadline:e.sessionTimeoutMs===!1?void 0:new Date(c.getTime()+(e.sessionTimeoutMs??DEFAULT_SESSION_TIMEOUT_MS))});return h.kind===`result`?h.result:await finalizeExpiredSession({caller:y.caller,driverWritable:g,mode:f,serializedContext:h.serializedContext,sessionState:h.sessionState})}catch(t){throw y.lastSessionState!==void 0&&await terminateChildSessionsStep({serializedContext:e.serializedContext,sessionState:y.lastSessionState}),await emitTerminalSessionFailureStep({error:normalizeSerializableError(t),parentWritable:g,serializedContext:e.serializedContext}),f===`task`?(await fireSessionCallbackStep({error:normalizeSerializableError(t),serializedContext:e.serializedContext,status:`failed`}),await notifyDelegatedParentStep({result:createDelegatedSubagentErrorResult(e.serializedContext,t),serializedContext:e.serializedContext})):await notifyTurnCallerStep({caller:await resolveCallerForCrash(y,e.serializedContext),lifecycle:`terminal`,sessionId:s,settled:{isError:!0,output:t}}),createSafeOuterWorkflowError()}}async function resolveCallerForCrash(e,t){if(e.callerResolved)return e.caller;try{return await resolveInitialTurnCallerStep({serializedContext:t})}catch{return}}function createSafeOuterWorkflowError(){let e=Error(`Agent workflow failed. Inspect the private session trace for details.`);return e.name=`EveWorkflowFailure`,e}async function runDriverLoop(t){let n=new Map,nextParkedActivity=async e=>{let r=new Set(e.expectedAttemptIds);for(let e of n.keys())r.has(e)||n.delete(e);for(;;){if(r.size>0&&[...r].every(e=>n.has(e))){let e=[...r].map(e=>n.get(e));return n.clear(),{kind:`authorization-resume`,payloads:e}}let e=await nextTurnDelivery({awaitAuthorizationCallbacks:r.size>0,bufferedDeliveries:i,bufferedSessionControls:a,cancelledTaskIds:o,commandInbox:u,deferDeliveries:t.mode===`task`&&r.size>0,driverWritable:t.driverWritable,seenTaskDeliveries:l,stateCursor:v});if(e.kind!==`authorization`)return e;for(let t of e.payloads){let e=t.authorizationCallback;typeof e?.attemptId==`string`&&r.has(e.attemptId)&&!n.has(e.attemptId)&&n.set(e.attemptId,t)}if(e.closed){let e=[...n.values()];return n.clear(),{kind:`authorization-resume`,payloads:e}}}},r=0,nextTurnControlToken=()=>`${t.sessionState.sessionId}:turn-control:${String(r++)}`,i=[],a=[],o=new Set,l=new Set,u=createSessionCommandInbox(),h=sessionCommandHookToken(t.sessionState.sessionId);await u.claimStable(h),await u.claimAuthorization(`${t.sessionState.sessionId}:auth`);let _=t.sessionTimeoutDeadline===void 0?void 0:createSessionTimeoutControl({deadline:t.sessionTimeoutDeadline,token:h}),v=new SessionStateCursor({serializedContext:t.serializedContext,sessionState:t.sessionState}),y,runTurn=async e=>{let n=t.crashCleanupState.caller;n?.taskId!==void 0&&(l.add(n.taskId),await notifyTaskTurnStartedStep({caller:n,childSessionId:v.sessionState.sessionId,childTurnId:activeTurnId(v.sessionState.emissionState)}));let r=await bindTurnCallerContextStep({caller:n,serializedContext:v.serializedContext}),s=await dispatchAndAwaitTurn({bufferedDeliveries:i,bufferedSessionControls:a,cancelledTaskIds:o,capabilities:t.capabilities,commandInbox:u,controlToken:nextTurnControlToken(),delivery:e,mode:t.mode,parentWritable:t.driverWritable,serializedContext:r,seenTaskDeliveries:l,sessionState:v.sessionState});return await y?.(),y=s.dispose,v.adoptState(s.action),t.crashCleanupState.lastSessionState=v.sessionState,s.action};try{if(t.sessionState.continuationToken)try{await u.rekeyContinuation(t.sessionState.continuationToken)}catch(e){if(!isHookConflictError(e))throw e;return{kind:`result`,result:{output:``}}}await _?.start();let e=await runTurn(t.initialInput);for(;;){if(e.kind===`done`)return{kind:`result`,result:await finalizeDone({action:e,caller:t.crashCleanupState.caller,mode:t.mode})};if(e.kind!==`park`)throw Error(`Driver received unexpected turn action "${e.kind}".`);if(e.cancelled===!0){let e=await settleCancelledTurnStep({parentWritable:t.driverWritable,serializedContext:v.serializedContext,sessionState:v.sessionState});v.adoptState(e);let n={caller:t.crashCleanupState.caller,sessionId:v.sessionState.sessionId};await notifyCancelledTaskCallerStep(e.usage===void 0?n:{...n,usage:e.usage}),t.crashCleanupState.lastSessionState=v.sessionState}v.sessionState.continuationToken&&await u.rekeyContinuation(v.sessionState.continuationToken);let n=e.settled;e.cancelled!==!0&&n!==void 0?(await notifyTurnCallerStep({caller:t.crashCleanupState.caller,lifecycle:`parked`,sessionId:v.sessionState.sessionId,settled:n}),t.crashCleanupState.caller=void 0):e.cancelled===!0&&(t.crashCleanupState.caller=void 0);let r=await nextParkedActivity({expectedAttemptIds:e.authorizationAttemptIds??[]});if(t.crashCleanupState.lastSessionState=v.sessionState,r.kind===`authorization-resume`){e=await runTurn({kind:`deliver`,payloads:r.payloads});continue}if(r.kind===`expired`)return{kind:`expired`,serializedContext:v.serializedContext,sessionState:v.sessionState};if(r.kind===`reset`)return await terminateChildSessionsStep({serializedContext:v.serializedContext,sessionState:v.sessionState}),{kind:`result`,result:{output:``}};if(r.kind===`clear`||r.kind===`compact`){e=await runTurn({kind:r.kind});continue}if(r.kind===`closed`)return await terminateChildSessionsStep({serializedContext:v.serializedContext,sessionState:v.sessionState}),{kind:`result`,result:{output:``}};if(r.kind===`cancel-turn`){await cancelDescendantTurnsStep({serializedContext:v.serializedContext,sessionState:v.sessionState});let n=await settleCancelledTurnStep({parentWritable:t.driverWritable,serializedContext:v.serializedContext,sessionState:v.sessionState});v.adoptState(n),e={...e,settled:void 0},t.crashCleanupState.caller=void 0,t.crashCleanupState.lastSessionState=v.sessionState;continue}r.delivery.caller!==void 0&&(t.crashCleanupState.caller=r.delivery.caller),e=await runTurn(r.delivery)}}finally{await y?.(),await _?.dispose(),await u.dispose()}}async function finalizeExpiredSession(e){return await terminateChildSessionsStep({serializedContext:e.serializedContext,sessionState:e.sessionState}),await emitTerminalSessionCompletionStep({parentWritable:e.driverWritable,serializedContext:e.serializedContext}),e.mode===`task`?(await fireSessionCallbackStep({output:``,serializedContext:e.serializedContext,status:`completed`}),await notifyDelegatedParentStep({result:createDelegatedSubagentSuccessResult(e.serializedContext,``),serializedContext:e.serializedContext})):await notifyTurnCallerStep({caller:e.caller,lifecycle:`terminal`,sessionId:e.sessionState.sessionId,settled:{output:``}}),{output:``}}async function finalizeDone(e){let{output:t,serializedContext:n}=e.action,r=e.action.isError===!0;if(await terminateChildSessionsStep({serializedContext:n,sessionState:e.action.sessionState}),e.mode===`task`)await fireSessionCallbackStep({error:r?t:void 0,output:r?void 0:t,serializedContext:n,status:r?`failed`:`completed`,usage:e.action.usage}),await notifyDelegatedParentStep({result:r?createDelegatedSubagentErrorResult(n,t):createDelegatedSubagentSuccessResult(n,t),serializedContext:n,usage:e.action.usage});else{let n={output:t,usage:e.action.usageDelta};r&&(n.isError=!0),await notifyTurnCallerStep({caller:e.caller,lifecycle:`terminal`,sessionId:e.action.sessionState.sessionId,settled:n})}return{output:t}}export{workflowEntry};
@@ -1 +1 @@
1
- import{createLogger,logError}from"#internal/logging.js";import{RuntimeSessionOwnershipConflictError}from"#execution/runtime-errors.js";import{sessionCommandHookToken}from"#execution/session-command-token.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{walkCauseChain}from"#shared/errors.js";import{isEveDevEnvironment}from"#internal/application/dev-environment.js";import{serializeContext}from"#context/serialize.js";import{getCompiledRuntimeAgentBundle}from"#runtime/sessions/compiled-agent-cache.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{EntityConflictError,HookNotFoundError,RunExpiredError,WorkflowRunNotFoundError}from"#compiled/@workflow/errors/index.js";import{getHookByToken,getRun,start}from"#internal/workflow/runtime.js";import{buildSessionAttributes,buildSubagentRootAttributes,readParentLineage}from"#execution/eve-workflow-attributes.js";import{normalizeEveAttributes}from"#runtime/attributes/normalize.js";import{resumeSessionInbox}from"#execution/wire/session-inbox-resume.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{buildRunContext}from"#execution/runtime-context.js";import{parseNdjsonStream}from"#execution/ndjson-stream.js";import{buildInvocationAttributes}from"#internal/invocation/metadata.js";const WORKFLOW_ENTRY_NAME=`workflowEntry`,TURN_WORKFLOW_NAME=`turnWorkflow`,SESSION_TIMEOUT_WORKFLOW_NAME=`sessionTimeoutWorkflow`,TASK_RUN_WORKFLOW_NAME=`taskRunWorkflow`,EVE_PACKAGE_INFO=resolveInstalledPackageInfo(),COMMAND_HOOK_READY_TIMEOUT_MS=3e4,LATEST_DEPLOYMENT_UNSUPPORTED_MESSAGE=`deploymentId 'latest' requires a World that implements resolveLatestDeploymentId()`,STABLE_WORKFLOW_NAMES=new Set([WORKFLOW_ENTRY_NAME,TURN_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME,TASK_RUN_WORKFLOW_NAME]),STABLE_ID_BASE=EVE_PACKAGE_INFO.name,log=createLogger(`execution.workflow-runtime`),workflowEntryReference={workflowId:`workflow//${STABLE_ID_BASE}//${WORKFLOW_ENTRY_NAME}`},turnWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${TURN_WORKFLOW_NAME}`},sessionTimeoutWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${SESSION_TIMEOUT_WORKFLOW_NAME}`},taskRunWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${TASK_RUN_WORKFLOW_NAME}`};function createWorkflowRuntime(e){return{async createSession(i){let a=await getCompiledRuntimeAgentBundle({compiledArtifactsSource:e.compiledArtifactsSource,nodeId:e.nodeId}),o=buildRunContext({bundle:a,dynamicSubagentAgentConfig:e.dynamicSubagentAgentConfig,run:i}),s=resolveEffectiveAgentRuntime(a,o),c=serializeContext(o),l=readParentLineage(c),u=s.limits?.sessionTimeoutMs,d={input:i.input,limits:i.limits,serializedContext:c};u!==void 0&&(d.sessionTimeoutMs=u);let f={...l.sessionId===void 0?buildSessionAttributes({inputMessage:i.title??i.input.message,serializedContext:c}):buildSubagentRootAttributes({identity:{nodeId:a.nodeId??ROOT_RUNTIME_AGENT_NODE_ID},parentCallId:l.callId,parentSessionId:l.sessionId,parentTurnId:l.turnId,rootSessionId:l.rootSessionId??l.sessionId,serializedContext:c}),...i.externalInvocation===void 0?{}:buildInvocationAttributes(i.externalInvocation)},p;try{p=await startWorkflowPreferLatest(workflowEntryReference,[d],{allowReservedAttributes:!0,attributes:normalizeEveAttributes(f)})}catch(e){throw logError(log,`failed to start workflow run`,e,{continuationToken:i.continuationToken}),e}if(i.continuationToken){let e=await waitForCommandHookOwner(i.continuationToken);if(e.runId!==p.runId)throw new RuntimeSessionOwnershipConflictError({continuationToken:i.continuationToken,ownerSessionId:e.runId,sessionId:p.runId})}await waitForOwnedCommandHook(sessionCommandHookToken(p.runId),p.runId);let m,getEvents=()=>(m??=parseNdjsonStream(()=>getRun(p.runId).getReadable()),m);return{get events(){return getEvents()},sessionId:p.runId}},async dispatchContinuation(e){return await dispatchWorkflowCommand(e.continuationToken,e.command)},async dispatchSession(e){return await dispatchWorkflowCommand(sessionCommandHookToken(e.sessionId),e.command)},async getEventStream(e,t){return parseNdjsonStream(()=>getRun(e).getReadable({startIndex:t?.startIndex}))},async getStreamTailIndex(e){let t=getRun(e).getReadable();try{return await t.getTailIndex()}finally{await t.cancel().catch(()=>{})}},async resolveContinuation(e){try{return{sessionId:(await getHookByToken(e)).runId}}catch(n){if(HookNotFoundError.is(n))return;throw logError(log,`failed to resolve session by continuation token`,n,{continuationToken:e}),n}}}}async function dispatchWorkflowCommand(e,n){let i;try{i=normalizeWorkflowHook(await resumeSessionInbox(e,n))}catch(r){if(isInactiveCommandTarget(r))return inactiveCommandResult(n);throw logError(log,`failed to dispatch session command`,r,{command:n.kind,token:e}),r}return n.kind===`reset`&&await waitForCommandHookRelease(sessionCommandHookToken(i.runId),i.runId),activeCommandResult(n,i.runId)}function activeCommandResult(e,t){return e.kind===`reset`?{previousSessionId:t,status:`reset`}:(e.kind,{sessionId:t,status:`accepted`})}function inactiveCommandResult(e){return e.kind===`send`?{status:`session_not_active`}:e.kind===`cancel`?{status:`no_active_turn`}:{status:`no_active_session`}}async function requestWorkflowTurnCancellation(e){let t={kind:`cancel`};return e.taskId!==void 0&&(t.taskId=e.taskId),e.turnId!==void 0&&(t.turnId=e.turnId),await dispatchWorkflowCommand(sessionCommandHookToken(e.sessionId),t)}function isInactiveCommandTarget(e){if(HookNotFoundError.is(e))return!0;for(let t of walkCauseChain(e))if(WorkflowRunNotFoundError.is(t)||RunExpiredError.is(t)||EntityConflictError.is(t))return!0;return!1}async function waitForOwnedCommandHook(e,t){let r=await waitForCommandHookOwner(e);if(r.runId!==t)throw new RuntimeSessionOwnershipConflictError({continuationToken:e,ownerSessionId:r.runId,sessionId:t})}async function waitForCommandHookOwner(e){let t=Date.now()+COMMAND_HOOK_READY_TIMEOUT_MS;for(;;)try{return normalizeWorkflowHook(await getHookByToken(e))}catch(e){if(!HookNotFoundError.is(e)||Date.now()>=t)throw e;await new Promise(e=>setTimeout(e,20))}}async function waitForCommandHookRelease(e,t){let n=Date.now()+COMMAND_HOOK_READY_TIMEOUT_MS;for(;;){try{if(normalizeWorkflowHook(await getHookByToken(e)).runId!==t)return}catch(e){if(HookNotFoundError.is(e))return;throw e}if(Date.now()>=n)throw Error(`Timed out waiting for session "${t}" to release its command inbox.`);await new Promise(e=>setTimeout(e,20))}}async function startWorkflowPreferLatest(e,t,n){if(!shouldRouteToLatestDeployment())return n===void 0?await start(e,t):await start(e,t,n);try{return await start(e,t,{...n,deploymentId:`latest`})}catch(r){if(!isLatestDeploymentUnsupportedError(r))throw r;return n===void 0?await start(e,t):await start(e,t,n)}}function shouldRouteToLatestDeployment(){return process.env.VERCEL_ENV===`production`||isEveDevEnvironment()}function isLatestDeploymentUnsupportedError(e){return e instanceof Error&&e.message.includes(`deploymentId 'latest' requires a World that implements resolveLatestDeploymentId()`)}function normalizeWorkflowHook(e){if(typeof e!=`object`||!e||!(`runId`in e))throw Error(`Workflow hook did not include a run id.`);let t=e.runId;if(typeof t!=`string`||t.length===0)throw Error(`Workflow hook did not include a run id.`);return{runId:t}}export{LATEST_DEPLOYMENT_UNSUPPORTED_MESSAGE,STABLE_WORKFLOW_NAMES,createWorkflowRuntime,requestWorkflowTurnCancellation,sessionTimeoutWorkflowReference,startWorkflowPreferLatest,taskRunWorkflowReference,turnWorkflowReference,waitForCommandHookOwner,workflowEntryReference};
1
+ import{createLogger,logError}from"#internal/logging.js";import{RuntimeSessionOwnershipConflictError}from"#execution/runtime-errors.js";import{sessionCommandHookToken}from"#execution/session-command-token.js";import{normalizeChannelAudience}from"#shared/channel-audience.js";import{ChannelInstrumentationKey,OtelTraceEnabledKey,SessionTraceSeedKey}from"#context/keys.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{walkCauseChain}from"#shared/errors.js";import{isEveDevEnvironment}from"#internal/application/dev-environment.js";import{serializeContext}from"#context/serialize.js";import{getHookByToken,getRun,start}from"#internal/workflow/runtime.js";import{getCompiledRuntimeAgentBundle}from"#runtime/sessions/compiled-agent-cache.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{EntityConflictError,HookNotFoundError,RunExpiredError,WorkflowRunNotFoundError}from"#compiled/@workflow/errors/index.js";import{buildSessionAttributes,buildSubagentRootAttributes,readParentLineage}from"#execution/eve-workflow-attributes.js";import{normalizeEveAttributes}from"#runtime/attributes/normalize.js";import{evaluateTracePolicy}from"#tracing/sampled-trace.js";import{getInstrumentationRuntime}from"#harness/instrumentation/runtime.js";import{resumeSessionInbox}from"#execution/wire/session-inbox-resume.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{buildRunContext}from"#execution/runtime-context.js";import{parseNdjsonStream}from"#execution/ndjson-stream.js";import{buildInvocationAttributes}from"#internal/invocation/metadata.js";const WORKFLOW_ENTRY_NAME=`workflowEntry`,TURN_WORKFLOW_NAME=`turnWorkflow`,SESSION_TIMEOUT_WORKFLOW_NAME=`sessionTimeoutWorkflow`,TASK_RUN_WORKFLOW_NAME=`taskRunWorkflow`,EVE_PACKAGE_INFO=resolveInstalledPackageInfo(),COMMAND_HOOK_READY_TIMEOUT_MS=3e4,LATEST_DEPLOYMENT_UNSUPPORTED_MESSAGE=`deploymentId 'latest' requires a World that implements resolveLatestDeploymentId()`,STABLE_WORKFLOW_NAMES=new Set([WORKFLOW_ENTRY_NAME,TURN_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME,TASK_RUN_WORKFLOW_NAME]),STABLE_ID_BASE=EVE_PACKAGE_INFO.name,log=createLogger(`execution.workflow-runtime`),workflowEntryReference={workflowId:`workflow//${STABLE_ID_BASE}//${WORKFLOW_ENTRY_NAME}`},turnWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${TURN_WORKFLOW_NAME}`},sessionTimeoutWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${SESSION_TIMEOUT_WORKFLOW_NAME}`},taskRunWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${TASK_RUN_WORKFLOW_NAME}`};function createWorkflowRuntime(e){return{async createSession(a){let o=await getCompiledRuntimeAgentBundle({compiledArtifactsSource:e.compiledArtifactsSource,nodeId:e.nodeId}),s=buildRunContext({bundle:o,dynamicSubagentAgentConfig:e.dynamicSubagentAgentConfig,run:a}),c=resolveEffectiveAgentRuntime(o,s),l=s.get(ChannelInstrumentationKey),u=allocateSessionTraceSeed({agentName:c.turnAgent.id,audience:normalizeChannelAudience(l?.metadata.audience),channelType:l?.channelType,parentTraceContext:a.parentTraceContext});u!==void 0&&s.set(SessionTraceSeedKey,u),s.set(OtelTraceEnabledKey,getInstrumentationRuntime()?.prepareSessionTrace!==void 0);let d=serializeContext(s),f=readParentLineage(d),p=c.limits?.sessionTimeoutMs,m={input:a.input,limits:a.limits,serializedContext:d};p!==void 0&&(m.sessionTimeoutMs=p);let h={...f.sessionId===void 0?buildSessionAttributes({inputMessage:a.title??a.input.message,serializedContext:d}):buildSubagentRootAttributes({identity:{nodeId:o.nodeId??ROOT_RUNTIME_AGENT_NODE_ID},parentCallId:f.callId,parentSessionId:f.sessionId,parentTurnId:f.turnId,rootSessionId:f.rootSessionId??f.sessionId,serializedContext:d}),...a.externalInvocation===void 0?{}:buildInvocationAttributes(a.externalInvocation)},g;try{g=await startWorkflowPreferLatest(workflowEntryReference,[m],{allowReservedAttributes:!0,attributes:normalizeEveAttributes(h)})}catch(e){throw logError(log,`failed to start workflow run`,e,{continuationToken:a.continuationToken}),e}if(a.continuationToken){let e=await waitForCommandHookOwner(a.continuationToken);if(e.runId!==g.runId)throw new RuntimeSessionOwnershipConflictError({continuationToken:a.continuationToken,ownerSessionId:e.runId,sessionId:g.runId})}await waitForOwnedCommandHook(sessionCommandHookToken(g.runId),g.runId);let _,getEvents=()=>(_??=parseNdjsonStream(()=>getRun(g.runId).getReadable()),_);return{get events(){return getEvents()},sessionId:g.runId}},async dispatchContinuation(e){return await dispatchWorkflowCommand(e.continuationToken,e.command)},async dispatchSession(e){return await dispatchWorkflowCommand(sessionCommandHookToken(e.sessionId),e.command)},async getEventStream(e,t){return parseNdjsonStream(()=>getRun(e).getReadable({startIndex:t?.startIndex}))},async getStreamTailIndex(e){let t=getRun(e).getReadable();try{return await t.getTailIndex()}finally{await t.cancel().catch(()=>{})}},async resolveContinuation(e){try{return{sessionId:(await getHookByToken(e)).runId}}catch(n){if(HookNotFoundError.is(n))return;throw logError(log,`failed to resolve session by continuation token`,n,{continuationToken:e}),n}}}}async function dispatchWorkflowCommand(e,n){let i;try{i=normalizeWorkflowHook(await resumeSessionInbox(e,n))}catch(r){if(isInactiveCommandTarget(r))return inactiveCommandResult(n);throw logError(log,`failed to dispatch session command`,r,{command:n.kind,token:e}),r}return n.kind===`reset`&&await waitForCommandHookRelease(sessionCommandHookToken(i.runId),i.runId),activeCommandResult(n,i.runId)}function activeCommandResult(e,t){return e.kind===`reset`?{previousSessionId:t,status:`reset`}:(e.kind,{sessionId:t,status:`accepted`})}function inactiveCommandResult(e){return e.kind===`send`?{status:`session_not_active`}:e.kind===`cancel`?{status:`no_active_turn`}:{status:`no_active_session`}}async function requestWorkflowTurnCancellation(e){let t={kind:`cancel`};return e.taskId!==void 0&&(t.taskId=e.taskId),e.turnId!==void 0&&(t.turnId=e.turnId),await dispatchWorkflowCommand(sessionCommandHookToken(e.sessionId),t)}function isInactiveCommandTarget(e){if(HookNotFoundError.is(e))return!0;for(let t of walkCauseChain(e))if(WorkflowRunNotFoundError.is(t)||RunExpiredError.is(t)||EntityConflictError.is(t))return!0;return!1}async function waitForOwnedCommandHook(e,t){let r=await waitForCommandHookOwner(e);if(r.runId!==t)throw new RuntimeSessionOwnershipConflictError({continuationToken:e,ownerSessionId:r.runId,sessionId:t})}async function waitForCommandHookOwner(e){let t=Date.now()+COMMAND_HOOK_READY_TIMEOUT_MS;for(;;)try{return normalizeWorkflowHook(await getHookByToken(e))}catch(e){if(!HookNotFoundError.is(e)||Date.now()>=t)throw e;await new Promise(e=>setTimeout(e,20))}}async function waitForCommandHookRelease(e,t){let n=Date.now()+COMMAND_HOOK_READY_TIMEOUT_MS;for(;;){try{if(normalizeWorkflowHook(await getHookByToken(e)).runId!==t)return}catch(e){if(HookNotFoundError.is(e))return;throw e}if(Date.now()>=n)throw Error(`Timed out waiting for session "${t}" to release its command inbox.`);await new Promise(e=>setTimeout(e,20))}}async function startWorkflowPreferLatest(e,t,n){if(!shouldRouteToLatestDeployment())return n===void 0?await start(e,t):await start(e,t,n);try{return await start(e,t,{...n,deploymentId:`latest`})}catch(r){if(!isLatestDeploymentUnsupportedError(r))throw r;return n===void 0?await start(e,t):await start(e,t,n)}}function shouldRouteToLatestDeployment(){return process.env.VERCEL_ENV===`production`||isEveDevEnvironment()}function isLatestDeploymentUnsupportedError(e){return e instanceof Error&&e.message.includes(`deploymentId 'latest' requires a World that implements resolveLatestDeploymentId()`)}function normalizeWorkflowHook(e){if(typeof e!=`object`||!e||!(`runId`in e))throw Error(`Workflow hook did not include a run id.`);let t=e.runId;if(typeof t!=`string`||t.length===0)throw Error(`Workflow hook did not include a run id.`);return{runId:t}}function allocateSessionTraceSeed(e){if(e.parentTraceContext!==void 0)return{spanId:e.parentTraceContext.spanId,traceFlags:e.parentTraceContext.traceFlags,traceId:e.parentTraceContext.traceId};let t=getInstrumentationRuntime();if(t?.prepareSessionTrace===void 0||t.idGenerator===void 0)return;let n=evaluateTracePolicy(t.otelSettings?.tracePolicy,{agentName:e.agentName,audience:e.audience,channelType:e.channelType});return{spanId:t.idGenerator.allocateSpanId(),traceFlags:+!!n,traceId:t.idGenerator.generateTraceId()}}export{LATEST_DEPLOYMENT_UNSUPPORTED_MESSAGE,STABLE_WORKFLOW_NAMES,createWorkflowRuntime,requestWorkflowTurnCancellation,sessionTimeoutWorkflowReference,startWorkflowPreferLatest,taskRunWorkflowReference,turnWorkflowReference,waitForCommandHookOwner,workflowEntryReference};
@@ -1 +1 @@
1
- import{callAdapterEventHandler,defaultDeliverResult}from"#channel/adapter.js";import{AuthKey,CapabilitiesKey,HandleEventKey,ModeKey,SessionDynamicSubagentRuntimeRevisionKey,SessionDynamicToolRuntimeRevisionKey,TasksEnabledKey,TurnTaskDeliveryKey,TurnTaskStateKey}from"#context/keys.js";import{createAuthorizationCompletedEvent,createSessionStartedEvent,encodeMessageStreamEvent,stampMessageStreamEvent}from"#protocol/message.js";import{contextStorage}from"#context/container.js";import{BundleKey,ChannelKey}from"#runtime/sessions/runtime-context-keys.js";import{emitTurnPreamble,getHarnessEmissionState,isHarnessBetweenTurns,setHarnessEmissionState}from"#harness/emission.js";import{createWorkflowRuntime}from"#execution/workflow-runtime.js";import{resolveWorkflowCallbackBaseUrl}from"#execution/workflow-callback-url.js";import{deserializeContext,serializeContext}from"#context/serialize.js";import{createDurableSessionState,readDurableSession}from"#execution/durable-session-store.js";import{dispatchDynamicSubagentEvent,refreshDynamicSessionSubagentsForRuntimeRevision}from"#context/dynamic-subagent-lifecycle.js";import{hydrateDurableSession,refreshSessionFromTurnAgent}from"#execution/session.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{TASK_UPDATE_SESSION_INSTRUCTION,isTaskOwnedSerializedContext}from"#execution/tasks/child/instructions.js";import{TASK_UPDATE_TOOL_NAME,isTaskToolAvailable}from"#runtime/framework-tools/tasks.js";import{coalesceTurnInputs,normalizeUserContent}from"#harness/messages.js";import{buildAdapterContext}from"#channel/adapter-context.js";import{preserveSerializedAgentTraceState}from"#tracing/agent-trace-context-store.js";import{getPendingWorkflowInterrupt}from"#harness/workflow-interrupt-state.js";import{getRuntimeActionKeysFromWorkflowInterrupt,isWorkflowRuntimeActionInterrupt}from"#harness/workflow-runtime-action-state.js";import{dispatchDynamicModelEvent}from"#context/dynamic-model-lifecycle.js";import{getInstrumentationRuntime}from"#harness/instrumentation/runtime.js";import{CallbackBaseUrlKey,PendingAuthorizationResultKey,clearPendingAuthorization,getPendingAuthorization}from"#harness/authorization.js";import{hasPendingInputBatch}from"#harness/input-requests.js";import{setChannelContext}from"#execution/channel-context.js";import{dispatchStreamEventHooks}from"#context/hook-lifecycle.js";import{reconcileSessionContinuationToken}from"#execution/reconcile-session-continuation-token.js";import{activeTurnId}from"#harness/active-turn-id.js";import{getTurnUsageState,takeSessionUsageDelta,toUsage}from"#harness/turn-tag-state.js";import{isTurnCancellation,throwIfTurnAborted}from"#harness/turn-cancellation.js";import{preserveSerializedSessionDynamicModelSelection}from"#context/serialized-dynamic-model-selection.js";import{dispatchDynamicInstructionEvent,drainDynamicInstructionUserMessages,prepareDynamicInstructionPreamble}from"#context/dynamic-instruction-lifecycle.js";import{dispatchDynamicSkillEvent}from"#context/dynamic-skill-lifecycle.js";import{dispatchDynamicToolEvent,refreshDynamicSessionToolsForRuntimeRevision}from"#context/dynamic-tool-lifecycle.js";import{channelDeliveryErrorCode,instrumentChannelDelivery}from"#harness/channel-delivery-instrumentation.js";import{preserveSerializedInstrumentationState}from"#harness/instrumentation/state.js";import{RuntimeActionSettlementTimesKey}from"#harness/runtime-action-settlement-state.js";import{matchAuthorizationCallbacks}from"#execution/authorization-callback-match.js";import{readTurnSleepDurationMs}from"#harness/turn-sleep.js";import{derivePendingState}from"#execution/pending-turn-state.js";import{forwardTaskEventToSessionCallback}from"#execution/task-event-callback.js";import{resolveEffectiveOutputSchema}from"#execution/effective-output-schema.js";import{buildRuntimeIdentity,createExecutionNodeStep}from"#execution/node-step.js";import{appendTaskAgentAnnouncement}from"#execution/tasks/parent/agent-views.js";import{resolveInitiatingTaskContext,resolveTaskDeliveryContext}from"#tasks/delivery-context.js";import{readRetainedBackgroundToolResult,runBackgroundStep}from"#execution/tasks/parent/tool-execution.js";import{prepareWorkflowPreambleTrace}from"#execution/workflow-trace-context.js";import{recordSubagentUsageSpans}from"#execution/subagent-usage-span.js";import{createExecutionHistoryView}from"#execution/history-view.js";import{resolveRuntimeCompiledArtifactsVersionedCacheKey}from"#runtime/cache-key.js";import{stageAttachmentsToSandbox}from"#harness/attachment-staging.js";async function turnStep(a){"use step";let o=a,s=await readDurableSession(o.sessionState),c=await deserializeContext(o.serializedContext);a.input?.kind===`deliver`&&(c.set(TurnTaskDeliveryKey,`none`),c.delete(TurnTaskStateKey));let l=c.require(ChannelKey),u=c.require(BundleKey),d=u.resolvedAgent.config?.experimental?.tasks===!0;c.set(TasksEnabledKey,d);let f=resolveEffectiveAgentRuntime(u,c),p=isTaskOwnedSerializedContext(o.serializedContext)&&isTaskToolAvailable({disabledFrameworkTools:u.resolvedAgent.disabledFrameworkTools??[],hasAuthoredTool:f.turnAgent.tools.some(e=>e.name===TASK_UPDATE_TOOL_NAME),tasksEnabled:d,toolName:TASK_UPDATE_TOOL_NAME});try{let{getWorkflowMetadata:e}=await import(`#compiled/@workflow/core/index.js`),t=e();typeof t.url==`string`&&c.set(CallbackBaseUrlKey,resolveWorkflowCallbackBaseUrl(t.url))}catch{}let m=getPendingAuthorization(s.state),h;if(m&&o.input?.kind===`deliver`){let{matches:e,remainingPayloads:t}=matchAuthorizationCallbacks(m,o.input.payloads);if(o={...o,input:{...o.input,payloads:t}},e.length>0){let n=e.map(e=>e.result);c.set(PendingAuthorizationResultKey,n),s={...s,state:clearPendingAuthorization(s.state,n.map(e=>e.attemptId??e.name))},h=e,t.length===0&&(o={...o,input:void 0})}}o.input?.kind===`deliver`&&o.input.auth!==void 0&&c.set(AuthKey,o.input.auth??null);let g=hydrateDurableSession({compactionOverrides:{thresholdPercent:f.thresholdPercent},durable:s,turnAgent:f.turnAgent}),_=createExecutionHistoryView(g),v=getInstrumentationRuntime(),y=getHarnessEmissionState(g.state);a.input?.kind===`deliver`&&await contextStorage.run(c,()=>instrumentChannelDelivery({agentName:u.turnAgent.id,ctx:c,delivery:a.input,hooks:v?.hooks,rootSessionId:g.rootSessionId??g.sessionId,sequence:y.sequence,sessionId:g.sessionId,turnId:activeTurnId(y)}));let failChannelDeliveries=async e=>{await contextStorage.run(c,()=>instrumentChannelDelivery({ctx:c,error:e,errorCode:channelDeliveryErrorCode(e),hooks:v?.hooks,includeTurn:!1,outcome:`failed`})),await v?.forceFlush()},b=buildAdapterContext(l,c),x;if(o.input?.kind===`deliver`){let e=[];try{for(let n of o.input.payloads){let r=l.deliver?await l.deliver(n,b):defaultDeliverResult(n);r!=null&&e.push(r)}}catch(e){throw await failChannelDeliveries(e),e}x=e.length===0?void 0:e.reduce(coalesceTurnInputs)}else o.input?.kind===`runtime-action-result`&&(recordSubagentUsageSpans(o.input.results),o.input.acceptedAtMsByCallId!==void 0&&c.set(RuntimeActionSettlementTimesKey,o.input.acceptedAtMsByCallId),x={runtimeActionResults:o.input.results});if(x!==void 0&&a.input?.kind===`deliver`&&a.input.taskDeliveryId!==void 0){let e=resolveTaskDeliveryContext({state:s.state,taskDeliveryId:a.input.taskDeliveryId});e!==void 0&&(c.set(TurnTaskDeliveryKey,e.phase),x={...x,context:[...x.context??[],e.context]})}if(d&&c.get(TurnTaskDeliveryKey)===`none`){let e=resolveInitiatingTaskContext({state:s.state,turnId:activeTurnId(y)});e!==void 0&&(c.set(TurnTaskDeliveryKey,e.phase),c.set(TurnTaskStateKey,e.context))}if(o.input?.kind===`deliver`&&setChannelContext(c,{...l,state:{...b.state}}),o.input?.kind===`deliver`&&x===void 0){await contextStorage.run(c,()=>instrumentChannelDelivery({ctx:c,hooks:v?.hooks,includeTurn:!1,outcome:`completed`})),await v?.forceFlush();let e=reconcileSessionContinuationToken(c,g),t=serializeContext(c),n=e===g?o.sessionState:createDurableSessionState({session:e});return{action:`park`,...derivePendingState(e),serializedContext:t,sessionState:n,tasksEnabled:d}}let S=u.hookRegistry,C=u.resolvedAgent.dynamicInstructionsResolvers??[],w=u.resolvedAgent.dynamicSkillResolvers??[],T=u.subagentRegistry.dynamicResolvers??[],E=d||u.resolvedAgent.config?.experimental?.subagentPersistentSessions===!0,D=u.resolvedAgent.dynamicToolResolvers??[],O={...u.graph.root,turnAgent:f.turnAgent},k=buildRuntimeIdentity(O);try{let e=process.env.VERCEL_DEPLOYMENT_ID?.trim(),t=e?`deployment:${e}`:await resolveRuntimeCompiledArtifactsVersionedCacheKey(u.compiledArtifactsSource);if(!y.sessionStarted)c.set(SessionDynamicSubagentRuntimeRevisionKey,t),c.set(SessionDynamicToolRuntimeRevisionKey,t);else{let e=createSessionStartedEvent({runtime:k});await Promise.all([refreshDynamicSessionSubagentsForRuntimeRevision({ctx:c,resolvers:T,event:e,messages:_.initial.messages,persistentSessions:E,runtimeRevision:t}),refreshDynamicSessionToolsForRuntimeRevision({ctx:c,resolvers:D,event:e,messages:_.initial.messages,runtimeRevision:t})])}}catch(e){throw await failChannelDeliveries(e),e}let A=o.parentWritable.getWriter(),emit=async t=>{let n=await callAdapterEventHandler(l,t,b);setChannelContext(c,{...l,state:{...b.state}});let r=stampMessageStreamEvent(n);return await A.write(encodeMessageStreamEvent(r)),r},handleEvent=async(e,t)=>{let n=await forwardTaskEventToSessionCallback(c,e)?stampMessageStreamEvent(e):await emit(e);await dispatchStreamEventHooks({ctx:c,registry:S,event:n}),n.type!==`step.started`&&await dispatchDynamicModelEvent({ctx:c,dynamicModel:f.turnAgent.dynamicModel,event:n,messages:t??[],scope:{moduleMap:u.moduleMap,nodeId:u.nodeId}}),await dispatchDynamicSubagentEvent({ctx:c,resolvers:T,event:n,messages:t??[],persistentSessions:E}),await dispatchDynamicToolEvent({ctx:c,resolvers:D,event:n,messages:t??[]}),await dispatchDynamicSkillEvent({ctx:c,resolvers:w,event:n,messages:t??[]}),await dispatchDynamicInstructionEvent({ctx:c,resolvers:C,event:n,messages:t??[]})},j=c.require(ModeKey),M;try{throwIfTurnAborted(o.abortSignal),M=await runBackgroundStep(c,g,async e=>{c.setVirtualContext(HandleEventKey,handleEvent);let t=resolveEffectiveOutputSchema({agentOutputSchema:f.turnAgent.outputSchema,input:x,mode:j,session:e});if(h){let e=getHarnessEmissionState(t.state);if(isHarnessBetweenTurns(t)){prepareDynamicInstructionPreamble(c,_.messages(t));let n=[],r=await prepareWorkflowPreambleTrace({ctx:c,emissionState:e,runtimeIdentity:k,session:t});try{e=await emitTurnPreamble(handleEvent,{},e,k,r)}finally{n=drainDynamicInstructionUserMessages(c),t={...t,history:[...t.history,...n]}}t=setHarnessEmissionState(t,e)}for(let{authorization:t,result:n}of h){let r=m?.challenges.find(e=>e.attemptId===n.attemptId)?.candidateId;await handleEvent(createAuthorizationCompletedEvent({attemptId:n.attemptId,authorization:t,candidateId:r,name:n.name,outcome:`authorized`,sequence:e.sequence,stepIndex:e.stepIndex,turnId:e.turnId}))}}let n=c.get(CapabilitiesKey);return(async(e,t)=>{let r=refreshSessionFromTurnAgent({compactionOverrides:{thresholdPercent:f.thresholdPercent},session:e,systemPromptAdditions:p?[TASK_UPDATE_SESSION_INSTRUCTION]:void 0,turnAgent:f.turnAgent}),i=d?await appendTaskAgentAnnouncement(r,_.messages(r)):r;return createExecutionNodeStep({abortSignal:o.abortSignal,capabilities:n,clearOnly:o.input?.kind===`clear`,compactOnly:o.input?.kind===`compact`,createRuntime:createWorkflowRuntime,handleEvent,historyProjector:_.projector,historyView:_.prepare(i),mode:j,modelResolutionScope:{moduleMap:u.moduleMap,nodeId:u.nodeId},node:O,workflowMaxSubagents:r.workflowMaxSubagents})(i,t)})(t,x)})}catch(e){if(!isTurnCancellation(e))throw await failChannelDeliveries(e),e;A.releaseLock();let t=serializeContext(c),n=readRetainedBackgroundToolResult(c),r=await preserveCancelledTurnMessage(n?.backgroundTaskSession??g,x);return{action:`cancelled`,...n===void 0?{}:{backgroundTaskState:createDurableSessionState({session:r}),backgroundTasks:n.backgroundTasks},serializedContext:preserveSerializedInstrumentationState(preserveSerializedAgentTraceState(preserveSerializedSessionDynamicModelSelection(o.serializedContext,t),t),t),sessionState:createDurableSessionState({session:r})}}let N=reconcileSessionContinuationToken(c,M.session),P=serializeContext(c);M={...M,session:N};let F=createDurableSessionState({session:M.session}),I=readTurnSleepDurationMs(c),L=I===void 0?{}:{sleepDurationMs:I},R=M.backgroundTasks===void 0||M.backgroundTaskSession===void 0?{}:{backgroundTaskState:createDurableSessionState({session:M.backgroundTaskSession}),backgroundTasks:M.backgroundTasks};if(M.next!==null&&typeof M.next==`object`&&`done`in M.next){if(j===`task`&&hasPendingInputBatch(M.session.state))throw A.releaseLock(),Error(`Task mode cannot complete while input requests remain pending.`);await A.close();let e=getTurnUsageState(M.session.state)?.session;return{action:`done`,...R,output:M.next.output,isError:M.next.isError,...L,serializedContext:P,sessionState:F,usage:e===void 0?void 0:toUsage(e),usageDelta:takeSessionUsageDelta(M.session).delta}}if(M.next===null){A.releaseLock();let e=getPendingWorkflowInterrupt(M.session.state);if(e!==void 0&&isWorkflowRuntimeActionInterrupt(e.interrupt))return{action:`dispatch-workflow-runtime-actions`,...R,pendingRuntimeActionKeys:getRuntimeActionKeysFromWorkflowInterrupt(e.interrupt),...L,serializedContext:P,sessionState:F};let t=derivePendingState(M.session);if(M.settledTurn!==void 0){let{delta:e,session:n}=takeSessionUsageDelta(M.session);return{action:`park`,...R,...t,...L,serializedContext:P,sessionState:createDurableSessionState({session:n}),settled:{output:M.settledTurn.output,isError:M.settledTurn.isError,usage:e},tasksEnabled:d}}return{action:`park`,...R,...t,...L,serializedContext:P,sessionState:F,tasksEnabled:d}}return A.releaseLock(),{action:`continue`,...R,...L,serializedContext:P,sessionState:F}}async function preserveCancelledTurnMessage(e,t){let n=normalizeUserContent(t?.message);if(n===void 0)return e;let r=await stageAttachmentsToSandbox(n);return{...e,history:[...e.history,{content:r,role:`user`}]}}export{turnStep};
1
+ import{callAdapterEventHandler,defaultDeliverResult}from"#channel/adapter.js";import{AuthKey,CapabilitiesKey,HandleEventKey,ModeKey,SessionDynamicSubagentRuntimeRevisionKey,SessionDynamicToolRuntimeRevisionKey,TasksEnabledKey,TurnTaskDeliveryKey,TurnTaskStateKey}from"#context/keys.js";import{createAuthorizationCompletedEvent,createSessionStartedEvent,encodeMessageStreamEvent,stampMessageStreamEvent}from"#protocol/message.js";import{contextStorage}from"#context/container.js";import{BundleKey,ChannelKey}from"#runtime/sessions/runtime-context-keys.js";import{emitTurnPreamble,getHarnessEmissionState,isHarnessBetweenTurns,setHarnessEmissionState}from"#harness/emission.js";import{createWorkflowRuntime}from"#execution/workflow-runtime.js";import{resolveWorkflowCallbackBaseUrl}from"#execution/workflow-callback-url.js";import{deserializeContext,serializeContext}from"#context/serialize.js";import{createDurableSessionState,readDurableSession}from"#execution/durable-session-store.js";import{dispatchDynamicSubagentEvent,refreshDynamicSessionSubagentsForRuntimeRevision}from"#context/dynamic-subagent-lifecycle.js";import{hydrateDurableSession,refreshSessionFromTurnAgent}from"#execution/session.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{TASK_UPDATE_SESSION_INSTRUCTION,isTaskOwnedSerializedContext}from"#execution/tasks/child/instructions.js";import{TASK_UPDATE_TOOL_NAME}from"#tools/framework/task-contract.js";import{coalesceTurnInputs,normalizeUserContent}from"#harness/messages.js";import{buildAdapterContext}from"#channel/adapter-context.js";import{preserveSerializedAgentTraceState}from"#tracing/agent-trace-context-store.js";import{getPendingWorkflowInterrupt}from"#harness/workflow-interrupt-state.js";import{getRuntimeActionKeysFromWorkflowInterrupt,isWorkflowRuntimeActionInterrupt}from"#harness/workflow-runtime-action-state.js";import{dispatchDynamicModelEvent}from"#context/dynamic-model-lifecycle.js";import{getInstrumentationRuntime}from"#harness/instrumentation/runtime.js";import{CallbackBaseUrlKey,PendingAuthorizationResultKey,clearPendingAuthorization,getPendingAuthorization}from"#harness/authorization.js";import{hasPendingInputBatch}from"#harness/input-requests.js";import{setChannelContext}from"#execution/channel-context.js";import{dispatchStreamEventHooks}from"#context/hook-lifecycle.js";import{reconcileSessionContinuationToken}from"#execution/reconcile-session-continuation-token.js";import{activeTurnId}from"#harness/active-turn-id.js";import{getTurnUsageState,takeSessionUsageDelta,toUsage}from"#harness/turn-tag-state.js";import{isTurnCancellation,throwIfTurnAborted}from"#harness/turn-cancellation.js";import{readTurnSleepDurationMs}from"#harness/turn-sleep.js";import{preserveSerializedSessionDynamicModelSelection}from"#context/serialized-dynamic-model-selection.js";import{dispatchDynamicInstructionEvent,drainDynamicInstructionUserMessages,prepareDynamicInstructionPreamble}from"#context/dynamic-instruction-lifecycle.js";import{dispatchDynamicSkillEvent}from"#context/dynamic-skill-lifecycle.js";import{dispatchDynamicToolEvent,refreshDynamicSessionToolsForRuntimeRevision}from"#context/dynamic-tool-lifecycle.js";import{channelDeliveryErrorCode,instrumentChannelDelivery}from"#harness/channel-delivery-instrumentation.js";import{preserveSerializedInstrumentationState}from"#harness/instrumentation/state.js";import{RuntimeActionSettlementTimesKey}from"#harness/runtime-action-settlement-state.js";import{matchAuthorizationCallbacks}from"#execution/authorization-callback-match.js";import{derivePendingState}from"#execution/pending-turn-state.js";import{forwardTaskEventToSessionCallback}from"#execution/task-event-callback.js";import{resolveEffectiveOutputSchema}from"#execution/effective-output-schema.js";import{buildRuntimeIdentity,createExecutionNodeStep}from"#execution/node-step.js";import{appendTaskAgentAnnouncement}from"#execution/tasks/parent/agent-views.js";import{resolveInitiatingTaskContext,resolveTaskDeliveryContext}from"#tasks/delivery-context.js";import{readRetainedBackgroundToolResult,runBackgroundStep}from"#execution/tasks/parent/tool-execution.js";import{prepareWorkflowPreambleTrace}from"#execution/workflow-trace-context.js";import{recordSubagentUsageSpans}from"#execution/subagent-usage-span.js";import{createExecutionHistoryView}from"#execution/history-view.js";import{resolveRuntimeCompiledArtifactsVersionedCacheKey}from"#runtime/cache-key.js";import{stageAttachmentsToSandbox}from"#harness/attachment-staging.js";async function turnStep(a){"use step";let o=a,s=await readDurableSession(o.sessionState),c=await deserializeContext(o.serializedContext);a.input?.kind===`deliver`&&(c.set(TurnTaskDeliveryKey,`none`),c.delete(TurnTaskStateKey));let l=c.require(ChannelKey),u=c.require(BundleKey),d=u.resolvedAgent.config?.experimental?.tasks===!0;c.set(TasksEnabledKey,d);let f=resolveEffectiveAgentRuntime(u,c),p=isTaskOwnedSerializedContext(o.serializedContext)&&d&&f.turnAgent.tools.some(e=>e.kind===`authored-tool`&&e.owner.kind===`framework`&&e.name===TASK_UPDATE_TOOL_NAME);try{let{getWorkflowMetadata:e}=await import(`#compiled/@workflow/core/index.js`),t=e();typeof t.url==`string`&&c.set(CallbackBaseUrlKey,resolveWorkflowCallbackBaseUrl(t.url))}catch{}let m=getPendingAuthorization(s.state),h;if(m&&o.input?.kind===`deliver`){let{matches:e,remainingPayloads:t}=matchAuthorizationCallbacks(m,o.input.payloads);if(o={...o,input:{...o.input,payloads:t}},e.length>0){let n=e.map(e=>e.result);c.set(PendingAuthorizationResultKey,n),s={...s,state:clearPendingAuthorization(s.state,n.map(e=>e.attemptId??e.name))},h=e,t.length===0&&(o={...o,input:void 0})}}o.input?.kind===`deliver`&&o.input.auth!==void 0&&c.set(AuthKey,o.input.auth??null);let g=hydrateDurableSession({compactionOverrides:{thresholdPercent:f.thresholdPercent},durable:s,turnAgent:f.turnAgent}),_=createExecutionHistoryView(g),v=getInstrumentationRuntime(),y=getHarnessEmissionState(g.state);a.input?.kind===`deliver`&&await contextStorage.run(c,()=>instrumentChannelDelivery({agentName:u.turnAgent.id,ctx:c,delivery:a.input,hooks:v?.hooks,rootSessionId:g.rootSessionId??g.sessionId,sequence:y.sequence,sessionId:g.sessionId,turnId:activeTurnId(y)}));let failChannelDeliveries=async e=>{await contextStorage.run(c,()=>instrumentChannelDelivery({ctx:c,error:e,errorCode:channelDeliveryErrorCode(e),hooks:v?.hooks,includeTurn:!1,outcome:`failed`})),await v?.forceFlush()},b=buildAdapterContext(l,c),x;if(o.input?.kind===`deliver`){let e=[];try{for(let n of o.input.payloads){let r=l.deliver?await l.deliver(n,b):defaultDeliverResult(n);r!=null&&e.push(r)}}catch(e){throw await failChannelDeliveries(e),e}x=e.length===0?void 0:e.reduce(coalesceTurnInputs)}else o.input?.kind===`runtime-action-result`&&(recordSubagentUsageSpans(o.input.results),o.input.acceptedAtMsByCallId!==void 0&&c.set(RuntimeActionSettlementTimesKey,o.input.acceptedAtMsByCallId),x={runtimeActionResults:o.input.results});if(x!==void 0&&a.input?.kind===`deliver`&&a.input.taskDeliveryId!==void 0){let e=resolveTaskDeliveryContext({state:s.state,taskDeliveryId:a.input.taskDeliveryId});e!==void 0&&(c.set(TurnTaskDeliveryKey,e.phase),x={...x,context:[...x.context??[],e.context]})}if(d&&c.get(TurnTaskDeliveryKey)===`none`){let e=resolveInitiatingTaskContext({state:s.state,turnId:activeTurnId(y)});e!==void 0&&(c.set(TurnTaskDeliveryKey,e.phase),c.set(TurnTaskStateKey,e.context))}if(o.input?.kind===`deliver`&&setChannelContext(c,{...l,state:{...b.state}}),o.input?.kind===`deliver`&&x===void 0){await contextStorage.run(c,()=>instrumentChannelDelivery({ctx:c,hooks:v?.hooks,includeTurn:!1,outcome:`completed`})),await v?.forceFlush();let e=reconcileSessionContinuationToken(c,g),t=serializeContext(c),n=e===g?o.sessionState:createDurableSessionState({session:e});return{action:`park`,...derivePendingState(e),serializedContext:t,sessionState:n,tasksEnabled:d}}let S=u.hookRegistry,C=u.resolvedAgent.dynamicInstructionsResolvers??[],w=u.resolvedAgent.dynamicSkillResolvers??[],T=u.subagentRegistry.dynamicResolvers??[],E=u.resolvedAgent.dynamicToolResolvers??[],D={...u.graph.root,turnAgent:f.turnAgent},O=buildRuntimeIdentity(D);try{let e=process.env.VERCEL_DEPLOYMENT_ID?.trim(),t=e?`deployment:${e}`:await resolveRuntimeCompiledArtifactsVersionedCacheKey(u.compiledArtifactsSource);if(!y.sessionStarted)c.set(SessionDynamicSubagentRuntimeRevisionKey,t),c.set(SessionDynamicToolRuntimeRevisionKey,t);else{let e=createSessionStartedEvent({runtime:O});await Promise.all([refreshDynamicSessionSubagentsForRuntimeRevision({ctx:c,resolvers:T,event:e,messages:_.initial.messages,runtimeRevision:t}),refreshDynamicSessionToolsForRuntimeRevision({ctx:c,resolvers:E,event:e,messages:_.initial.messages,runtimeRevision:t})])}}catch(e){throw await failChannelDeliveries(e),e}let k=o.parentWritable.getWriter(),emit=async t=>{let n=await callAdapterEventHandler(l,t,b);setChannelContext(c,{...l,state:{...b.state}});let r=stampMessageStreamEvent(n);return await k.write(encodeMessageStreamEvent(r)),r},handleEvent=async(e,t)=>{let n=await forwardTaskEventToSessionCallback(c,e)?stampMessageStreamEvent(e):await emit(e);await dispatchStreamEventHooks({ctx:c,registry:S,event:n}),n.type!==`step.started`&&await dispatchDynamicModelEvent({ctx:c,dynamicModel:f.turnAgent.dynamicModel,event:n,messages:t??[],scope:{moduleMap:u.moduleMap,nodeId:u.nodeId}}),await dispatchDynamicSubagentEvent({ctx:c,resolvers:T,event:n,messages:t??[]}),await dispatchDynamicToolEvent({ctx:c,resolvers:E,event:n,messages:t??[]}),await dispatchDynamicSkillEvent({ctx:c,resolvers:w,event:n,messages:t??[]}),await dispatchDynamicInstructionEvent({ctx:c,resolvers:C,event:n,messages:t??[]})},A=c.require(ModeKey),j;try{throwIfTurnAborted(o.abortSignal),j=await runBackgroundStep(c,g,async e=>{c.setVirtualContext(HandleEventKey,handleEvent);let t=resolveEffectiveOutputSchema({agentOutputSchema:f.turnAgent.outputSchema,input:x,mode:A,session:e});if(h){let e=getHarnessEmissionState(t.state);if(isHarnessBetweenTurns(t)){prepareDynamicInstructionPreamble(c,_.messages(t));let n=[],r=await prepareWorkflowPreambleTrace({ctx:c,emissionState:e,runtimeIdentity:O,session:t});try{e=await emitTurnPreamble(handleEvent,{},e,O,r)}finally{n=drainDynamicInstructionUserMessages(c),t={...t,history:[...t.history,...n]}}t=setHarnessEmissionState(t,e)}for(let{authorization:t,result:n}of h){let r=m?.challenges.find(e=>e.attemptId===n.attemptId)?.candidateId;await handleEvent(createAuthorizationCompletedEvent({attemptId:n.attemptId,authorization:t,candidateId:r,name:n.name,outcome:`authorized`,sequence:e.sequence,stepIndex:e.stepIndex,turnId:e.turnId}))}}let n=c.get(CapabilitiesKey);return(async(e,t)=>{let r=refreshSessionFromTurnAgent({compactionOverrides:{thresholdPercent:f.thresholdPercent},session:e,systemPromptAdditions:p?[TASK_UPDATE_SESSION_INSTRUCTION]:void 0,turnAgent:f.turnAgent}),i=d?await appendTaskAgentAnnouncement(r,_.messages(r)):r;return createExecutionNodeStep({abortSignal:o.abortSignal,capabilities:n,clearOnly:o.input?.kind===`clear`,compactOnly:o.input?.kind===`compact`,createRuntime:createWorkflowRuntime,handleEvent,historyProjector:_.projector,historyView:_.prepare(i),mode:A,modelResolutionScope:{moduleMap:u.moduleMap,nodeId:u.nodeId},node:D,workflowMaxSubagents:r.workflowMaxSubagents})(i,t)})(t,x)})}catch(e){if(!isTurnCancellation(e))throw await failChannelDeliveries(e),e;k.releaseLock();let t=serializeContext(c),n=readRetainedBackgroundToolResult(c),r=await preserveCancelledTurnMessage(n?.backgroundTaskSession??g,x);return{action:`cancelled`,...n===void 0?{}:{backgroundTaskState:createDurableSessionState({session:r}),backgroundTasks:n.backgroundTasks},serializedContext:preserveSerializedInstrumentationState(preserveSerializedAgentTraceState(preserveSerializedSessionDynamicModelSelection(o.serializedContext,t),t),t),sessionState:createDurableSessionState({session:r})}}let M=reconcileSessionContinuationToken(c,j.session),N=serializeContext(c);j={...j,session:M};let P=createDurableSessionState({session:j.session}),F=readTurnSleepDurationMs(c),I=F===void 0?{}:{sleepDurationMs:F},L=j.backgroundTasks===void 0||j.backgroundTaskSession===void 0?{}:{backgroundTaskState:createDurableSessionState({session:j.backgroundTaskSession}),backgroundTasks:j.backgroundTasks};if(j.next!==null&&typeof j.next==`object`&&`done`in j.next){if(A===`task`&&hasPendingInputBatch(j.session.state))throw k.releaseLock(),Error(`Task mode cannot complete while input requests remain pending.`);await k.close();let e=getTurnUsageState(j.session.state)?.session;return{action:`done`,...L,output:j.next.output,isError:j.next.isError,...I,serializedContext:N,sessionState:P,usage:e===void 0?void 0:toUsage(e),usageDelta:takeSessionUsageDelta(j.session).delta}}if(j.next===null){k.releaseLock();let e=getPendingWorkflowInterrupt(j.session.state);if(e!==void 0&&isWorkflowRuntimeActionInterrupt(e.interrupt))return{action:`dispatch-workflow-runtime-actions`,...L,pendingRuntimeActionKeys:getRuntimeActionKeysFromWorkflowInterrupt(e.interrupt),...I,serializedContext:N,sessionState:P};let t=derivePendingState(j.session);if(j.settledTurn!==void 0){let{delta:e,session:n}=takeSessionUsageDelta(j.session);return{action:`park`,...L,...t,...I,serializedContext:N,sessionState:createDurableSessionState({session:n}),settled:{output:j.settledTurn.output,isError:j.settledTurn.isError,usage:e},tasksEnabled:d}}return{action:`park`,...L,...t,...I,serializedContext:N,sessionState:P,tasksEnabled:d}}return k.releaseLock(),{action:`continue`,...L,...I,serializedContext:N,sessionState:P}}async function preserveCancelledTurnMessage(e,t){let n=normalizeUserContent(t?.message);if(n===void 0)return e;let r=await stageAttachmentsToSandbox(n);return{...e,history:[...e.history,{content:r,role:`user`}]}}export{turnStep};
@@ -1 +1 @@
1
- import{normalizeChannelAudience}from"#shared/channel-audience.js";import{ChannelInstrumentationKey,ParentSessionKey,ParentTraceContextKey}from"#context/keys.js";import{ChannelKey}from"#runtime/sessions/runtime-context-keys.js";import{getInstrumentationRuntime}from"#harness/instrumentation/runtime.js";import{resolveParentLineage}from"#harness/parent-lineage.js";import{prepareTurnTraceContext}from"#harness/prepare-trace-context.js";async function prepareWorkflowPreambleTrace(e){let t=e.ctx.get(ParentSessionKey),n=e.ctx.get(ChannelInstrumentationKey);return await prepareTurnTraceContext({agentName:e.runtimeIdentity.agentName,channelAudience:normalizeChannelAudience(n?.metadata.audience),instrumentation:getInstrumentationRuntime(),parentLineage:resolveParentLineage(t,e.ctx.get(ChannelKey)),parentTraceContext:e.ctx.get(ParentTraceContextKey),rootSessionId:t?.rootSessionId??e.session.rootSessionId??e.session.sessionId,sequence:e.emissionState.sequence,sessionId:e.session.sessionId,sessionStarted:e.emissionState.sessionStarted,turnId:`turn_${e.emissionState.sequence}`})}export{prepareWorkflowPreambleTrace};
1
+ import{normalizeChannelAudience}from"#shared/channel-audience.js";import{ChannelInstrumentationKey,ParentSessionKey,ParentTraceContextKey,SessionTraceSeedKey}from"#context/keys.js";import{ChannelKey}from"#runtime/sessions/runtime-context-keys.js";import{getInstrumentationRuntime}from"#harness/instrumentation/runtime.js";import{resolveParentLineage}from"#harness/parent-lineage.js";import{prepareTurnTraceContext}from"#harness/prepare-trace-context.js";async function prepareWorkflowPreambleTrace(e){let t=e.ctx.get(ParentSessionKey),n=e.ctx.get(ChannelInstrumentationKey);return await prepareTurnTraceContext({agentName:e.runtimeIdentity.agentName,channelAudience:normalizeChannelAudience(n?.metadata.audience),channelType:n?.channelType,instrumentation:getInstrumentationRuntime(),parentLineage:resolveParentLineage(t,e.ctx.get(ChannelKey)),parentTraceContext:e.ctx.get(ParentTraceContextKey),rootSessionId:t?.rootSessionId??e.session.rootSessionId??e.session.sessionId,sequence:e.emissionState.sequence,sessionId:e.session.sessionId,sessionStarted:e.emissionState.sessionStarted,traceSeed:e.ctx.get(SessionTraceSeedKey),turnId:`turn_${e.emissionState.sequence}`})}export{prepareWorkflowPreambleTrace};
@@ -0,0 +1,8 @@
1
+ export type HostHttpMethod = "ALL" | "GET" | "POST";
2
+ export interface HostHttpRegistration {
3
+ readonly capability: "workflow" | "development" | "schedule";
4
+ readonly method: HostHttpMethod;
5
+ readonly path: string;
6
+ readonly reservationOnly?: boolean;
7
+ }
8
+ export declare const HOST_HTTP_INVENTORY: readonly HostHttpRegistration[];
@@ -0,0 +1 @@
1
+ import{EVE_DEV_DISPATCH_SCHEDULE_ROUTE_PATTERN,EVE_DEV_RUNTIME_ARTIFACTS_REBUILD_ROUTE_PATH,EVE_DEV_RUNTIME_ARTIFACTS_RESUME_ROUTE_PATH,EVE_DEV_RUNTIME_ARTIFACTS_ROUTE_PATH,EVE_DEV_RUNTIME_ARTIFACTS_SUSPEND_ROUTE_PATH,EVE_PRODUCTION_CRON_ROUTE_PATTERN}from"#protocol/routes.js";import{EVE_WORKFLOW_FLOW_ROUTE_PATH}from"#internal/workflow-bundle/eve-service-route-output.js";import{DEVELOPMENT_WORKFLOW_STREAM_ROUTE,DEVELOPMENT_WORKFLOW_WORLD_ROUTE}from"#internal/workflow/development-world-protocol.js";const HOST_HTTP_INVENTORY=Object.freeze([{capability:`workflow`,method:`ALL`,path:EVE_WORKFLOW_FLOW_ROUTE_PATH},{capability:`development`,method:`GET`,path:EVE_DEV_RUNTIME_ARTIFACTS_ROUTE_PATH},{capability:`development`,method:`GET`,path:EVE_DEV_RUNTIME_ARTIFACTS_REBUILD_ROUTE_PATH},{capability:`development`,method:`POST`,path:EVE_DEV_RUNTIME_ARTIFACTS_REBUILD_ROUTE_PATH},{capability:`development`,method:`POST`,path:EVE_DEV_RUNTIME_ARTIFACTS_SUSPEND_ROUTE_PATH},{capability:`development`,method:`POST`,path:EVE_DEV_RUNTIME_ARTIFACTS_RESUME_ROUTE_PATH},{capability:`development`,method:`ALL`,path:DEVELOPMENT_WORKFLOW_WORLD_ROUTE},{capability:`development`,method:`ALL`,path:DEVELOPMENT_WORKFLOW_STREAM_ROUTE},{capability:`schedule`,method:`POST`,path:EVE_DEV_DISPATCH_SCHEDULE_ROUTE_PATTERN},{capability:`schedule`,method:`ALL`,path:EVE_PRODUCTION_CRON_ROUTE_PATTERN,reservationOnly:!0}]);export{HOST_HTTP_INVENTORY};
@@ -0,0 +1,4 @@
1
+ declare const _default: import("#public/definitions/agent.js").DefinedAgent<{
2
+ model: string;
3
+ }>;
4
+ export default _default;
@@ -0,0 +1 @@
1
+ import{DEFAULT_AGENT_MODEL_ID}from"#shared/default-agent-model.js";import{defineAgent}from"#public/definitions/agent.js";var agent_default=defineAgent({model:DEFAULT_AGENT_MODEL_ID});export{agent_default as default};
@@ -0,0 +1 @@
1
+ export default function createDefaultEveChannel(): import("#eve-channel/index.js").EveChannel;
@@ -0,0 +1 @@
1
+ import{localDev,placeholderAuth,vercelOidc}from"#public/channels/auth.js";import{eveChannel}from"#eve-channel/index.js";function createDefaultEveChannel(){return eveChannel({auth:[vercelOidc(),localDev(),placeholderAuth()]})}export{createDefaultEveChannel as default};
@@ -0,0 +1,2 @@
1
+ declare const _default: import("#public/definitions/channel.js").Channel<undefined, Record<string, unknown>, Record<string, unknown>>;
2
+ export default _default;
@@ -0,0 +1 @@
1
+ import{GET,HEAD,defineChannel}from"#public/definitions/channel.js";import{readHomeRouteMetadata}from"#internal/nitro/routes/channel-route-context.js";import{buildHomePageResponse}from"#internal/nitro/routes/index.js";const respond=async(e,t)=>buildHomePageResponse(readHomeRouteMetadata(t)??{agentName:`eve`},e);var home_channel_default=defineChannel({routes:[GET(`/`,respond),HEAD(`/`,respond)]});export{home_channel_default as default};
@@ -0,0 +1,2 @@
1
+ declare const _default: import("#public/definitions/sandbox.js").SandboxDefinition<Record<string, never>, Record<string, never>>;
2
+ export default _default;
@@ -0,0 +1 @@
1
+ import{defineSandbox}from"#public/definitions/sandbox.js";var sandbox_default=defineSandbox({});export{sandbox_default as default};
@@ -0,0 +1,5 @@
1
+ import { type AgentSourceRegistry, type AgentModuleBacking, type ProgrammaticModuleNamespace } from "#compiler/source-graph.js";
2
+ export declare const frameworkAgentSourceRegistry: AgentSourceRegistry;
3
+ export declare function loadFrameworkProgrammaticModule(backing: Extract<AgentModuleBacking, {
4
+ readonly kind: "programmatic";
5
+ }>, dependencyNamespaces?: Readonly<Record<string, ProgrammaticModuleNamespace>>): Promise<ProgrammaticModuleNamespace>;
@@ -0,0 +1 @@
1
+ import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{createAgentSourceRegistry,defineProgrammaticAgentSource,loadProgrammaticModuleNamespace}from"#compiler/source-graph.js";const revision=`eve@${resolveInstalledPackageInfo().version}:compiled-manifest-v43`,localDefaults=defineProgrammaticAgentSource({id:`eve:defaults`,revision,modules:[{logicalPath:`agent.ts`,loadNamespace:()=>import(`#framework/sources/modules/agent.js`)},{logicalPath:`sandbox.ts`,semanticRevision:`eve:default-sandbox:v1`,loadNamespace:()=>import(`#framework/sources/modules/sandbox.js`)},{logicalPath:`tools/bash.ts`,loadNamespace:()=>import(`#tools/provided/bash.js`)},{logicalPath:`tools/read_file.ts`,loadNamespace:()=>import(`#tools/provided/read-file.js`)},{logicalPath:`tools/write_file.ts`,loadNamespace:()=>import(`#tools/provided/write-file.js`)},{logicalPath:`tools/todo.ts`,loadNamespace:()=>import(`#tools/provided/todo.js`)},{logicalPath:`tools/web_fetch.ts`,loadNamespace:()=>import(`#tools/provided/web-fetch.js`)},{logicalPath:`tools/load_skill.ts`,loadNamespace:()=>import(`#tools/provided/load-skill.js`)},{logicalPath:`tools/connection_search.ts`,loadNamespace:()=>import(`#tools/framework/connection-search.js`)},{logicalPath:`tools/ask_question.ts`,loadNamespace:()=>import(`#tools/framework/ask-question.js`)},{logicalPath:`tools/web_search.ts`,loadNamespace:()=>import(`#tools/provided/web-search.js`)}]}),rootDefaults=defineProgrammaticAgentSource({id:`eve:root-defaults`,revision,modules:[{logicalPath:`tools/agent.ts`,loadNamespace:()=>import(`#tools/framework/agent.js`)},{logicalPath:`tools/task_update.ts`,loadNamespace:()=>import(`#tools/framework/task-update.js`)},{logicalPath:`tools/task_cancel.ts`,loadNamespace:()=>import(`#tools/framework/task-cancel.js`)},{logicalPath:`channels/eve.ts`,loadNamespace:()=>import(`#framework/sources/modules/eve-channel.js`)},{logicalPath:`channels/home.ts`,loadNamespace:()=>import(`#framework/sources/modules/home-channel.js`)}]}),frameworkAgentSourceRegistry=createAgentSourceRegistry([{applyTo:`all-local-nodes`,source:localDefaults},{applyTo:`root`,source:rootDefaults}]);async function loadFrameworkProgrammaticModule(e,t){return await loadProgrammaticModuleNamespace({backing:e,dependencyNamespaces:t,registries:[frameworkAgentSourceRegistry]})}export{frameworkAgentSourceRegistry,loadFrameworkProgrammaticModule};
@@ -1,5 +1,5 @@
1
1
  import type { ModelMessage, ToolSet, TypedToolError, TypedToolResult } from "ai";
2
- import type { RuntimeToolResultActionResult } from "#runtime/actions/types.js";
2
+ import type { RuntimeToolResultActionResult } from "#shared/action-types.js";
3
3
  type ToolResponsePart = Extract<ModelMessage, {
4
4
  role: "tool";
5
5
  }>["content"][number];
@@ -1 +1 @@
1
- import{TASK_TOOL_NAMES,TASK_UPDATE_TOOL_NAME}from"#runtime/framework-tools/tasks.js";import{resolveSubagentDepth}from"#harness/subagent-depth.js";import{AGENT_TOOL_NAME}from"#runtime/framework-tools/agent.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{ensureWorkflowContinuationSecurity,getWorkflowContinuationSecurity}from"#harness/workflow-continuation-security.js";import{applyWorkflowTool}from"#harness/workflow-sandbox.js";function getAdvertisedTools(e){return`modelTools`in e?getAdvertisedModelTools(e):isToolDefinitionList(e.tools)?filterUnavailableDelegationToolDefinitions(e.tools,e.session,e.delegatedCaller):filterUnavailableDelegationToolMap(e.tools,e.session,e.delegatedCaller)}async function getAdvertisedModelTools(e){let t=filterUnavailableDelegationToolMap(e.tools,e.session,e.delegatedCaller);if(e.workflow===void 0)return{harnessTools:t,modelTools:e.modelTools,session:e.session};let n=filterWorkflowHostToolsForRootSession(t,e.session);if(n.size===0)return{harnessTools:t,modelTools:e.modelTools,session:e.session};let r=ensureWorkflowContinuationSecurity(e.session),{modelTools:i}=await applyWorkflowTool({continuationSecurity:getWorkflowContinuationSecurity(r),harnessTools:n,lifecycle:e.workflow.lifecycle?.({session:r,tools:n}),maxSubagents:e.workflow.maxSubagents,tools:e.modelTools});return{harnessTools:t,modelTools:i,session:r}}function filterUnavailableDelegationToolDefinitions(e,t,n){let r=[];for(let i of e)shouldHideDelegationTool(i,t,n)||r.push(i);return r}function filterUnavailableDelegationToolMap(e,t,n){let r=new Map;for(let[i,a]of e)shouldHideDelegationTool(a,t,n)||r.set(i,a);return r}function filterWorkflowHostToolsForRootSession(e,t){let r=new Map,i=resolveSubagentDepth(t);if(t.rootSessionId!==void 0||i.currentDepth>0)return r;for(let[t,n]of e)n.workflowCallable===!0&&r.set(t,n);return r}function shouldHideDelegationTool(e,r,i){return e.name===TASK_UPDATE_TOOL_NAME?i!==!0:isRootOnlyFrameworkTool(e)?r.rootSessionId!==void 0||resolveSubagentDepth(r).currentDepth>0:!1}function isRootOnlyFrameworkTool(n){return n.rootOnly===!0||n.name===AGENT_TOOL_NAME&&n.runtimeAction?.kind===`subagent-call`&&n.runtimeAction.nodeId===ROOT_RUNTIME_AGENT_NODE_ID||n.name!==TASK_UPDATE_TOOL_NAME&&TASK_TOOL_NAMES.has(n.name)}function isToolDefinitionList(e){return Array.isArray(e)}export{getAdvertisedTools};
1
+ import{TASK_TOOL_NAMES,TASK_UPDATE_TOOL_NAME}from"#tools/framework/task-contract.js";import{resolveSubagentDepth}from"#harness/subagent-depth.js";import{AGENT_TOOL_NAME}from"#tools/framework/agent-contract.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{ensureWorkflowContinuationSecurity,getWorkflowContinuationSecurity}from"#harness/workflow-continuation-security.js";import{applyWorkflowTool}from"#harness/workflow-sandbox.js";function getAdvertisedTools(e){return`modelTools`in e?getAdvertisedModelTools(e):isToolDefinitionList(e.tools)?filterUnavailableDelegationToolDefinitions(e.tools,e.session,e.delegatedCaller):filterUnavailableDelegationToolMap(e.tools,e.session,e.delegatedCaller)}async function getAdvertisedModelTools(e){let t=filterUnavailableDelegationToolMap(e.tools,e.session,e.delegatedCaller);if(e.workflow===void 0)return{harnessTools:t,modelTools:e.modelTools,session:e.session};let n=filterWorkflowHostToolsForRootSession(t,e.session);if(n.size===0)return{harnessTools:t,modelTools:e.modelTools,session:e.session};let r=ensureWorkflowContinuationSecurity(e.session),{modelTools:i}=await applyWorkflowTool({continuationSecurity:getWorkflowContinuationSecurity(r),harnessTools:n,lifecycle:e.workflow.lifecycle?.({session:r,tools:n}),maxSubagents:e.workflow.maxSubagents,tools:e.modelTools});return{harnessTools:t,modelTools:i,session:r}}function filterUnavailableDelegationToolDefinitions(e,t,n){let r=[];for(let i of e)shouldHideDelegationTool(i,t,n)||r.push(i);return r}function filterUnavailableDelegationToolMap(e,t,n){let r=new Map;for(let[i,a]of e)shouldHideDelegationTool(a,t,n)||r.set(i,a);return r}function filterWorkflowHostToolsForRootSession(e,t){let r=new Map,i=resolveSubagentDepth(t);if(t.rootSessionId!==void 0||i.currentDepth>0)return r;for(let[t,n]of e)n.workflowCallable===!0&&r.set(t,n);return r}function shouldHideDelegationTool(e,r,i){return e.name===TASK_UPDATE_TOOL_NAME?i!==!0:isRootOnlyTransitionalTool(e)?r.rootSessionId!==void 0||resolveSubagentDepth(r).currentDepth>0:!1}function isRootOnlyTransitionalTool(n){return n.rootOnly===!0||n.name===AGENT_TOOL_NAME&&n.runtimeAction?.kind===`subagent-call`&&n.runtimeAction.nodeId===ROOT_RUNTIME_AGENT_NODE_ID||n.name!==TASK_UPDATE_TOOL_NAME&&TASK_TOOL_NAMES.has(n.name)}function isToolDefinitionList(e){return Array.isArray(e)}export{getAdvertisedTools};
@@ -31,9 +31,9 @@
31
31
  * nonce that re-derives it) from start to finish.
32
32
  */
33
33
  import { ContextKey } from "#context/key.js";
34
- import type { ConnectionAuthorizationChallenge } from "#public/connections/errors.js";
35
- import type { AuthorizationCallback, ConnectionPrincipal } from "#runtime/connections/types.js";
36
- import type { JsonValue } from "#public/types/json.js";
34
+ import type { ConnectionAuthorizationChallenge } from "#connections/errors.js";
35
+ import type { AuthorizationCallback, ConnectionPrincipal } from "#shared/connection-types.js";
36
+ import type { JsonValue } from "#shared/json.js";
37
37
  declare const AUTHORIZATION_BRAND: "__eveAuthorization";
38
38
  declare const AUTHORIZATION_PENDING_BRAND: "__eveAuthorizationPending";
39
39
  export interface AuthorizationChallenge {
@@ -1,6 +1,6 @@
1
1
  import { ContextKey } from "#context/key.js";
2
- import type { ToolExecuteOptions } from "#shared/tool-definition.js";
3
- import type { TaskExec } from "#shared/tool-task.js";
2
+ import type { ToolExecuteOptions } from "#tools/definition.js";
3
+ import type { TaskExec } from "#tools/task.js";
4
4
  export interface BackgroundExecutableTool {
5
5
  readonly execute: (input: unknown, options: ToolExecuteOptions, task: TaskExec) => unknown;
6
6
  readonly name: string;
@@ -1 +1 @@
1
- import{normalizeChannelAudience}from"#shared/channel-audience.js";import{ActiveChannelDeliveriesKey,ChannelInstrumentationKey,ParentTraceContextKey}from"#context/keys.js";import{instrumentationHooksForAudience}from"#harness/instrumentation/content-policy.js";import{channelDeliveryIdempotencyKey}from"#harness/instrumentation/lifecycle.js";async function instrumentChannelDelivery(a){if(!(`delivery`in a)){let n=a.ctx.get(ActiveChannelDeliveriesKey);if(n===void 0||a.hooks===void 0)return;let r=`channel.delivery.${a.outcome}`;for(let t of n)await instrumentationHooksForAudience(a.hooks,normalizeChannelAudience(t.delivery.channelAudience))?.publish({agentName:t.agentName,delivery:t.delivery,error:a.error,errorCode:a.errorCode,idempotencyKey:channelDeliveryIdempotencyKey(t.sessionId,t.delivery.deliveryId),outcome:a.outcome,rootSessionId:t.rootSessionId,sequence:a.includeTurn?t.sequence:void 0,sessionId:t.sessionId,turnId:a.includeTurn?t.turnId:void 0,type:r});a.ctx.delete(ActiveChannelDeliveriesKey);return}if(a.hooks===void 0||a.delivery.deliveryMetadata===void 0)return;let o=[],s=normalizeChannelAudience(a.ctx.get(ChannelInstrumentationKey)?.metadata.audience),c=instrumentationHooksForAudience(a.hooks,s);for(let e of a.delivery.deliveryMetadata){let t=a.delivery.payloads[e.payloadIndex],n={channelAudience:s,channelKind:e.channelKind,channelName:e.channelName,deliveryId:e.deliveryId,requestId:e.requestId,requestTraceContext:e.requestTraceContext},i=!c?.capturesContent||t===void 0?void 0:projectDeliveryInput(t),l={agentName:a.agentName,delivery:n,rootSessionId:a.rootSessionId,sequence:a.sequence,sessionId:a.sessionId,turnId:a.turnId};o.push(l),await c?.publish({agentName:l.agentName,delivery:n,idempotencyKey:channelDeliveryIdempotencyKey(a.sessionId,n.deliveryId),input:i,parentTraceContext:a.ctx.get(ParentTraceContextKey),rootSessionId:a.rootSessionId,sessionId:a.sessionId,type:`channel.delivery.started`})}o.length>0&&a.ctx.set(ActiveChannelDeliveriesKey,o)}function projectDeliveryInput(e){let t={};return e.context!==void 0&&(t.context=e.context),e.message!==void 0&&(t.message=e.message),e.outputSchema!==void 0&&(t.outputSchema=e.outputSchema),e.inputResponses!==void 0&&(t.inputResponses=e.inputResponses.map(e=>{let t={};return e.optionId!==void 0&&(t.optionId=e.optionId),e.text!==void 0&&(t.text=e.text),t})),t}function channelDeliveryErrorCode(e){if(typeof e==`object`&&e&&`code`in e){let t=e.code;if(typeof t==`string`&&t.length>0)return t}return`CHANNEL_DELIVERY_FAILED`}export{channelDeliveryErrorCode,instrumentChannelDelivery};
1
+ import{normalizeChannelAudience}from"#shared/channel-audience.js";import{ActiveChannelDeliveriesKey,ChannelInstrumentationKey,ParentTraceContextKey,SessionTraceSeedKey}from"#context/keys.js";import{instrumentationHooksForAudience}from"#harness/instrumentation/content-policy.js";import{channelDeliveryIdempotencyKey}from"#harness/instrumentation/lifecycle.js";async function instrumentChannelDelivery(a){if(!(`delivery`in a)){let n=a.ctx.get(ActiveChannelDeliveriesKey);if(n===void 0||a.hooks===void 0)return;let r=`channel.delivery.${a.outcome}`;for(let t of n)await instrumentationHooksForAudience(a.hooks,normalizeChannelAudience(t.delivery.channelAudience))?.publish({agentName:t.agentName,delivery:t.delivery,error:a.error,errorCode:a.errorCode,idempotencyKey:channelDeliveryIdempotencyKey(t.sessionId,t.delivery.deliveryId),outcome:a.outcome,rootSessionId:t.rootSessionId,sequence:a.includeTurn?t.sequence:void 0,sessionId:t.sessionId,turnId:a.includeTurn?t.turnId:void 0,type:r});a.ctx.delete(ActiveChannelDeliveriesKey);return}if(a.hooks===void 0||a.delivery.deliveryMetadata===void 0)return;let o=[],s=normalizeChannelAudience(a.ctx.get(ChannelInstrumentationKey)?.metadata.audience),c=instrumentationHooksForAudience(a.hooks,s);for(let e of a.delivery.deliveryMetadata){let t=a.delivery.payloads[e.payloadIndex],n={channelAudience:s,channelKind:e.channelKind,channelName:e.channelName,deliveryId:e.deliveryId,requestId:e.requestId,requestTraceContext:e.requestTraceContext},i=!c?.capturesContent||t===void 0?void 0:projectDeliveryInput(t),l={agentName:a.agentName,delivery:n,rootSessionId:a.rootSessionId,sequence:a.sequence,sessionId:a.sessionId,turnId:a.turnId};o.push(l),await c?.publish({agentName:l.agentName,delivery:n,idempotencyKey:channelDeliveryIdempotencyKey(a.sessionId,n.deliveryId),input:i,parentTraceContext:a.ctx.get(ParentTraceContextKey),rootSessionId:a.rootSessionId,sessionId:a.sessionId,traceSeed:a.ctx.get(SessionTraceSeedKey),type:`channel.delivery.started`})}o.length>0&&a.ctx.set(ActiveChannelDeliveriesKey,o)}function projectDeliveryInput(e){let t={};return e.context!==void 0&&(t.context=e.context),e.message!==void 0&&(t.message=e.message),e.outputSchema!==void 0&&(t.outputSchema=e.outputSchema),e.inputResponses!==void 0&&(t.inputResponses=e.inputResponses.map(e=>{let t={};return e.optionId!==void 0&&(t.optionId=e.optionId),e.text!==void 0&&(t.text=e.text),t})),t}function channelDeliveryErrorCode(e){if(typeof e==`object`&&e&&`code`in e){let t=e.code;if(typeof t==`string`&&t.length>0)return t}return`CHANNEL_DELIVERY_FAILED`}export{channelDeliveryErrorCode,instrumentChannelDelivery};
@@ -1 +1 @@
1
- import{generateText}from"ai";import{estimateTokens}from"#harness/token-estimate.js";import{COMPACTION_CHECKPOINT_MARKER,COMPACTION_PROMPT_ENVELOPE,COMPACTION_RESUMPTION_MESSAGE,TODO_COMPACTION_PRESERVATION_LABEL,TRANSCRIPT_PAYLOAD_LIMIT,createCompactionPrompt,stubContentOutputFileParts}from"#harness/compaction-prompt.js";const COMPACTION_PROMPT_OVERHEAD_TOKENS=estimateTokens([{content:COMPACTION_PROMPT_ENVELOPE.system,role:`system`},{content:COMPACTION_PROMPT_ENVELOPE.prompt,role:`user`}]);function getInputTokenCount(e,n){let r=n.lastKnownInputTokens,i=n.lastKnownPromptMessageCount;return r===void 0||i===void 0||!Number.isInteger(i)||i<0||i>e.length?estimateTokens(e):r+estimateTokens(e.slice(i))}function shouldCompact(e,t){return e.length>0&&getInputTokenCount(e,t)+COMPACTION_PROMPT_OVERHEAD_TOKENS>t.threshold}async function resolveCompactionModel(e){let t=e.compactionModelReference??e.modelReference;return{model:t===e.modelReference?e.model:await e.resolveModel(t),providerOptions:t.providerOptions}}const COMPACTION_HEURISTICS=[toolResultCapHeuristic];function toolResultCapHeuristic(e){let t=withResumptionGuard([...e.previousCheckpoint===void 0?[]:[{content:COMPACTION_CHECKPOINT_MARKER,role:`user`},{content:e.previousCheckpoint,role:`assistant`}],...capToolResults(e.older),...e.recent],e.conversation);return evaluateThreshold(t,e.config,`should-compact`).type===`within-limit`?{messages:t,type:`within-limit`}:{type:`insufficient`}}function evaluateThreshold(e,n,r){let i=r===`should-compact`?COMPACTION_PROMPT_OVERHEAD_TOKENS:0,a=estimateTokens(e)+i;return{estimatedTokens:a,type:a<=n.threshold?`within-limit`:`over-limit`}}async function compactMessages(t,r,i,a,o,c,l,d=!1){let{conversation:f,previousCheckpoint:p}=extractPreviousCheckpoint(t),m=selectRecentWindowSize(f,d?{...i,recentWindowSize:1}:i);if(!d){let{older:e,recent:t}=splitMessagesForCompaction(f,m);if(e.length===0&&p===void 0)return keepNonToolResultMessages(t);for(let n of COMPACTION_HEURISTICS){let r=n({config:i,conversation:f,older:e,previousCheckpoint:p,recent:t});if(r.type===`within-limit`)return r.messages}}for(;;){let{older:t,recent:u}=splitMessagesForCompaction(f,m),d=createCompactionPrompt({messages:t,previousCheckpoint:p,transcriptBudgetTokens:i.threshold}),h=await generateText({abortSignal:l,headers:c,model:r,prompt:d.prompt,providerOptions:a,system:d.system,telemetry:o?{...o,functionId:`eve.compaction`}:void 0,temperature:0}),g=[{content:COMPACTION_CHECKPOINT_MARKER,role:`user`},{content:h.text,role:`assistant`}],_=withResumptionGuard([...g,...u],f);if(evaluateThreshold(_,i,`estimate`).type===`within-limit`)return _;let v=withResumptionGuard([...g,...keepNonToolResultMessages(u)],f);if(evaluateThreshold(v,i,`estimate`).type===`within-limit`||m===0)return v;--m}}function capToolResults(e){return e.map(e=>{if(e.role!==`tool`||typeof e.content==`string`)return e;let t=!1,n=e.content.map(e=>{if(e.type!==`tool-result`)return e;let n=stubContentOutputFileParts(e.output),r=JSON.stringify(n)??``;return r.length<=TRANSCRIPT_PAYLOAD_LIMIT?n===e.output?e:(t=!0,{...e,output:n}):(t=!0,{...e,output:{type:`text`,value:`[Truncated by eve: tool result reduced during context compaction. Re-run the tool if you need the full output.]\n\n${r.slice(0,TRANSCRIPT_PAYLOAD_LIMIT)}`}})});return t?{...e,content:n}:e})}function withResumptionGuard(e,t){let n=e.at(-1)?.role;if(n!==void 0&&n!==`assistant`)return e;let r=findLastRealUserMessage(t),a=r!==void 0&&e.some(e=>e.role===`user`&&e.content===r.content);return[...e,r!==void 0&&!a?r:{content:COMPACTION_RESUMPTION_MESSAGE,role:`user`}]}function findLastRealUserMessage(e){for(let t=e.length-1;t>=0;--t){let r=e[t];if(!(r?.role!==`user`||typeof r.content!=`string`)&&!(r.content===COMPACTION_RESUMPTION_MESSAGE||r.content===COMPACTION_CHECKPOINT_MARKER||r.content.startsWith(TODO_COMPACTION_PRESERVATION_LABEL)))return r}}function extractPreviousCheckpoint(e){let t=e[0],r=e[1];return t?.role!==`user`||t.content!==COMPACTION_CHECKPOINT_MARKER||r?.role!==`assistant`?{conversation:[...e],previousCheckpoint:void 0}:{conversation:e.slice(2),previousCheckpoint:assistantMessageText(r)}}function keepNonToolResultMessages(e){let t=[];for(let n of e)if(n.role!==`tool`){if(n.role===`assistant`){let e=assistantMessageText(n);e.length>0&&t.push({content:e,role:`assistant`});continue}t.push(n)}return t}function assistantMessageText(e){return typeof e.content==`string`?e.content.trim():e.content.filter(e=>e.type===`text`).map(e=>e.text).join(``).trim()}function selectRecentWindowSize(e,n){let r=Math.min(n.recentWindowSize,Math.max(e.length-1,0)),i=resolveCompactionSummaryReserve(n),a=0,o=0;for(let s=e.length-1;s>=0&&a<r;--s){let r=e[s];if(r===void 0)continue;let c=estimateTokens([r]);if(o+c+i>n.threshold)break;o+=c,a+=1}return a}function resolveCompactionSummaryReserve(e){return Math.min(2048,Math.max(64,Math.floor(e.threshold/4)))}function splitMessagesForCompaction(e,t){if(t<=0)return{older:[...e],recent:[]};let n=e.length-t;for(;n<e.length&&e[n]?.role===`tool`;)n+=1;return{older:e.slice(0,n),recent:e.slice(n)}}export{compactMessages,getInputTokenCount,resolveCompactionModel,shouldCompact};
1
+ import{generateText}from"ai";import{COMPACTION_CHECKPOINT_MARKER,COMPACTION_PROMPT_ENVELOPE,COMPACTION_RESUMPTION_MESSAGE,TODO_COMPACTION_PRESERVATION_LABEL,TRANSCRIPT_PAYLOAD_LIMIT,createCompactionPrompt,stubContentOutputFileParts}from"#harness/compaction-prompt.js";import{estimateTokens}from"#harness/token-estimate.js";const COMPACTION_PROMPT_OVERHEAD_TOKENS=estimateTokens([{content:COMPACTION_PROMPT_ENVELOPE.system,role:`system`},{content:COMPACTION_PROMPT_ENVELOPE.prompt,role:`user`}]);function getInputTokenCount(e,t){let n=t.lastKnownInputTokens,r=t.lastKnownPromptMessageCount;return n===void 0||r===void 0||!Number.isInteger(r)||r<0||r>e.length?estimateTokens(e):n+estimateTokens(e.slice(r))}function shouldCompact(e,t){return e.length>0&&getInputTokenCount(e,t)+COMPACTION_PROMPT_OVERHEAD_TOKENS>t.threshold}async function resolveCompactionModel(e){let t=e.compactionModelReference??e.modelReference;return{model:t===e.modelReference?e.model:await e.resolveModel(t),providerOptions:t.providerOptions}}const COMPACTION_HEURISTICS=[toolResultCapHeuristic];function toolResultCapHeuristic(e){let n=withResumptionGuard([...e.previousCheckpoint===void 0?[]:[{content:COMPACTION_CHECKPOINT_MARKER,role:`user`},{content:e.previousCheckpoint,role:`assistant`}],...capToolResults(e.older),...e.recent],e.conversation);return evaluateThreshold(n,e.config,`should-compact`).type===`within-limit`?{messages:n,type:`within-limit`}:{type:`insufficient`}}function evaluateThreshold(e,t,n){let r=n===`should-compact`?COMPACTION_PROMPT_OVERHEAD_TOKENS:0,i=estimateTokens(e)+r;return{estimatedTokens:i,type:i<=t.threshold?`within-limit`:`over-limit`}}async function compactMessages(n,r,i,a,s,c,l,d=!1){let{conversation:f,previousCheckpoint:p}=extractPreviousCheckpoint(n),m=selectRecentWindowSize(f,d?{...i,recentWindowSize:1}:i);if(!d){let{older:e,recent:t}=splitMessagesForCompaction(f,m);if(e.length===0&&p===void 0)return keepNonToolResultMessages(t);for(let n of COMPACTION_HEURISTICS){let r=n({config:i,conversation:f,older:e,previousCheckpoint:p,recent:t});if(r.type===`within-limit`)return r.messages}}for(;;){let{older:n,recent:u}=splitMessagesForCompaction(f,m),d=createCompactionPrompt({messages:n,previousCheckpoint:p,transcriptBudgetTokens:i.threshold}),h=await generateText({abortSignal:l,headers:c,model:r,prompt:d.prompt,providerOptions:a,system:d.system,telemetry:s?{...s,functionId:`eve.compaction`}:void 0,temperature:0}),g=[{content:COMPACTION_CHECKPOINT_MARKER,role:`user`},{content:h.text,role:`assistant`}],_=withResumptionGuard([...g,...u],f);if(evaluateThreshold(_,i,`estimate`).type===`within-limit`)return _;let v=withResumptionGuard([...g,...keepNonToolResultMessages(u)],f);if(evaluateThreshold(v,i,`estimate`).type===`within-limit`||m===0)return v;--m}}function capToolResults(e){return e.map(e=>{if(e.role!==`tool`||typeof e.content==`string`)return e;let t=!1,n=e.content.map(e=>{if(e.type!==`tool-result`)return e;let n=stubContentOutputFileParts(e.output),r=JSON.stringify(n)??``;return r.length<=TRANSCRIPT_PAYLOAD_LIMIT?n===e.output?e:(t=!0,{...e,output:n}):(t=!0,{...e,output:{type:`text`,value:`[Truncated by eve: tool result reduced during context compaction. Re-run the tool if you need the full output.]\n\n${r.slice(0,TRANSCRIPT_PAYLOAD_LIMIT)}`}})});return t?{...e,content:n}:e})}function withResumptionGuard(e,t){let n=e.at(-1)?.role;if(n!==void 0&&n!==`assistant`)return e;let i=findLastRealUserMessage(t),a=i!==void 0&&e.some(e=>e.role===`user`&&e.content===i.content);return[...e,i!==void 0&&!a?i:{content:COMPACTION_RESUMPTION_MESSAGE,role:`user`}]}function findLastRealUserMessage(e){for(let n=e.length-1;n>=0;--n){let a=e[n];if(!(a?.role!==`user`||typeof a.content!=`string`)&&!(a.content===COMPACTION_RESUMPTION_MESSAGE||a.content===COMPACTION_CHECKPOINT_MARKER||a.content.startsWith(TODO_COMPACTION_PRESERVATION_LABEL)))return a}}function extractPreviousCheckpoint(e){let n=e[0],r=e[1];return n?.role!==`user`||n.content!==COMPACTION_CHECKPOINT_MARKER||r?.role!==`assistant`?{conversation:[...e],previousCheckpoint:void 0}:{conversation:e.slice(2),previousCheckpoint:assistantMessageText(r)}}function keepNonToolResultMessages(e){let t=[];for(let n of e)if(n.role!==`tool`){if(n.role===`assistant`){let e=assistantMessageText(n);e.length>0&&t.push({content:e,role:`assistant`});continue}t.push(n)}return t}function assistantMessageText(e){return typeof e.content==`string`?e.content.trim():e.content.filter(e=>e.type===`text`).map(e=>e.text).join(``).trim()}function selectRecentWindowSize(e,t){let n=Math.min(t.recentWindowSize,Math.max(e.length-1,0)),r=resolveCompactionSummaryReserve(t),i=0,a=0;for(let o=e.length-1;o>=0&&i<n;--o){let n=e[o];if(n===void 0)continue;let s=estimateTokens([n]);if(a+s+r>t.threshold)break;a+=s,i+=1}return i}function resolveCompactionSummaryReserve(e){return Math.min(2048,Math.max(64,Math.floor(e.threshold/4)))}function splitMessagesForCompaction(e,t){if(t<=0)return{older:[...e],recent:[]};let n=e.length-t;for(;n<e.length&&e[n]?.role===`tool`;)n+=1;return{older:e.slice(0,n),recent:e.slice(n)}}export{compactMessages,getInputTokenCount,resolveCompactionModel,shouldCompact};
@@ -1,7 +1,7 @@
1
1
  import type { FlexibleSchema } from "ai";
2
- import type { Approval } from "#public/definitions/approval.js";
3
- import type { ToolExecuteOptions } from "#shared/tool-definition.js";
4
- import type { TaskExec } from "#shared/tool-task.js";
2
+ import type { Approval } from "#approval/definition.js";
3
+ import type { ToolExecuteOptions } from "#tools/definition.js";
4
+ import type { TaskExec } from "#tools/task.js";
5
5
  /**
6
6
  * Runtime-owned action metadata attached to one harness-visible tool.
7
7
  *
@@ -1,7 +1,7 @@
1
1
  import type { Tool } from "ai";
2
2
  import type { JsonObject } from "#shared/json.js";
3
3
  /**
4
- * Stable model-visible name for the framework structured-output tool.
4
+ * Stable model-visible name for the kernel structured-output interception.
5
5
  */
6
6
  export declare const FINAL_OUTPUT_TOOL_NAME = "final_output";
7
7
  /**
@@ -0,0 +1 @@
1
+ import{toInputSchema}from"#tools/schema.js";const FINAL_OUTPUT_TOOL_NAME=`final_output`;function buildFinalOutputTool(e){let t=toInputSchema(e);return{description:`Deliver your final answer in the required structure by calling this tool. Call it exactly once, when you are done; do not answer in prose.`,inputSchema:t,outputSchema:t}}export{FINAL_OUTPUT_TOOL_NAME,buildFinalOutputTool};
@@ -1,4 +1,4 @@
1
- import type { RuntimeActionResult, RuntimeSubagentChildResult } from "#runtime/actions/types.js";
1
+ import type { RuntimeActionResult, RuntimeSubagentChildResult } from "#shared/action-types.js";
2
2
  import type { AgentHandle } from "#harness/handles/store.js";
3
3
  import type { SessionStateMap } from "#harness/types.js";
4
4
  /** A handle with one outstanding operation and a confirmed child address. */
@@ -55,6 +55,10 @@ export type AgentStartTarget = {
55
55
  readonly url: string;
56
56
  /** Callback base URL stub captured at dispatch; never model-visible. */
57
57
  readonly callbackBaseUrl: string;
58
+ /** Auth/header resolver selected when this child was created; `{}` means none. */
59
+ readonly credentialResolver?: {
60
+ readonly resolverId?: string;
61
+ };
58
62
  };
59
63
  /** Confirmed delivery coordinates of a started child. */
60
64
  export type AgentAddress = {
@@ -70,6 +74,10 @@ export type AgentAddress = {
70
74
  readonly sessionId: string;
71
75
  readonly url: string;
72
76
  readonly callbackBaseUrl: string;
77
+ /** Auth/header resolver selected when this child was created; `{}` means none. */
78
+ readonly credentialResolver?: {
79
+ readonly resolverId?: string;
80
+ };
73
81
  };
74
82
  /**
75
83
  * Durable ownership record for one delegated child.
@@ -1 +1 @@
1
- import{AGENT_HANDLES_STATE_KEY}from"./state-key.js";import{z}from"#compiled/zod/index.js";const nonEmptyString=z.string().min(1),identitySchema=z.strictObject({id:nonEmptyString,name:nonEmptyString,nodeId:nonEmptyString}),startOperationSchema=z.strictObject({callId:nonEmptyString,id:nonEmptyString,kind:z.literal(`start`),parentTurnId:nonEmptyString}),continueOperationSchema=z.strictObject({callId:nonEmptyString,id:nonEmptyString,kind:z.literal(`continue`),parentTurnId:nonEmptyString,previousStatus:z.string().max(120)}),startTargetSchema=z.discriminatedUnion(`kind`,[z.strictObject({continuationToken:nonEmptyString,kind:z.literal(`agent/local`)}),z.strictObject({continuationToken:nonEmptyString,kind:z.literal(`agent/self`)}),z.strictObject({callbackBaseUrl:z.url(),kind:z.literal(`agent/remote`),url:z.url()})]),addressSchema=z.discriminatedUnion(`kind`,[z.strictObject({continuationToken:nonEmptyString,kind:z.literal(`agent/local`),sessionId:nonEmptyString}),z.strictObject({continuationToken:nonEmptyString,kind:z.literal(`agent/self`),sessionId:nonEmptyString}),z.strictObject({callbackBaseUrl:z.url(),kind:z.literal(`agent/remote`),sessionId:nonEmptyString,url:z.url()})]),agentHandleSchema=z.discriminatedUnion(`phase`,[z.strictObject({identity:identitySchema,operation:startOperationSchema,phase:z.literal(`starting`),target:startTargetSchema}),z.strictObject({address:addressSchema,identity:identitySchema,operation:z.discriminatedUnion(`kind`,[startOperationSchema,continueOperationSchema]),phase:z.literal(`running`)}),z.strictObject({address:addressSchema,identity:identitySchema,lastStatus:z.string().max(120),phase:z.literal(`parked`)}),z.strictObject({address:addressSchema,identity:identitySchema,phase:z.literal(`addressed`)})]),agentHandleStoreSchema=z.strictObject({handles:z.array(agentHandleSchema)}).refine(e=>new Set(e.handles.map(e=>e.identity.id)).size===e.handles.length,{message:`Agent handle ids must be unique.`});function deriveAgentId(e,t){return`ag_${e}:${t.slice(0,12)}`}function formatAgentStatus(e){return(typeof e==`string`?e:JSON.stringify(e)??``).replaceAll(/\s+/g,` `).trim().slice(0,120)}function assertPersistableAgentHandleStore(e){let t=agentHandleStoreSchema.safeParse(e);if(!t.success)throw Error(`Refusing to persist a corrupt agent handle store: ${t.error.message}`);return t.data}function getAgentHandleStore(t){let n=t?.[AGENT_HANDLES_STATE_KEY];if(n===void 0)return;let r=agentHandleStoreSchema.safeParse(n);if(!r.success)throw Error(`Corrupt agent handle store under session state key "${AGENT_HANDLES_STATE_KEY}": ${r.error.message}`);return r.data}export{AGENT_HANDLES_STATE_KEY,assertPersistableAgentHandleStore,deriveAgentId,formatAgentStatus,getAgentHandleStore};
1
+ import{AGENT_HANDLES_STATE_KEY}from"./state-key.js";import{z}from"#compiled/zod/index.js";const nonEmptyString=z.string().min(1),identitySchema=z.strictObject({id:nonEmptyString,name:nonEmptyString,nodeId:nonEmptyString}),startOperationSchema=z.strictObject({callId:nonEmptyString,id:nonEmptyString,kind:z.literal(`start`),parentTurnId:nonEmptyString}),continueOperationSchema=z.strictObject({callId:nonEmptyString,id:nonEmptyString,kind:z.literal(`continue`),parentTurnId:nonEmptyString,previousStatus:z.string().max(120)}),startTargetSchema=z.discriminatedUnion(`kind`,[z.strictObject({continuationToken:nonEmptyString,kind:z.literal(`agent/local`)}),z.strictObject({continuationToken:nonEmptyString,kind:z.literal(`agent/self`)}),z.strictObject({callbackBaseUrl:z.url(),credentialResolver:z.strictObject({resolverId:nonEmptyString.optional()}).optional(),kind:z.literal(`agent/remote`),url:z.url()})]),addressSchema=z.discriminatedUnion(`kind`,[z.strictObject({continuationToken:nonEmptyString,kind:z.literal(`agent/local`),sessionId:nonEmptyString}),z.strictObject({continuationToken:nonEmptyString,kind:z.literal(`agent/self`),sessionId:nonEmptyString}),z.strictObject({callbackBaseUrl:z.url(),credentialResolver:z.strictObject({resolverId:nonEmptyString.optional()}).optional(),kind:z.literal(`agent/remote`),sessionId:nonEmptyString,url:z.url()})]),agentHandleSchema=z.discriminatedUnion(`phase`,[z.strictObject({identity:identitySchema,operation:startOperationSchema,phase:z.literal(`starting`),target:startTargetSchema}),z.strictObject({address:addressSchema,identity:identitySchema,operation:z.discriminatedUnion(`kind`,[startOperationSchema,continueOperationSchema]),phase:z.literal(`running`)}),z.strictObject({address:addressSchema,identity:identitySchema,lastStatus:z.string().max(120),phase:z.literal(`parked`)}),z.strictObject({address:addressSchema,identity:identitySchema,phase:z.literal(`addressed`)})]),agentHandleStoreSchema=z.strictObject({handles:z.array(agentHandleSchema)}).refine(e=>new Set(e.handles.map(e=>e.identity.id)).size===e.handles.length,{message:`Agent handle ids must be unique.`});function deriveAgentId(e,t){return`ag_${e}:${t.slice(0,12)}`}function formatAgentStatus(e){return(typeof e==`string`?e:JSON.stringify(e)??``).replaceAll(/\s+/g,` `).trim().slice(0,120)}function assertPersistableAgentHandleStore(e){let t=agentHandleStoreSchema.safeParse(e);if(!t.success)throw Error(`Refusing to persist a corrupt agent handle store: ${t.error.message}`);return t.data}function getAgentHandleStore(t){let n=t?.[AGENT_HANDLES_STATE_KEY];if(n===void 0)return;let r=agentHandleStoreSchema.safeParse(n);if(!r.success)throw Error(`Corrupt agent handle store under session state key "${AGENT_HANDLES_STATE_KEY}": ${r.error.message}`);return r.data}export{AGENT_HANDLES_STATE_KEY,assertPersistableAgentHandleStore,deriveAgentId,formatAgentStatus,getAgentHandleStore};
@@ -1,4 +1,4 @@
1
- import type { InputRequest, InputResponse } from "#runtime/input/types.js";
1
+ import type { InputRequest, InputResponse } from "#shared/input.js";
2
2
  import type { PendingInputBatch } from "#harness/pending-input-batches.js";
3
3
  import type { InputDomainResolverInput, ResolvedInputActionBatch, ResolvePendingInputResult } from "#harness/hitl/pending-input-resolution.js";
4
4
  import type { HarnessSession } from "#harness/types.js";
@@ -1,4 +1,4 @@
1
- import type { InputRequest } from "#runtime/input/types.js";
1
+ import type { InputRequest } from "#shared/input.js";
2
2
  /** Label prefixing the framework-injected pending-approval notice. */
3
3
  export declare const PENDING_APPROVALS_LABEL = "[Pending approvals]";
4
4
  /** True when text is the framework-injected pending-approval notice. */
@@ -1,6 +1,6 @@
1
1
  import type { ModelMessage } from "ai";
2
- import type { RuntimeToolResultActionResult } from "#runtime/actions/types.js";
3
- import type { InputResponse } from "#runtime/input/types.js";
2
+ import type { RuntimeToolResultActionResult } from "#shared/action-types.js";
3
+ import type { InputResponse } from "#shared/input.js";
4
4
  import type { ResolvedInputBatch } from "#harness/input-request-resolution.js";
5
5
  import type { PendingInputBatch, PendingInputBatchEvent } from "#harness/pending-input-batches.js";
6
6
  import type { HarnessSession, StepInput } from "#harness/types.js";
@@ -1,5 +1,5 @@
1
1
  import type { ModelMessage } from "ai";
2
- import type { InputRequest, InputResponse } from "#runtime/input/types.js";
2
+ import type { InputRequest, InputResponse } from "#shared/input.js";
3
3
  import type { PendingInputBatch } from "#harness/pending-input-batches.js";
4
4
  import type { InputDomainResolverInput, ResolvePendingInputResult, ToolResponsePart } from "#harness/hitl/pending-input-resolution.js";
5
5
  export type QuestionInputRequest = InputRequest & {
@@ -1,5 +1,5 @@
1
1
  import type { ContentPart, ModelMessage, ToolSet, TypedToolCall } from "ai";
2
- import type { InputRequest } from "#runtime/input/types.js";
2
+ import type { InputRequest } from "#shared/input.js";
3
3
  /**
4
4
  * Extracts question input requests from tool calls that target the
5
5
  * `ask_question` framework tool.
@@ -1 +1 @@
1
- import{boolean,literal,object,string,unknown}from"../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/schemas.js";import"../node_modules/.pnpm/zod@4.4.3/node_modules/zod/index.js";import{ASK_QUESTION_TOOL_NAME}from"#runtime/framework-tools/ask-question.js";import{createRuntimeToolCallActionFromToolCall}from"#harness/tool-call-action.js";const ToolCallDescriptorSchema=object({input:unknown(),toolCallId:string(),toolName:string()}),PersistedToolCallSchema=ToolCallDescriptorSchema.extend({type:literal(`tool-call`)}),ToolApprovalRequestSchema=object({approvalId:string(),isAutomatic:boolean().optional().catch(void 0),toolCall:ToolCallDescriptorSchema.optional().catch(void 0),toolCallId:string().optional().catch(void 0),type:literal(`tool-approval-request`)});function extractQuestionInputRequests(e){return extractQuestionRequests(e)}function extractQuestionRequests(e){let t=[];for(let n of e.toolCalls){if(n.toolName!==ASK_QUESTION_TOOL_NAME||e.excludedCallIds.has(n.toolCallId))continue;let r=createRuntimeToolCallActionFromToolCall({toolCall:n}),i=r.input,o={action:r,display:`text`,kind:`question`,prompt:String(i.prompt),requestId:r.callId};i.allowFreeform!==void 0&&(o.allowFreeform=i.allowFreeform),i.options!==void 0&&(o.options=i.options,o.display=`select`),t.push(o)}return t}function extractToolApprovalInputRequests(e){return extractApprovalRequests(e)}function extractApprovalRequests(e){let t=[],n=new Map;for(let t of e.content){let e=PersistedToolCallSchema.safeParse(t);e.success&&n.set(e.data.toolCallId,e.data)}for(let r of e.content){let i=ToolApprovalRequestSchema.safeParse(r);if(!i.success)continue;let a=i.data;if(e.includedRequestIds!==void 0&&!e.includedRequestIds.has(a.approvalId)||a.isAutomatic===!0)continue;let o=a.toolCall??(a.toolCallId===void 0?void 0:n.get(a.toolCallId));o!==void 0&&(e.excludedCallIds?.has(o.toolCallId)||t.push({action:createRuntimeToolCallActionFromToolCall({toolCall:o}),allowFreeform:!1,display:`confirmation`,kind:`tool-approval`,options:[{id:`approve`,label:`Approve`},{id:`cancel`,label:`Cancel`}],prompt:`Approve tool call: ${o.toolName}`,requestId:a.approvalId}))}return t}function extractHistoricalInputRequests(e){let t=new Map;for(let n=e.history.length-1;n>=0;--n){let r=e.history[n];if(r?.role!==`assistant`||!Array.isArray(r.content))continue;let i=r.content.flatMap(t=>{let n=PersistedToolCallSchema.safeParse(t);return n.success&&e.requestIds.has(n.data.toolCallId)?[n.data]:[]}),a=[...extractQuestionRequests({excludedCallIds:new Set,toolCalls:i}),...extractApprovalRequests({content:r.content,includedRequestIds:e.requestIds})];for(let n of a)!e.requestIds.has(n.requestId)||t.has(n.requestId)||t.set(n.requestId,n);if(t.size===e.requestIds.size)break}return t}export{extractHistoricalInputRequests,extractQuestionInputRequests,extractToolApprovalInputRequests};
1
+ import{boolean,literal,object,string,unknown}from"../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/schemas.js";import"../node_modules/.pnpm/zod@4.4.3/node_modules/zod/index.js";import{ASK_QUESTION_TOOL_NAME}from"#harness/request-input-tool.js";import{createRuntimeToolCallActionFromToolCall}from"#harness/tool-call-action.js";const ToolCallDescriptorSchema=object({input:unknown(),toolCallId:string(),toolName:string()}),PersistedToolCallSchema=ToolCallDescriptorSchema.extend({type:literal(`tool-call`)}),ToolApprovalRequestSchema=object({approvalId:string(),isAutomatic:boolean().optional().catch(void 0),toolCall:ToolCallDescriptorSchema.optional().catch(void 0),toolCallId:string().optional().catch(void 0),type:literal(`tool-approval-request`)});function extractQuestionInputRequests(e){return extractQuestionRequests(e)}function extractQuestionRequests(e){let t=[];for(let n of e.toolCalls){if(n.toolName!==ASK_QUESTION_TOOL_NAME||e.excludedCallIds.has(n.toolCallId))continue;let r=createRuntimeToolCallActionFromToolCall({toolCall:n}),i=r.input,o={action:r,display:`text`,kind:`question`,prompt:String(i.prompt),requestId:r.callId};i.allowFreeform!==void 0&&(o.allowFreeform=i.allowFreeform),i.options!==void 0&&(o.options=i.options,o.display=`select`),t.push(o)}return t}function extractToolApprovalInputRequests(e){return extractApprovalRequests(e)}function extractApprovalRequests(e){let t=[],n=new Map;for(let t of e.content){let e=PersistedToolCallSchema.safeParse(t);e.success&&n.set(e.data.toolCallId,e.data)}for(let r of e.content){let i=ToolApprovalRequestSchema.safeParse(r);if(!i.success)continue;let a=i.data;if(e.includedRequestIds!==void 0&&!e.includedRequestIds.has(a.approvalId)||a.isAutomatic===!0)continue;let o=a.toolCall??(a.toolCallId===void 0?void 0:n.get(a.toolCallId));o!==void 0&&(e.excludedCallIds?.has(o.toolCallId)||t.push({action:createRuntimeToolCallActionFromToolCall({toolCall:o}),allowFreeform:!1,display:`confirmation`,kind:`tool-approval`,options:[{id:`approve`,label:`Approve`},{id:`cancel`,label:`Cancel`}],prompt:`Approve tool call: ${o.toolName}`,requestId:a.approvalId}))}return t}function extractHistoricalInputRequests(e){let t=new Map;for(let n=e.history.length-1;n>=0;--n){let r=e.history[n];if(r?.role!==`assistant`||!Array.isArray(r.content))continue;let i=r.content.flatMap(t=>{let n=PersistedToolCallSchema.safeParse(t);return n.success&&e.requestIds.has(n.data.toolCallId)?[n.data]:[]}),a=[...extractQuestionRequests({excludedCallIds:new Set,toolCalls:i}),...extractApprovalRequests({content:r.content,includedRequestIds:e.requestIds})];for(let n of a)!e.requestIds.has(n.requestId)||t.has(n.requestId)||t.set(n.requestId,n);if(t.size===e.requestIds.size)break}return t}export{extractHistoricalInputRequests,extractQuestionInputRequests,extractToolApprovalInputRequests};
@@ -3,7 +3,7 @@
3
3
  * the harness resolution path and protocol clients (e.g. the dev TUI's
4
4
  * rendering decisions).
5
5
  */
6
- import type { InputRequest } from "#runtime/input/types.js";
6
+ import type { InputRequest } from "#shared/input.js";
7
7
  /** Returns true when the request gates an AI SDK tool call. */
8
8
  export declare function isApprovalRequest(request: InputRequest): boolean;
9
9
  /**
@@ -1,5 +1,5 @@
1
1
  import type { PendingInputBatchEvent } from "#harness/pending-input-batches.js";
2
- import type { InputRequest, InputResponse } from "#runtime/input/types.js";
2
+ import type { InputRequest, InputResponse } from "#shared/input.js";
3
3
  export declare const TOOL_EXECUTION_DENIED_MESSAGE = "Tool execution was denied.";
4
4
  type ApprovalTerminalStatus = "approved" | "denied" | "ignored" | "invalid";
5
5
  export interface ResolvedInputBatch {
@@ -1,6 +1,6 @@
1
1
  import type { ModelMessage } from "ai";
2
- import type { RuntimeToolCallActionRequest } from "#runtime/actions/types.js";
3
- import type { InputRequest } from "#runtime/input/types.js";
2
+ import type { RuntimeToolCallActionRequest } from "#shared/action-types.js";
3
+ import type { InputRequest } from "#shared/input.js";
4
4
  import { getApprovedTools } from "#harness/hitl/approval-input-requests.js";
5
5
  import type { RejectedActionBatch } from "#harness/hitl/approval-input-requests.js";
6
6
  import type { ResolvePendingInputResult } from "#harness/hitl/pending-input-resolution.js";