eve 0.44.4 → 0.45.1

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 (827) hide show
  1. package/CHANGELOG.md +39 -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-BtsOXv3s.js → use-eve-agent-BH7Z6SDu.js} +397 -106
  26. package/dist/src/chunks/{use-eve-agent-BJwaMe5k.js → use-eve-agent-DI2j5XK8.js} +397 -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/integration-connect.d.ts +2 -0
  35. package/dist/src/cli/commands/integration-connect.js +1 -1
  36. package/dist/src/cli/commands/register-integration-commands.js +1 -1
  37. package/dist/src/cli/commands/trace.js +1 -1
  38. package/dist/src/cli/dev/tui/remote-auth.js +1 -1
  39. package/dist/src/cli/dev/tui/setup-selection-input.d.ts +3 -1
  40. package/dist/src/cli/dev/tui/setup-selection-input.js +2 -2
  41. package/dist/src/cli/dev/tui/terminal-renderer.js +2 -2
  42. package/dist/src/cli/dev/tui/traces/trace-conversation.d.ts +1 -1
  43. package/dist/src/cli/dev/tui/traces/trace-conversation.js +1 -1
  44. package/dist/src/cli/dev/tui/traces/trace-viewer-state.js +1 -1
  45. package/dist/src/cli/invoke/result.d.ts +1 -1
  46. package/dist/src/cli/ui/live-row.js +1 -1
  47. package/dist/src/cli/ui/output.js +1 -1
  48. package/dist/src/client/agent-info-schema.d.ts +1946 -302
  49. package/dist/src/client/agent-info-schema.js +1 -1
  50. package/dist/src/client/client.js +1 -1
  51. package/dist/src/client/eve-agent-store.d.ts +6 -5
  52. package/dist/src/client/eve-agent-store.js +1 -1
  53. package/dist/src/client/health-response-error.d.ts +5 -0
  54. package/dist/src/client/health-response-error.js +1 -0
  55. package/dist/src/client/health-schema.d.ts +7 -0
  56. package/dist/src/client/health-schema.js +1 -0
  57. package/dist/src/client/index.d.ts +6 -3
  58. package/dist/src/client/index.js +1 -1
  59. package/dist/src/client/message-action-parts.d.ts +2 -2
  60. package/dist/src/client/message-reducer-types.d.ts +1 -1
  61. package/dist/src/client/reducer.d.ts +1 -1
  62. package/dist/src/client/session-utils.d.ts +1 -1
  63. package/dist/src/client/session.d.ts +1 -1
  64. package/dist/src/client/session.js +1 -1
  65. package/dist/src/client/types.d.ts +3 -7
  66. package/dist/src/compiler/artifacts.d.ts +37 -11
  67. package/dist/src/compiler/artifacts.js +1 -1
  68. package/dist/src/compiler/channel-route-plan.d.ts +10 -0
  69. package/dist/src/compiler/channel-route-plan.js +1 -0
  70. package/dist/src/compiler/compile-agent.d.ts +2 -2
  71. package/dist/src/compiler/compile-agent.js +2 -2
  72. package/dist/src/compiler/compile-from-memory.d.ts +13 -52
  73. package/dist/src/compiler/compile-from-memory.js +1 -1
  74. package/dist/src/compiler/diagnostics.d.ts +38 -0
  75. package/dist/src/compiler/diagnostics.js +1 -0
  76. package/dist/src/compiler/extension-compatibility.d.ts +14 -11
  77. package/dist/src/compiler/extension-compatibility.js +1 -1
  78. package/dist/src/compiler/load-binding-namespace.d.ts +9 -0
  79. package/dist/src/compiler/load-binding-namespace.js +1 -0
  80. package/dist/src/compiler/manifest.d.ts +182 -51
  81. package/dist/src/compiler/manifest.js +1 -1
  82. package/dist/src/compiler/module-map.d.ts +12 -30
  83. package/dist/src/compiler/module-map.js +3 -3
  84. package/dist/src/compiler/node-source-state.d.ts +24 -0
  85. package/dist/src/compiler/node-source-state.js +1 -0
  86. package/dist/src/compiler/normalize-agent-config.d.ts +5 -1
  87. package/dist/src/compiler/normalize-agent-config.js +1 -1
  88. package/dist/src/compiler/normalize-channel.d.ts +8 -2
  89. package/dist/src/compiler/normalize-channel.js +1 -1
  90. package/dist/src/compiler/normalize-connection.d.ts +1 -1
  91. package/dist/src/compiler/normalize-connection.js +1 -1
  92. package/dist/src/compiler/normalize-helpers.d.ts +14 -4
  93. package/dist/src/compiler/normalize-helpers.js +1 -1
  94. package/dist/src/compiler/normalize-hook.d.ts +4 -11
  95. package/dist/src/compiler/normalize-hook.js +1 -1
  96. package/dist/src/compiler/normalize-instructions.d.ts +3 -3
  97. package/dist/src/compiler/normalize-instructions.js +1 -1
  98. package/dist/src/compiler/normalize-manifest-helpers.d.ts +29 -0
  99. package/dist/src/compiler/normalize-manifest-helpers.js +1 -0
  100. package/dist/src/compiler/normalize-manifest.d.ts +8 -4
  101. package/dist/src/compiler/normalize-manifest.js +1 -1
  102. package/dist/src/compiler/normalize-memory.d.ts +5 -0
  103. package/dist/src/compiler/normalize-memory.js +1 -0
  104. package/dist/src/compiler/normalize-sandbox.d.ts +1 -1
  105. package/dist/src/compiler/normalize-sandbox.js +1 -1
  106. package/dist/src/compiler/normalize-schedule.d.ts +2 -2
  107. package/dist/src/compiler/normalize-schedule.js +1 -1
  108. package/dist/src/compiler/normalize-skill.d.ts +2 -2
  109. package/dist/src/compiler/normalize-skill.js +1 -1
  110. package/dist/src/compiler/normalize-subagent.d.ts +21 -39
  111. package/dist/src/compiler/normalize-subagent.js +1 -1
  112. package/dist/src/compiler/normalize-tool.d.ts +2 -1
  113. package/dist/src/compiler/normalize-tool.js +1 -1
  114. package/dist/src/compiler/project-sources.d.ts +70 -0
  115. package/dist/src/compiler/project-sources.js +1 -0
  116. package/dist/src/compiler/remote-agent-node.d.ts +8 -0
  117. package/dist/src/compiler/remote-agent-node.js +1 -1
  118. package/dist/src/compiler/source-graph.d.ts +155 -0
  119. package/dist/src/compiler/source-graph.js +1 -0
  120. package/dist/src/compiler/validate-artifact.d.ts +17 -0
  121. package/dist/src/compiler/validate-artifact.js +1 -0
  122. package/dist/src/compiler/workspace-resources.js +1 -1
  123. package/dist/src/connections/errors.d.ts +125 -0
  124. package/dist/src/connections/errors.js +1 -0
  125. package/dist/src/context/build-base-tool-context.d.ts +2 -2
  126. package/dist/src/context/build-callback-context.d.ts +1 -1
  127. package/dist/src/context/build-dynamic-tools.js +1 -1
  128. package/dist/src/context/dynamic-instruction-lifecycle.js +1 -1
  129. package/dist/src/context/dynamic-resolve-context.d.ts +1 -1
  130. package/dist/src/context/dynamic-skill-lifecycle.js +1 -1
  131. package/dist/src/context/dynamic-subagent-lifecycle.d.ts +0 -2
  132. package/dist/src/context/dynamic-subagent-lifecycle.js +1 -1
  133. package/dist/src/context/dynamic-tool-lifecycle.d.ts +10 -3
  134. package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
  135. package/dist/src/context/key-names.d.ts +12 -0
  136. package/dist/src/context/key-names.js +1 -0
  137. package/dist/src/context/keys.d.ts +33 -1
  138. package/dist/src/context/keys.js +1 -1
  139. package/dist/src/context/memory-event-lifecycle.d.ts +13 -0
  140. package/dist/src/context/memory-event-lifecycle.js +1 -0
  141. package/dist/src/context/memory-lifecycle.d.ts +52 -0
  142. package/dist/src/context/memory-lifecycle.js +1 -0
  143. package/dist/src/context/memory-tools.d.ts +12 -0
  144. package/dist/src/context/memory-tools.js +1 -0
  145. package/dist/src/context/providers/connection-key.d.ts +1 -1
  146. package/dist/src/context/providers/connection.d.ts +1 -1
  147. package/dist/src/context/session-context.d.ts +32 -0
  148. package/dist/src/discover/discover-agent.d.ts +0 -13
  149. package/dist/src/discover/discover-agent.js +1 -1
  150. package/dist/src/discover/discover-subagent.js +1 -1
  151. package/dist/src/discover/extensions.d.ts +6 -6
  152. package/dist/src/discover/extensions.js +1 -1
  153. package/dist/src/discover/filesystem.d.ts +2 -2
  154. package/dist/src/discover/filesystem.js +1 -1
  155. package/dist/src/discover/manifest.d.ts +9 -1
  156. package/dist/src/discover/manifest.js +1 -1
  157. package/dist/src/discover/memory.d.ts +14 -0
  158. package/dist/src/discover/memory.js +1 -0
  159. package/dist/src/discover/project.js +1 -1
  160. package/dist/src/dynamic/definition.d.ts +117 -0
  161. package/dist/src/dynamic/definition.js +1 -0
  162. package/dist/src/evals/autoevals-client.js +1 -1
  163. package/dist/src/evals/cli/eval.js +1 -1
  164. package/dist/src/evals/index.d.ts +1 -1
  165. package/dist/src/evals/match.d.ts +1 -1
  166. package/dist/src/evals/runner/reporters/console.js +1 -1
  167. package/dist/src/evals/session.d.ts +1 -1
  168. package/dist/src/evals/target.js +1 -1
  169. package/dist/src/evals/types.d.ts +1 -1
  170. package/dist/src/eve-channel/index.d.ts +12 -0
  171. package/dist/src/eve-channel/index.js +1 -0
  172. package/dist/src/eve-channel/request.d.ts +49 -0
  173. package/dist/src/eve-channel/request.js +3 -0
  174. package/dist/src/eve-channel/support.d.ts +34 -0
  175. package/dist/src/eve-channel/support.js +1 -0
  176. package/dist/src/eve-channel/types.d.ts +128 -0
  177. package/dist/src/eve-channel/types.js +1 -0
  178. package/dist/src/execution/agent-handle-dispatch.d.ts +1 -1
  179. package/dist/src/execution/agent-handle-dispatch.js +1 -1
  180. package/dist/src/execution/authorization-callback-match.d.ts +1 -1
  181. package/dist/src/execution/cancel-descendant-turns-step.js +1 -1
  182. package/dist/src/execution/compaction.js +1 -1
  183. package/dist/src/execution/connection-auth-tool-result.d.ts +1 -1
  184. package/dist/src/{runtime → execution}/connections/callback-route.d.ts +2 -20
  185. package/dist/src/execution/connections/callback-route.js +1 -0
  186. package/dist/src/execution/create-session-step.js +1 -1
  187. package/dist/src/execution/delegated-parent-notification.d.ts +2 -2
  188. package/dist/src/execution/delegated-parent-notification.js +1 -1
  189. package/dist/src/execution/delegated-parent-result.d.ts +1 -1
  190. package/dist/src/execution/delegated-parent-result.js +1 -1
  191. package/dist/src/execution/delegation-tool.d.ts +1 -1
  192. package/dist/src/execution/delegation-tool.js +1 -1
  193. package/dist/src/execution/dispatch-action-failures.d.ts +1 -1
  194. package/dist/src/execution/dispatch-runtime-actions-shared.d.ts +1 -2
  195. package/dist/src/execution/dispatch-runtime-actions-shared.js +1 -1
  196. package/dist/src/execution/dispatch-runtime-actions-step.js +1 -1
  197. package/dist/src/execution/dispatch-workflow-runtime-actions-step.d.ts +1 -1
  198. package/dist/src/execution/durable-session-migrations/turn-workflow.d.ts +1 -1
  199. package/dist/src/execution/durable-session-store.js +1 -1
  200. package/dist/src/execution/effective-output-schema.d.ts +2 -1
  201. package/dist/src/execution/eve-workflow-attributes.d.ts +6 -0
  202. package/dist/src/execution/eve-workflow-attributes.js +1 -1
  203. package/dist/src/execution/forward-turn-cancellation-step.js +1 -1
  204. package/dist/src/execution/history-view.d.ts +2 -2
  205. package/dist/src/execution/history-view.js +1 -1
  206. package/dist/src/execution/node-step.js +1 -1
  207. package/dist/src/execution/remote-agent-dispatch.d.ts +10 -8
  208. package/dist/src/execution/remote-agent-dispatch.js +1 -1
  209. package/dist/src/execution/runtime-context.js +1 -1
  210. package/dist/src/execution/sandbox/{bash-tool.d.ts → bash.d.ts} +2 -2
  211. package/dist/src/execution/sandbox/bindings/vercel-credentials.js +1 -1
  212. package/dist/src/execution/sandbox/glob-tool.js +1 -1
  213. package/dist/src/execution/sandbox/grep-tool.js +1 -1
  214. package/dist/src/execution/sandbox/{read-file-tool.d.ts → read-file.d.ts} +2 -2
  215. package/dist/src/execution/sandbox/{read-file-tool.js → read-file.js} +1 -1
  216. package/dist/src/execution/sandbox/{write-file-tool.d.ts → write-file.d.ts} +2 -2
  217. package/dist/src/execution/sandbox/write-file.js +1 -0
  218. package/dist/src/execution/session-callback-route.d.ts +2 -0
  219. package/dist/src/execution/session-callback-route.js +1 -0
  220. package/dist/src/execution/session-callback-step.js +1 -1
  221. package/dist/src/execution/session-timeout-steps.js +1 -1
  222. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  223. package/dist/src/execution/subagent-adapter.js +1 -1
  224. package/dist/src/execution/subagent-hitl-proxy.d.ts +1 -1
  225. package/dist/src/execution/subagent-invocation.d.ts +0 -3
  226. package/dist/src/execution/subagent-invocation.js +1 -1
  227. package/dist/src/execution/subagent-start-local.d.ts +1 -2
  228. package/dist/src/execution/subagent-start-local.js +1 -1
  229. package/dist/src/execution/subagent-start-remote.d.ts +1 -2
  230. package/dist/src/execution/subagent-start-remote.js +1 -1
  231. package/dist/src/execution/subagent-tool.d.ts +4 -8
  232. package/dist/src/execution/subagent-tool.js +1 -1
  233. package/dist/src/execution/subagent-usage-span.d.ts +1 -1
  234. package/dist/src/execution/task-input-response-route.d.ts +2 -0
  235. package/dist/src/execution/task-input-response-route.js +1 -0
  236. package/dist/src/execution/tasks/child/instructions.js +1 -1
  237. package/dist/src/execution/tasks/child/update.d.ts +1 -1
  238. package/dist/src/execution/tasks/child/update.js +1 -1
  239. package/dist/src/execution/tasks/parent/continuation-dispatch.d.ts +1 -1
  240. package/dist/src/execution/tasks/parent/control-shared.d.ts +1 -1
  241. package/dist/src/execution/tasks/parent/delegate.d.ts +2 -2
  242. package/dist/src/execution/tasks/parent/delegate.js +1 -1
  243. package/dist/src/execution/tasks/parent/dispatch-task-step.js +1 -1
  244. package/dist/src/execution/tasks/parent/dispatch.d.ts +3 -1
  245. package/dist/src/execution/tasks/parent/dispatch.js +1 -1
  246. package/dist/src/execution/tasks/parent/hitl-proxy-steps.js +1 -1
  247. package/dist/src/execution/tasks/parent/tool-execution.js +1 -1
  248. package/dist/src/execution/terminate-child-sessions-step.d.ts +4 -5
  249. package/dist/src/execution/terminate-child-sessions-step.js +1 -1
  250. package/dist/src/execution/tool-auth.d.ts +5 -6
  251. package/dist/src/execution/tool-auth.js +1 -1
  252. package/dist/src/execution/tools/connection-search.d.ts +1 -0
  253. package/dist/src/execution/tools/connection-search.js +2 -0
  254. package/dist/src/{runtime/framework-tools → execution/tools}/file-state.d.ts +2 -2
  255. package/dist/src/execution/tools/load-skill.d.ts +6 -0
  256. package/dist/src/execution/tools/load-skill.js +1 -0
  257. package/dist/src/{runtime/framework-tools → execution/tools}/subagent/local.d.ts +7 -7
  258. package/dist/src/execution/tools/subagent/local.js +1 -0
  259. package/dist/src/{runtime/framework-tools → execution/tools}/subagent/remote.d.ts +5 -5
  260. package/dist/src/execution/tools/subagent/remote.js +1 -0
  261. package/dist/src/execution/tools/tasks.d.ts +18 -0
  262. package/dist/src/execution/tools/tasks.js +1 -0
  263. package/dist/src/{runtime/framework-tools → execution/tools}/todo.d.ts +0 -2
  264. package/dist/src/{runtime/framework-tools → execution/tools}/todo.js +1 -2
  265. package/dist/src/execution/turn-control-protocol.js +1 -1
  266. package/dist/src/execution/web-fetch/request.js +1 -1
  267. package/dist/src/execution/wire/session-inbox-resume.js +1 -1
  268. package/dist/src/execution/wire/session-inbox-wire.v1.js +1 -1
  269. package/dist/src/execution/workflow-entry.js +1 -1
  270. package/dist/src/execution/workflow-runtime.js +1 -1
  271. package/dist/src/execution/workflow-steps.d.ts +1 -3
  272. package/dist/src/execution/workflow-steps.js +1 -1
  273. package/dist/src/execution/workflow-trace-context.js +1 -1
  274. package/dist/src/framework/host-inventory.d.ts +8 -0
  275. package/dist/src/framework/host-inventory.js +1 -0
  276. package/dist/src/framework/sources/modules/agent.d.ts +4 -0
  277. package/dist/src/framework/sources/modules/agent.js +1 -0
  278. package/dist/src/framework/sources/modules/eve-channel.d.ts +1 -0
  279. package/dist/src/framework/sources/modules/eve-channel.js +1 -0
  280. package/dist/src/framework/sources/modules/home-channel.d.ts +2 -0
  281. package/dist/src/framework/sources/modules/home-channel.js +1 -0
  282. package/dist/src/framework/sources/modules/memory-wrapper.d.ts +2 -0
  283. package/dist/src/framework/sources/modules/memory-wrapper.js +1 -0
  284. package/dist/src/framework/sources/modules/sandbox.d.ts +2 -0
  285. package/dist/src/framework/sources/modules/sandbox.js +1 -0
  286. package/dist/src/framework/sources/registry.d.ts +6 -0
  287. package/dist/src/framework/sources/registry.js +1 -0
  288. package/dist/src/harness/action-result-helpers.d.ts +1 -1
  289. package/dist/src/harness/advertised-tools.js +1 -1
  290. package/dist/src/harness/authorization.d.ts +3 -3
  291. package/dist/src/harness/background-tools.d.ts +2 -2
  292. package/dist/src/harness/channel-delivery-instrumentation.js +1 -1
  293. package/dist/src/harness/compaction.js +1 -1
  294. package/dist/src/harness/emission.d.ts +1 -1
  295. package/dist/src/harness/emission.js +1 -1
  296. package/dist/src/harness/execute-tool.d.ts +3 -3
  297. package/dist/src/{runtime/framework-tools → harness}/final-output.d.ts +1 -1
  298. package/dist/src/harness/final-output.js +1 -0
  299. package/dist/src/harness/handles/query.d.ts +1 -1
  300. package/dist/src/harness/handles/store.d.ts +8 -0
  301. package/dist/src/harness/handles/store.js +1 -1
  302. package/dist/src/harness/hitl/approval-input-requests.d.ts +1 -1
  303. package/dist/src/harness/hitl/approval-prompt.d.ts +1 -1
  304. package/dist/src/harness/hitl/pending-input-resolution.d.ts +2 -2
  305. package/dist/src/harness/hitl/question-input-requests.d.ts +1 -1
  306. package/dist/src/harness/input-extraction.d.ts +1 -1
  307. package/dist/src/harness/input-extraction.js +1 -1
  308. package/dist/src/harness/input-request-class.d.ts +1 -1
  309. package/dist/src/harness/input-request-resolution.d.ts +1 -1
  310. package/dist/src/harness/input-requests.d.ts +2 -2
  311. package/dist/src/harness/instrumentation/lifecycle.d.ts +3 -0
  312. package/dist/src/harness/instrumentation/providers.js +1 -1
  313. package/dist/src/harness/instrumentation/runtime.d.ts +2 -1
  314. package/dist/src/harness/pending-input-batches.d.ts +1 -1
  315. package/dist/src/harness/prepare-trace-context.d.ts +3 -0
  316. package/dist/src/harness/prepare-trace-context.js +1 -1
  317. package/dist/src/harness/provider-safety.d.ts +7 -0
  318. package/dist/src/harness/provider-safety.js +1 -0
  319. package/dist/src/{runtime/framework-tools/web-search.d.ts → harness/provider-tool-schemas.d.ts} +1 -9
  320. package/dist/src/harness/provider-tool-schemas.js +1 -0
  321. package/dist/src/harness/provider-tools.js +1 -1
  322. package/dist/src/harness/proxy-input-requests.d.ts +1 -1
  323. package/dist/src/harness/request-input-tool.d.ts +4 -0
  324. package/dist/src/harness/request-input-tool.js +1 -0
  325. package/dist/src/harness/runtime-actions.d.ts +1 -1
  326. package/dist/src/harness/session-limit-continuation.d.ts +1 -1
  327. package/dist/src/harness/step-hooks.d.ts +2 -0
  328. package/dist/src/harness/step-hooks.js +1 -1
  329. package/dist/src/harness/stream-actions.d.ts +1 -1
  330. package/dist/src/harness/subagent-depth.d.ts +1 -1
  331. package/dist/src/harness/tool-call-action.d.ts +1 -1
  332. package/dist/src/harness/tool-call-input-errors.d.ts +1 -1
  333. package/dist/src/harness/tool-loop.js +2 -2
  334. package/dist/src/harness/tool-model-output.d.ts +1 -1
  335. package/dist/src/harness/tools.d.ts +1 -1
  336. package/dist/src/harness/tools.js +1 -1
  337. package/dist/src/harness/types.d.ts +3 -9
  338. package/dist/src/harness/workflow-runtime-action-state.d.ts +1 -1
  339. package/dist/src/harness/workflow-subagent-limit.d.ts +1 -1
  340. package/dist/src/instrumentation/provider.d.ts +117 -0
  341. package/dist/src/instrumentation/provider.js +1 -0
  342. package/dist/src/internal/application/compiled-artifacts.js +5 -4
  343. package/dist/src/internal/application/package.js +1 -1
  344. package/dist/src/internal/authored-definition/approval.d.ts +1 -1
  345. package/dist/src/internal/authored-definition/connection.js +1 -1
  346. package/dist/src/internal/authored-definition/core.js +1 -1
  347. package/dist/src/internal/authored-definition/memory.d.ts +2 -0
  348. package/dist/src/internal/authored-definition/memory.js +1 -0
  349. package/dist/src/internal/authored-definition/schema-backed.d.ts +7 -3
  350. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  351. package/dist/src/internal/authored-definition/source-identity.d.ts +17 -0
  352. package/dist/src/internal/authored-definition/source-identity.js +1 -0
  353. package/dist/src/internal/authored-module-map-loader.d.ts +1 -5
  354. package/dist/src/internal/authored-module-map-loader.js +1 -1
  355. package/dist/src/internal/dynamic-tool-rebind.d.ts +3 -0
  356. package/dist/src/internal/dynamic-tool-rebind.js +1 -0
  357. package/dist/src/internal/helpers/markdown.js +1 -1
  358. package/dist/src/internal/invocation/agent-invocation.d.ts +2 -2
  359. package/dist/src/internal/invocation/workflow-execution.d.ts +1 -1
  360. package/dist/src/internal/invocation/workflow-execution.js +1 -1
  361. package/dist/src/internal/materialized-authored-modules.js +1 -1
  362. package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
  363. package/dist/src/internal/nitro/host/application-route-registry.d.ts +2 -41
  364. package/dist/src/internal/nitro/host/application-route-registry.js +1 -1
  365. package/dist/src/internal/nitro/host/build-extension.js +1 -1
  366. package/dist/src/internal/nitro/host/build-vercel-agent-summary.js +1 -1
  367. package/dist/src/internal/nitro/host/configure-nitro-routes.js +3 -4
  368. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  369. package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
  370. package/dist/src/internal/nitro/host/extension-capability-requirements.d.ts +2 -0
  371. package/dist/src/internal/nitro/host/extension-capability-requirements.js +1 -1
  372. package/dist/src/internal/nitro/host/start-development-server.js +2 -2
  373. package/dist/src/internal/nitro/host/start-production-server.js +3 -3
  374. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.d.ts +9 -215
  375. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
  376. package/dist/src/internal/nitro/routes/agent-info/load-agent-info-data.d.ts +2 -13
  377. package/dist/src/internal/nitro/routes/agent-info/load-agent-info-data.js +1 -1
  378. package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
  379. package/dist/src/internal/nitro/routes/channel-route-context.d.ts +5 -0
  380. package/dist/src/internal/nitro/routes/channel-route-context.js +1 -1
  381. package/dist/src/internal/nitro/routes/index.d.ts +0 -9
  382. package/dist/src/internal/nitro/routes/index.js +2 -1
  383. package/dist/src/internal/nitro/routes/info.js +1 -1
  384. package/dist/src/internal/nitro/routes/runtime-stack.d.ts +5 -5
  385. package/dist/src/internal/nitro/routes/runtime-stack.js +1 -1
  386. package/dist/src/internal/programmatic-source-loader.d.ts +2 -0
  387. package/dist/src/internal/programmatic-source-loader.js +1 -0
  388. package/dist/src/internal/runtime-registry.d.ts +3 -4
  389. package/dist/src/protocol/message.d.ts +3 -3
  390. package/dist/src/protocol/routes.d.ts +2 -0
  391. package/dist/src/protocol/routes.js +1 -1
  392. package/dist/src/public/agents/auth.d.ts +10 -6
  393. package/dist/src/public/agents/auth.js +1 -1
  394. package/dist/src/public/channels/auth.d.ts +1 -1
  395. package/dist/src/public/channels/auth.js +1 -1
  396. package/dist/src/public/channels/discord/discordChannel.js +1 -1
  397. package/dist/src/public/channels/discord/hitl.d.ts +1 -1
  398. package/dist/src/public/channels/discord/hitl.js +1 -1
  399. package/dist/src/public/channels/discord/inbound.d.ts +1 -0
  400. package/dist/src/public/channels/discord/inbound.js +1 -1
  401. package/dist/src/public/channels/eve.d.ts +1 -139
  402. package/dist/src/public/channels/eve.js +1 -3
  403. package/dist/src/public/channels/github/dispatch.d.ts +5 -0
  404. package/dist/src/public/channels/github/dispatch.js +1 -1
  405. package/dist/src/public/channels/github/githubChannel.js +1 -1
  406. package/dist/src/public/channels/github/inbound.d.ts +2 -0
  407. package/dist/src/public/channels/github/inbound.js +1 -1
  408. package/dist/src/public/channels/index.d.ts +1 -1
  409. package/dist/src/public/channels/index.js +1 -1
  410. package/dist/src/public/channels/linear/hitl.d.ts +1 -1
  411. package/dist/src/public/channels/linear/inbound.js +1 -1
  412. package/dist/src/public/channels/mcp.js +1 -1
  413. package/dist/src/public/channels/slack/action-status.d.ts +1 -1
  414. package/dist/src/public/channels/slack/hitl.d.ts +1 -1
  415. package/dist/src/public/channels/slack/hitl.js +1 -1
  416. package/dist/src/public/channels/slack/inbound.d.ts +9 -0
  417. package/dist/src/public/channels/slack/inbound.js +1 -1
  418. package/dist/src/public/channels/slack/interactions.js +1 -1
  419. package/dist/src/public/channels/slack/model-context.d.ts +3 -1
  420. package/dist/src/public/channels/slack/model-context.js +2 -2
  421. package/dist/src/public/channels/slack/session-operations.d.ts +1 -1
  422. package/dist/src/public/channels/slack/slackChannel.d.ts +1 -1
  423. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  424. package/dist/src/public/channels/teams/hitl.d.ts +1 -1
  425. package/dist/src/public/channels/teams/hitl.js +1 -1
  426. package/dist/src/public/channels/teams/inbound.d.ts +2 -0
  427. package/dist/src/public/channels/teams/inbound.js +1 -1
  428. package/dist/src/public/channels/teams/teamsChannel.js +1 -1
  429. package/dist/src/public/channels/teams/verify.js +1 -1
  430. package/dist/src/public/channels/telegram/api.d.ts +15 -0
  431. package/dist/src/public/channels/telegram/api.js +2 -2
  432. package/dist/src/public/channels/telegram/authorization-callback.d.ts +10 -0
  433. package/dist/src/public/channels/telegram/authorization-callback.js +1 -0
  434. package/dist/src/public/channels/telegram/authorization.d.ts +19 -0
  435. package/dist/src/public/channels/telegram/authorization.js +3 -0
  436. package/dist/src/public/channels/telegram/defaults.d.ts +1 -0
  437. package/dist/src/public/channels/telegram/defaults.js +3 -3
  438. package/dist/src/public/channels/telegram/hitl.d.ts +1 -1
  439. package/dist/src/public/channels/telegram/hitl.js +1 -1
  440. package/dist/src/public/channels/telegram/inbound.d.ts +1 -0
  441. package/dist/src/public/channels/telegram/inbound.js +1 -1
  442. package/dist/src/public/channels/telegram/index.d.ts +1 -1
  443. package/dist/src/public/channels/telegram/index.js +1 -1
  444. package/dist/src/public/channels/telegram/state.d.ts +6 -0
  445. package/dist/src/public/channels/telegram/state.js +1 -0
  446. package/dist/src/public/channels/telegram/telegramChannel.d.ts +11 -0
  447. package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
  448. package/dist/src/public/connections/errors.d.ts +1 -125
  449. package/dist/src/public/connections/errors.js +1 -1
  450. package/dist/src/public/connections/index.d.ts +2 -2
  451. package/dist/src/public/connections/index.js +1 -1
  452. package/dist/src/public/definitions/agent.d.ts +1 -1
  453. package/dist/src/public/definitions/agent.js +1 -1
  454. package/dist/src/public/definitions/approval.d.ts +2 -84
  455. package/dist/src/public/definitions/approval.js +1 -1
  456. package/dist/src/public/definitions/callback-context.d.ts +1 -32
  457. package/dist/src/public/definitions/connections/mcp.d.ts +1 -1
  458. package/dist/src/public/definitions/connections/mcp.js +1 -1
  459. package/dist/src/public/definitions/connections/openapi.d.ts +1 -1
  460. package/dist/src/public/definitions/connections/openapi.js +1 -1
  461. package/dist/src/public/definitions/connections/protocol.d.ts +1 -1
  462. package/dist/src/public/definitions/instructions.d.ts +2 -2
  463. package/dist/src/public/definitions/instructions.js +1 -1
  464. package/dist/src/public/definitions/skill.js +1 -1
  465. package/dist/src/public/index.d.ts +1 -1
  466. package/dist/src/public/instructions/index.d.ts +1 -1
  467. package/dist/src/public/instrumentation/provider.d.ts +1 -117
  468. package/dist/src/public/instrumentation/provider.js +1 -1
  469. package/dist/src/public/memory/index.d.ts +117 -0
  470. package/dist/src/public/memory/index.js +1 -0
  471. package/dist/src/public/memory/scope.d.ts +2 -0
  472. package/dist/src/public/memory/scope.js +1 -0
  473. package/dist/src/public/models/openai/chatgpt/auth.js +1 -1
  474. package/dist/src/public/next/server.js +1 -1
  475. package/dist/src/public/nuxt/dev-server.js +1 -1
  476. package/dist/src/public/sandbox/backends/default.d.ts +1 -49
  477. package/dist/src/public/sandbox/backends/default.js +1 -1
  478. package/dist/src/public/sandbox/backends/docker.d.ts +1 -14
  479. package/dist/src/public/sandbox/backends/docker.js +1 -1
  480. package/dist/src/public/sandbox/backends/just-bash.d.ts +1 -17
  481. package/dist/src/public/sandbox/backends/just-bash.js +1 -1
  482. package/dist/src/public/sandbox/backends/microsandbox.d.ts +1 -17
  483. package/dist/src/public/sandbox/backends/microsandbox.js +1 -1
  484. package/dist/src/public/sandbox/backends/vercel.d.ts +1 -30
  485. package/dist/src/public/sandbox/backends/vercel.js +1 -1
  486. package/dist/src/public/skills/index.d.ts +3 -3
  487. package/dist/src/public/skills/index.js +1 -1
  488. package/dist/src/public/sveltekit/dev-server.js +1 -1
  489. package/dist/src/public/tools/approval/index.d.ts +2 -2
  490. package/dist/src/public/tools/approval/index.js +1 -1
  491. package/dist/src/public/tools/bash.d.ts +3 -0
  492. package/dist/src/public/tools/bash.js +1 -0
  493. package/dist/src/public/tools/glob.d.ts +3 -0
  494. package/dist/src/public/tools/glob.js +1 -0
  495. package/dist/src/public/tools/grep.d.ts +3 -0
  496. package/dist/src/public/tools/grep.js +1 -0
  497. package/dist/src/public/tools/index.d.ts +6 -11
  498. package/dist/src/public/tools/index.js +1 -1
  499. package/dist/src/public/tools/load-skill.d.ts +3 -0
  500. package/dist/src/public/tools/load-skill.js +1 -0
  501. package/dist/src/public/tools/read-file.d.ts +3 -0
  502. package/dist/src/public/tools/read-file.js +1 -0
  503. package/dist/src/public/{tool-result-narrowing.d.ts → tools/result.d.ts} +2 -28
  504. package/dist/src/public/tools/result.js +1 -0
  505. package/dist/src/public/tools/sleep.d.ts +1 -0
  506. package/dist/src/public/tools/sleep.js +1 -0
  507. package/dist/src/public/tools/todo.d.ts +3 -0
  508. package/dist/src/public/tools/todo.js +1 -0
  509. package/dist/src/public/tools/web-fetch.d.ts +3 -0
  510. package/dist/src/public/tools/web-fetch.js +1 -0
  511. package/dist/src/public/tools/web-search.d.ts +3 -36
  512. package/dist/src/public/tools/web-search.js +1 -1
  513. package/dist/src/public/tools/workflow.d.ts +4 -0
  514. package/dist/src/public/tools/workflow.js +1 -0
  515. package/dist/src/public/tools/write-file.d.ts +3 -0
  516. package/dist/src/public/tools/write-file.js +1 -0
  517. package/dist/src/public/types/json.d.ts +1 -28
  518. package/dist/src/react/use-eve-agent.d.ts +1 -0
  519. package/dist/src/react/use-eve-agent.js +1 -1
  520. package/dist/src/runtime/actions/keys.d.ts +1 -1
  521. package/dist/src/runtime/actions/results.d.ts +1 -1
  522. package/dist/src/runtime/agent/bootstrap.js +1 -1
  523. package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
  524. package/dist/src/runtime/connections/authorization-tokens.d.ts +1 -1
  525. package/dist/src/runtime/connections/mcp-client.d.ts +1 -1
  526. package/dist/src/runtime/connections/mcp-client.js +1 -1
  527. package/dist/src/runtime/connections/openapi-client.d.ts +1 -1
  528. package/dist/src/runtime/connections/openapi-client.js +1 -1
  529. package/dist/src/runtime/connections/principal.d.ts +1 -1
  530. package/dist/src/runtime/connections/principal.js +1 -1
  531. package/dist/src/runtime/connections/registry-types.d.ts +11 -0
  532. package/dist/src/runtime/connections/registry.d.ts +3 -2
  533. package/dist/src/runtime/connections/resolve-authorization.d.ts +2 -2
  534. package/dist/src/runtime/connections/resolve-authorization.js +1 -1
  535. package/dist/src/runtime/connections/scoped-authorization.d.ts +2 -2
  536. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  537. package/dist/src/runtime/loaders/compile-metadata.js +1 -1
  538. package/dist/src/runtime/loaders/manifest.js +1 -1
  539. package/dist/src/runtime/prompt/compose.d.ts +0 -6
  540. package/dist/src/runtime/prompt/compose.js +1 -1
  541. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  542. package/dist/src/runtime/resolve-agent.js +1 -1
  543. package/dist/src/runtime/resolve-connection.js +1 -1
  544. package/dist/src/runtime/resolve-dynamic-tool.d.ts +1 -0
  545. package/dist/src/runtime/resolve-dynamic-tool.js +1 -1
  546. package/dist/src/runtime/resolve-memory.d.ts +4 -0
  547. package/dist/src/runtime/resolve-memory.js +1 -0
  548. package/dist/src/runtime/resolve-tool.d.ts +2 -1
  549. package/dist/src/runtime/resolve-tool.js +1 -1
  550. package/dist/src/runtime/sandbox/keys.js +1 -1
  551. package/dist/src/runtime/sandbox/registry.d.ts +4 -20
  552. package/dist/src/runtime/sandbox/registry.js +1 -1
  553. package/dist/src/runtime/sessions/compiled-agent-cache.js +1 -1
  554. package/dist/src/runtime/sessions/runtime-context-keys.js +1 -1
  555. package/dist/src/runtime/sessions/turn.d.ts +3 -1
  556. package/dist/src/runtime/skills/sandbox-access.d.ts +1 -1
  557. package/dist/src/runtime/subagents/dynamic-agent-config.js +1 -1
  558. package/dist/src/runtime/subagents/dynamic-remote-agent-config.js +1 -1
  559. package/dist/src/runtime/subagents/registry.d.ts +0 -27
  560. package/dist/src/runtime/subagents/registry.js +1 -1
  561. package/dist/src/runtime/tools/registry.js +1 -1
  562. package/dist/src/runtime/types.d.ts +18 -27
  563. package/dist/src/sandbox/backends/default.d.ts +49 -0
  564. package/dist/src/sandbox/backends/default.js +1 -0
  565. package/dist/src/sandbox/backends/docker.d.ts +14 -0
  566. package/dist/src/sandbox/backends/docker.js +1 -0
  567. package/dist/src/sandbox/backends/just-bash.d.ts +17 -0
  568. package/dist/src/sandbox/backends/just-bash.js +1 -0
  569. package/dist/src/sandbox/backends/microsandbox.d.ts +17 -0
  570. package/dist/src/sandbox/backends/microsandbox.js +1 -0
  571. package/dist/src/sandbox/backends/vercel.d.ts +30 -0
  572. package/dist/src/sandbox/backends/vercel.js +1 -0
  573. package/dist/src/services/dev-client/runtime-artifacts.d.ts +2 -0
  574. package/dist/src/services/dev-client/runtime-artifacts.js +1 -1
  575. package/dist/src/services/dev-client.d.ts +1 -1
  576. package/dist/src/setup/channel-add-conflicts.js +1 -1
  577. package/dist/src/setup/cli/select-component.js +1 -1
  578. package/dist/src/setup/connection-connector.d.ts +2 -0
  579. package/dist/src/setup/connection-connector.js +1 -1
  580. package/dist/src/setup/flows/link.js +1 -1
  581. package/dist/src/setup/flows/model-source-change.js +1 -1
  582. package/dist/src/setup/flows/model.js +1 -1
  583. package/dist/src/setup/flows/registry.js +1 -1
  584. package/dist/src/setup/integrations/runner.js +1 -1
  585. package/dist/src/setup/prompter.js +1 -1
  586. package/dist/src/setup/scaffold/create/add-to-project.js +1 -1
  587. package/dist/src/setup/scaffold/create/project.js +2 -2
  588. package/dist/src/setup/scaffold/create/web-template.d.ts +10 -8
  589. package/dist/src/setup/scaffold/create/web-template.js +364 -120
  590. package/dist/src/setup/scaffold/update/channels.js +1 -1
  591. package/dist/src/setup/scaffold/update/connections.js +1 -1
  592. package/dist/src/setup/vercel-project.js +0 -0
  593. package/dist/src/{runtime/actions/types.d.ts → shared/action-types.d.ts} +12 -12
  594. package/dist/src/{runtime/actions/types.js → shared/action-types.js} +1 -1
  595. package/dist/src/shared/agent-definition.d.ts +3 -10
  596. package/dist/src/shared/agent-definition.js +1 -1
  597. package/dist/src/{runtime/connections/types.d.ts → shared/connection-types.d.ts} +3 -13
  598. package/dist/src/{runtime/input/types.d.ts → shared/input.d.ts} +1 -1
  599. package/dist/src/shared/input.js +1 -0
  600. package/dist/src/shared/instructions-definition.d.ts +2 -0
  601. package/dist/src/shared/instructions-definition.js +1 -1
  602. package/dist/src/shared/memory-definition.d.ts +2 -0
  603. package/dist/src/shared/memory-definition.js +1 -0
  604. package/dist/src/shared/memory-state.d.ts +55 -0
  605. package/dist/src/shared/memory-state.js +1 -0
  606. package/dist/src/shared/objects.d.ts +5 -0
  607. package/dist/src/shared/objects.js +1 -0
  608. package/dist/src/shared/sandbox-definition.d.ts +1 -1
  609. package/dist/src/shared/skill-definition.d.ts +2 -0
  610. package/dist/src/shared/skill-definition.js +1 -1
  611. package/dist/src/{execution/skills/types.d.ts → shared/skill-types.d.ts} +1 -1
  612. package/dist/src/shared/skill-types.js +1 -0
  613. package/dist/src/{runtime/connections → shared}/validate-authorization.d.ts +1 -1
  614. package/dist/src/shared/vercel-project.d.ts +1 -0
  615. package/dist/src/shared/vercel-project.js +1 -1
  616. package/dist/src/svelte/index.js +1 -1
  617. package/dist/src/svelte/use-eve-agent.d.ts +8 -4
  618. package/dist/src/svelte/use-eve-agent.js +1 -1
  619. package/dist/src/tasks/json.d.ts +4 -89
  620. package/dist/src/tasks/json.js +1 -1
  621. package/dist/src/tasks/session-index.d.ts +1 -1
  622. package/dist/src/tasks/task-id.d.ts +0 -1
  623. package/dist/src/tasks/task-id.js +1 -1
  624. package/dist/src/tasks/types.d.ts +1 -1
  625. package/dist/src/tasks/types.js +1 -1
  626. package/dist/src/{public/tools/approval/approval-helpers.d.ts → tools/approval/policies.d.ts} +1 -1
  627. package/dist/src/tools/approval/policies.js +1 -0
  628. package/dist/src/tools/auth.d.ts +35 -0
  629. package/dist/src/tools/auth.js +1 -0
  630. package/dist/src/{public/definitions/tool.d.ts → tools/definition.d.ts} +42 -138
  631. package/dist/src/tools/definition.js +1 -0
  632. package/dist/src/{shared/durable-dynamic-tool-callbacks.d.ts → tools/durable-callbacks.d.ts} +1 -1
  633. package/dist/src/tools/durable-callbacks.js +1 -0
  634. package/dist/src/tools/dynamic.d.ts +68 -0
  635. package/dist/src/tools/dynamic.js +1 -0
  636. package/dist/src/tools/framework/agent-contract.d.ts +8 -0
  637. package/dist/src/tools/framework/agent-contract.js +1 -0
  638. package/dist/src/tools/framework/agent.d.ts +17 -0
  639. package/dist/src/tools/framework/agent.js +1 -0
  640. package/dist/src/tools/framework/ask-question.d.ts +50 -0
  641. package/dist/src/tools/framework/ask-question.js +1 -0
  642. package/dist/src/tools/framework/connection-search.d.ts +3 -0
  643. package/dist/src/tools/framework/connection-search.js +1 -0
  644. package/dist/src/tools/framework/task-cancel.d.ts +29 -0
  645. package/dist/src/tools/framework/task-cancel.js +1 -0
  646. package/dist/src/tools/framework/task-contract.d.ts +167 -0
  647. package/dist/src/tools/framework/task-contract.js +1 -0
  648. package/dist/src/tools/framework/task-update.d.ts +9 -0
  649. package/dist/src/tools/framework/task-update.js +1 -0
  650. package/dist/src/{public/tools/output-builders.d.ts → tools/model-output.d.ts} +41 -1
  651. package/dist/src/tools/provided/bash.d.ts +29 -0
  652. package/dist/src/tools/provided/bash.js +1 -0
  653. package/dist/src/tools/provided/glob.d.ts +26 -0
  654. package/dist/src/tools/provided/glob.js +2 -0
  655. package/dist/src/{runtime/framework-tools → tools/provided}/grep.d.ts +10 -10
  656. package/dist/src/tools/provided/grep.js +2 -0
  657. package/dist/src/tools/provided/load-skill.d.ts +2 -0
  658. package/dist/src/tools/provided/load-skill.js +1 -0
  659. package/dist/src/tools/provided/read-file.d.ts +27 -0
  660. package/dist/src/tools/provided/read-file.js +2 -0
  661. package/dist/src/{public/tools/sleep/index.d.ts → tools/provided/sleep.d.ts} +3 -3
  662. package/dist/src/tools/provided/sleep.js +1 -0
  663. package/dist/src/tools/provided/todo.d.ts +8 -0
  664. package/dist/src/tools/provided/todo.js +2 -0
  665. package/dist/src/{runtime/framework-tools → tools/provided}/web-fetch.d.ts +5 -2
  666. package/dist/src/tools/provided/web-fetch.js +2 -0
  667. package/dist/src/tools/provided/web-search.d.ts +39 -0
  668. package/dist/src/tools/provided/web-search.js +1 -0
  669. package/dist/src/tools/provided/write-file.d.ts +23 -0
  670. package/dist/src/tools/provided/write-file.js +2 -0
  671. package/dist/src/tools/workflow.d.ts +37 -0
  672. package/dist/src/tools/workflow.js +1 -0
  673. package/dist/src/tracing/agent-action-instrumentation.js +1 -1
  674. package/dist/src/tracing/agent-approval-instrumentation.js +1 -1
  675. package/dist/src/tracing/agent-channel-delivery-instrumentation.js +1 -1
  676. package/dist/src/tracing/agent-otel-provider.js +2 -2
  677. package/dist/src/tracing/agent-otel-session-context.d.ts +1 -1
  678. package/dist/src/tracing/agent-otel-session-context.js +1 -1
  679. package/dist/src/tracing/agent-span-id-generator.d.ts +1 -0
  680. package/dist/src/tracing/agent-span-id-generator.js +1 -1
  681. package/dist/src/tracing/agent-trace-context-store.d.ts +1 -1
  682. package/dist/src/tracing/agent-trace-context-store.js +1 -1
  683. package/dist/src/tracing/agent-trace-span-processor.js +1 -1
  684. package/dist/src/tracing/agent-trace-state.d.ts +2 -6
  685. package/dist/src/tracing/agent-trace-state.js +1 -1
  686. package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
  687. package/dist/src/tracing/local-trace-reader.d.ts +1 -3
  688. package/dist/src/tracing/local-trace-reader.js +1 -1
  689. package/dist/src/tracing/otel-declaration.d.ts +1 -2
  690. package/dist/src/tracing/otel-registration.js +1 -1
  691. package/dist/src/tracing/sampled-trace.d.ts +10 -2
  692. package/dist/src/tracing/sampled-trace.js +1 -1
  693. package/dist/src/vue/index.js +1 -1
  694. package/dist/src/vue/use-eve-agent.d.ts +8 -4
  695. package/dist/src/vue/use-eve-agent.js +1 -1
  696. package/docs/agent-config.md +16 -4
  697. package/docs/channels/chat-sdk.mdx +1 -1
  698. package/docs/channels/discord.mdx +5 -1
  699. package/docs/channels/eve.mdx +19 -3
  700. package/docs/channels/github.mdx +2 -0
  701. package/docs/channels/linear.mdx +1 -1
  702. package/docs/channels/overview.mdx +1 -1
  703. package/docs/channels/slack.mdx +2 -0
  704. package/docs/channels/teams.mdx +1 -1
  705. package/docs/channels/telegram.mdx +2 -0
  706. package/docs/concepts/built-in-tools.md +30 -21
  707. package/docs/concepts/context-control.md +7 -0
  708. package/docs/concepts/default-harness.md +8 -0
  709. package/docs/concepts/sessions-runs-and-streaming.md +5 -3
  710. package/docs/concepts/state.md +8 -1
  711. package/docs/connections/overview.mdx +1 -1
  712. package/docs/extensions.md +8 -4
  713. package/docs/getting-started.mdx +9 -9
  714. package/docs/guides/auth-and-route-protection.md +3 -3
  715. package/docs/guides/client/output-schema.mdx +2 -2
  716. package/docs/guides/client/overview.mdx +4 -2
  717. package/docs/guides/dynamic-capabilities.md +3 -2
  718. package/docs/guides/frontend/nuxt.mdx +4 -3
  719. package/docs/guides/frontend/overview.mdx +21 -18
  720. package/docs/guides/frontend/sveltekit.mdx +4 -3
  721. package/docs/guides/frontend/use-eve-agent-svelte.mdx +5 -4
  722. package/docs/guides/frontend/use-eve-agent-vue.mdx +5 -4
  723. package/docs/guides/instrumentation.md +1 -0
  724. package/docs/guides/remote-agents.md +37 -18
  725. package/docs/memory.md +255 -0
  726. package/docs/meta.json +1 -0
  727. package/docs/patterns/multi-tenant-approvals.md +1 -1
  728. package/docs/patterns/multi-tenant-memory.md +108 -136
  729. package/docs/reference/cli.md +2 -4
  730. package/docs/reference/typescript-api.md +35 -31
  731. package/docs/sandbox.mdx +1 -1
  732. package/docs/subagents/index.mdx +11 -28
  733. package/docs/tools/human-in-the-loop.md +43 -2
  734. package/docs/tools/overview.mdx +1 -1
  735. package/package.json +68 -8
  736. package/dist/src/compiler/normalize-extension.d.ts +0 -80
  737. package/dist/src/compiler/normalize-extension.js +0 -1
  738. package/dist/src/execution/sandbox/write-file-tool.js +0 -1
  739. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response-from-manifest.d.ts +0 -9
  740. package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response-from-manifest.js +0 -1
  741. package/dist/src/internal/nitro/routes/health.d.ts +0 -14
  742. package/dist/src/internal/nitro/routes/health.js +0 -1
  743. package/dist/src/node_modules/.pnpm/picocolors@1.1.1/node_modules/picocolors/picocolors.js +0 -1
  744. package/dist/src/public/definitions/tool.js +0 -1
  745. package/dist/src/public/tool-result-narrowing.js +0 -1
  746. package/dist/src/public/tools/approval/approval-helpers.js +0 -1
  747. package/dist/src/public/tools/defaults.d.ts +0 -46
  748. package/dist/src/public/tools/defaults.js +0 -1
  749. package/dist/src/public/tools/define-bash-tool.d.ts +0 -21
  750. package/dist/src/public/tools/define-bash-tool.js +0 -1
  751. package/dist/src/public/tools/define-glob-tool.d.ts +0 -22
  752. package/dist/src/public/tools/define-glob-tool.js +0 -1
  753. package/dist/src/public/tools/define-grep-tool.d.ts +0 -22
  754. package/dist/src/public/tools/define-grep-tool.js +0 -1
  755. package/dist/src/public/tools/define-read-file-tool.d.ts +0 -21
  756. package/dist/src/public/tools/define-read-file-tool.js +0 -1
  757. package/dist/src/public/tools/define-write-file-tool.d.ts +0 -22
  758. package/dist/src/public/tools/define-write-file-tool.js +0 -1
  759. package/dist/src/public/tools/internal.d.ts +0 -13
  760. package/dist/src/public/tools/internal.js +0 -1
  761. package/dist/src/public/tools/sleep/index.js +0 -1
  762. package/dist/src/runtime/connections/callback-route.js +0 -1
  763. package/dist/src/runtime/framework-channels/index.d.ts +0 -6
  764. package/dist/src/runtime/framework-channels/index.js +0 -1
  765. package/dist/src/runtime/framework-tools/agent.d.ts +0 -29
  766. package/dist/src/runtime/framework-tools/agent.js +0 -1
  767. package/dist/src/runtime/framework-tools/ask-question.d.ts +0 -35
  768. package/dist/src/runtime/framework-tools/ask-question.js +0 -1
  769. package/dist/src/runtime/framework-tools/bash.d.ts +0 -24
  770. package/dist/src/runtime/framework-tools/bash.js +0 -1
  771. package/dist/src/runtime/framework-tools/connection-search-dynamic.d.ts +0 -19
  772. package/dist/src/runtime/framework-tools/connection-search-dynamic.js +0 -2
  773. package/dist/src/runtime/framework-tools/final-output.js +0 -1
  774. package/dist/src/runtime/framework-tools/glob.d.ts +0 -26
  775. package/dist/src/runtime/framework-tools/glob.js +0 -2
  776. package/dist/src/runtime/framework-tools/grep.js +0 -2
  777. package/dist/src/runtime/framework-tools/index.d.ts +0 -39
  778. package/dist/src/runtime/framework-tools/index.js +0 -1
  779. package/dist/src/runtime/framework-tools/read-file.d.ts +0 -27
  780. package/dist/src/runtime/framework-tools/read-file.js +0 -2
  781. package/dist/src/runtime/framework-tools/skill.d.ts +0 -12
  782. package/dist/src/runtime/framework-tools/skill.js +0 -1
  783. package/dist/src/runtime/framework-tools/subagent/local.js +0 -1
  784. package/dist/src/runtime/framework-tools/subagent/remote.js +0 -1
  785. package/dist/src/runtime/framework-tools/tasks.d.ts +0 -91
  786. package/dist/src/runtime/framework-tools/tasks.js +0 -1
  787. package/dist/src/runtime/framework-tools/web-fetch.js +0 -2
  788. package/dist/src/runtime/framework-tools/web-search.js +0 -1
  789. package/dist/src/runtime/framework-tools/write-file.d.ts +0 -23
  790. package/dist/src/runtime/framework-tools/write-file.js +0 -2
  791. package/dist/src/runtime/governance/auth/jwt-ecdsa.js +0 -1
  792. package/dist/src/runtime/governance/auth/jwt-hmac.js +0 -1
  793. package/dist/src/runtime/governance/auth/oidc.js +0 -1
  794. package/dist/src/runtime/input/types.js +0 -1
  795. package/dist/src/runtime/session-callback-route.d.ts +0 -6
  796. package/dist/src/runtime/session-callback-route.js +0 -1
  797. package/dist/src/runtime/task-input-response-route.d.ts +0 -5
  798. package/dist/src/runtime/task-input-response-route.js +0 -1
  799. package/dist/src/shared/durable-dynamic-tool-callbacks.js +0 -1
  800. package/dist/src/shared/dynamic-tool-definition.d.ts +0 -154
  801. package/dist/src/shared/dynamic-tool-definition.js +0 -1
  802. package/dist/src/shared/eve-server-health.d.ts +0 -5
  803. package/dist/src/shared/eve-server-health.js +0 -1
  804. package/dist/src/shared/tool-definition.d.ts +0 -89
  805. /package/dist/src/{runtime/governance → channel}/auth/http-basic.js +0 -0
  806. /package/dist/src/{runtime/governance → channel}/auth/token-claims.js +0 -0
  807. /package/dist/src/{runtime/governance → channel}/auth/types.js +0 -0
  808. /package/dist/src/{runtime/governance → channel}/auth/vercel-oidc-project.js +0 -0
  809. /package/dist/src/{runtime/governance/network → channel}/ip-allow-list.d.ts +0 -0
  810. /package/dist/src/{runtime/governance/network → channel}/ip-allow-list.js +0 -0
  811. /package/dist/src/{execution/skills/types.js → context/session-context.js} +0 -0
  812. /package/dist/src/execution/sandbox/{bash-tool.js → bash.js} +0 -0
  813. /package/dist/src/{runtime/framework-tools → execution/tools}/file-state.js +0 -0
  814. /package/dist/src/{runtime/framework-tools → execution/tools}/sleep.d.ts +0 -0
  815. /package/dist/src/{runtime/framework-tools → execution/tools}/sleep.js +0 -0
  816. /package/dist/src/execution/web-fetch/{tool.d.ts → execute.d.ts} +0 -0
  817. /package/dist/src/execution/web-fetch/{tool.js → execute.js} +0 -0
  818. /package/dist/src/{shared/tool-definition.js → runtime/connections/registry-types.js} +0 -0
  819. /package/dist/src/{runtime/connections/types.js → shared/connection-types.js} +0 -0
  820. /package/dist/src/{runtime/sessions/auth.d.ts → shared/session-auth.d.ts} +0 -0
  821. /package/dist/src/{runtime/sessions/auth.js → shared/session-auth.js} +0 -0
  822. /package/dist/src/{runtime/connections → shared}/validate-authorization.js +0 -0
  823. /package/dist/src/{public/tools/output-builders.js → tools/model-output.js} +0 -0
  824. /package/dist/src/{shared/tool-schema.d.ts → tools/schema.d.ts} +0 -0
  825. /package/dist/src/{shared/tool-schema.js → tools/schema.js} +0 -0
  826. /package/dist/src/{shared/tool-task.d.ts → tools/task.d.ts} +0 -0
  827. /package/dist/src/{shared/tool-task.js → tools/task.js} +0 -0
@@ -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,7 +1,5 @@
1
1
  import type { DurableStepResult } from "#execution/next-driver-action.js";
2
2
  import type { TurnStepInput } from "#execution/durable-session-migrations/turn-workflow.js";
3
3
  export type { TurnStepInput };
4
- /**
5
- * Runs one atomic harness step inside a durable `"use step"` boundary.
6
- */
4
+ /** Runs one atomic harness step inside a durable `"use step"` boundary. */
7
5
  export declare function turnStep(rawInput: TurnStepInput): Promise<DurableStepResult>;
@@ -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,createTurnStartedEvent,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,rebindMissingCompiledDynamicToolCallbacks,refreshDynamicSessionToolsForRuntimeRevision}from"#context/dynamic-tool-lifecycle.js";import{dispatchMemoryLifecycleEvent}from"#context/memory-event-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})]),await rebindMissingCompiledDynamicToolCallbacks({ctx:c,event:createTurnStartedEvent({sequence:y.sequence,turnId:activeTurnId(y)}),messages:_.initial.messages,resolvers:E})}}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),r=await dispatchMemoryLifecycleEvent({abortSignal:o.abortSignal,appRoot:D.agent?.metadata?.appRoot??``,ctx:c,event:e,memories:D.agent?.memories??[],messages:t,nodeId:u.nodeId??`__root__`});await dispatchStreamEventHooks({ctx:c,registry:S,event:n}),n.type!==`step.started`&&await dispatchDynamicModelEvent({ctx:c,dynamicModel:f.turnAgent.dynamicModel,event:n,messages:r,scope:{moduleMap:u.moduleMap,nodeId:u.nodeId}}),await dispatchDynamicSubagentEvent({ctx:c,resolvers:T,event:n,messages:r}),await dispatchDynamicToolEvent({ctx:c,resolvers:E,event:n,messages:r}),await dispatchDynamicSkillEvent({ctx:c,resolvers:w,event:n,messages:r}),await dispatchDynamicInstructionEvent({ctx:c,resolvers:C,event:n,messages:r})},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
+ import type { ProgrammaticModuleLoadContext } from "#compiler/source-graph.js";
2
+ export declare function loadMemoryWrapperNamespace(context: ProgrammaticModuleLoadContext): Promise<Readonly<Record<string, unknown>>>;
@@ -0,0 +1 @@
1
+ import{getAuthoredModuleExport,materializeAuthoredModuleExport}from"#internal/authored-module.js";import{normalizeMemoryDefinition}from"#internal/authored-definition/memory.js";import{createMemoryToolDynamicDefinition}from"#context/memory-tools.js";async function loadMemoryWrapperNamespace(e){let t=e.parameters.slot,n=e.parameters.memoryLogicalPath,r=e.parameters.memoryExportName,i=e.dependencies.memory;if(typeof t!=`string`||typeof n!=`string`||typeof r!=`string`||i===void 0)throw Error(`The compiled memory wrapper binding is missing its selected memory source.`);return{default:createMemoryToolDynamicDefinition(normalizeMemoryDefinition(await materializeAuthoredModuleExport(getAuthoredModuleExport(i,{exportName:r,logicalPath:n})),`Expected the memory export "${r}" from "${n}" to be created with defineMemory().`),t)}}export{loadMemoryWrapperNamespace};
@@ -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,6 @@
1
+ import { type AgentSourceRegistry, type AgentModuleBacking, type ProgrammaticModuleNamespace } from "#compiler/source-graph.js";
2
+ export declare const frameworkAgentSourceRegistry: AgentSourceRegistry;
3
+ export declare const memoryWrapperTemplate: import("#compiler/source-graph.js").RegisteredProgrammaticTemplate;
4
+ export declare function loadFrameworkProgrammaticModule(backing: Extract<AgentModuleBacking, {
5
+ readonly kind: "programmatic";
6
+ }>, dependencyNamespaces?: Readonly<Record<string, ProgrammaticModuleNamespace>>): Promise<ProgrammaticModuleNamespace>;
@@ -0,0 +1 @@
1
+ import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{createAgentSourceRegistry,defineProgrammaticAgentSource,loadProgrammaticModuleNamespace,memoizeModuleNamespaceFactories}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`)}]}),memoryWrapperTemplateSource=defineProgrammaticAgentSource({id:`eve:memory-wrapper`,revision,modules:[{logicalPath:`tools/memory-wrapper.ts`,loadNamespace:async e=>{let{loadMemoryWrapperNamespace:t}=await import(`#framework/sources/modules/memory-wrapper.js`);return await t(e)}}]}),frameworkAgentSourceRegistry=createAgentSourceRegistry([{applyTo:`all-local-nodes`,source:localDefaults},{applyTo:`root`,source:rootDefaults}],{templates:[memoryWrapperTemplateSource]}),memoryWrapperTemplate=frameworkAgentSourceRegistry.templates.get(memoryWrapperTemplateSource.id);async function loadFrameworkProgrammaticModule(e,t){return memoizeModuleNamespaceFactories(await loadProgrammaticModuleNamespace({backing:e,dependencyNamespaces:t,registries:[frameworkAgentSourceRegistry]}))}export{frameworkAgentSourceRegistry,loadFrameworkProgrammaticModule,memoryWrapperTemplate};
@@ -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};
@@ -53,7 +53,7 @@ export declare function advanceStep(state: HarnessEmissionState): HarnessEmissio
53
53
  * Emits `turn.completed` and either `session.waiting` or `session.completed`.
54
54
  * Returns updated emission state with an incremented sequence.
55
55
  */
56
- export declare function emitTurnEpilogue(emitFn: HarnessEmitFn, state: HarnessEmissionState, mode: RunMode): Promise<HarnessEmissionState>;
56
+ export declare function emitTurnEpilogue(emitFn: HarnessEmitFn, state: HarnessEmissionState, mode: RunMode, messages?: readonly import("ai").ModelMessage[]): Promise<HarnessEmissionState>;
57
57
  /**
58
58
  * Maps an AI SDK finish reason string to the eve-owned
59
59
  * {@link AssistantStepFinishReason} union. Unknown values become `"other"`.
@@ -1 +1 @@
1
- import{createActionPartialEvent,createActionResultEvent,createActionsRequestedEvent,createMessageAppendedEvent,createMessageCompletedEvent,createMessageReceivedEvent,createReasoningAppendedEvent,createReasoningCompletedEvent,createSessionCompletedEvent,createSessionFailedEvent,createSessionStartedEvent,createSessionWaitingEvent,createStepFailedEvent,createStepStartedEvent,createTurnCompletedEvent,createTurnFailedEvent,createTurnStartedEvent}from"#protocol/message.js";import{createRuntimeActionRequestFromToolCall}from"#harness/runtime-actions.js";import{hasEmptyDeliverySentinel}from"#shared/empty-delivery.js";import{createRuntimeToolResultFromStepResult,createRuntimeToolResultFromToolError,createToolResultMessagePartFromToolError}from"#harness/action-result-helpers.js";import{createInvalidToolCallInputError,isInvalidToolCall,resolveProviderToolCallRequest}from"#harness/tool-call-input-errors.js";import{createProviderStreamActionBatch}from"#harness/stream-actions.js";import{normalizeModelStreamError}from"#harness/model-call-error.js";import{createOrderedStreamEmitter}from"#harness/ordered-stream-emitter.js";import{interruptStreamOnFailure}from"#harness/interruptible-stream.js";import{isInlineAuthorizationToolResult}from"#harness/inline-tool-authorization.js";import{getHarnessEmissionState,isHarnessBetweenTurns,setHarnessEmissionState}from"#harness/emission-state.js";async function emitTurnPreamble(e,t,n,r,i){let o=`turn_${n.sequence}`;return n.sessionStarted||await e(createSessionStartedEvent({runtime:r,trace:i})),await e(createTurnStartedEvent({sequence:n.sequence,trace:i,turnId:o})),t.message!==void 0&&await e(createMessageReceivedEvent({message:t.message,sequence:n.sequence,turnId:o})),{sessionStarted:!0,sequence:n.sequence,stepIndex:0,turnId:o}}async function emitStepStarted(e,t,n,r){await e(createStepStartedEvent({modelId:n,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId}),r)}async function emitStepAndTurnFailed(e,t,n){await e(createStepFailedEvent({...n,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),await e(createTurnFailedEvent({...n,sequence:t.sequence,turnId:t.turnId}))}async function emitFailedStep(e,t,n){await emitStepAndTurnFailed(e,t,n),await e(createSessionFailedEvent(n))}async function emitRecoverableFailedTurn(e,t,n){return await emitStepAndTurnFailed(e,t,n),await e(createSessionWaitingEvent()),{sessionStarted:t.sessionStarted,sequence:t.sequence+1,stepIndex:0,turnId:``}}function advanceStep(e){return{...e,stepIndex:e.stepIndex+1}}async function emitTurnEpilogue(e,t,n){return await e(createTurnCompletedEvent({sequence:t.sequence,turnId:t.turnId})),n===`conversation`?await e(createSessionWaitingEvent()):await e(createSessionCompletedEvent()),{sessionStarted:t.sessionStarted,sequence:t.sequence+1,stepIndex:0,turnId:``}}function normalizeAssistantStepFinishReason(e){switch(e){case`content-filter`:case`error`:case`length`:case`stop`:case`tool-calls`:return e;default:return`other`}}async function emitStreamContent(e,t,n,r){let i=createOrderedStreamEmitter(e),a=createProviderStreamActionBatch({emitFn:i.emit,state:t});try{return await consumeStreamContent(i.emit,t,interruptStreamOnFailure(n,i.failureSignal),a,r)}finally{try{await a.cancel()}finally{await i.closeAndDrain()}}}async function consumeStreamContent(a,s,c,l,u){let d=``,f=``,p=`stop`,m,h=new Set,g=new Set,_=new Set,v=new Set,y=new Set,b=new Set,x=[],S=[],flushCurrentMessage=async()=>{f.length!==0&&(await a(createMessageCompletedEvent({finishReason:`tool-calls`,message:f,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId})),f=``)},emitActionRequest=async e=>{g.has(e.callId)||(f.trim().length>0&&await flushCurrentMessage(),g.add(e.callId),await a(createActionsRequestedEvent({actions:[e],sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId})))},collectProviderToolCall=async e=>{if(v.has(e.toolCallId)||(v.add(e.toolCallId),g.has(e.toolCallId)))return;g.add(e.toolCallId),f.trim().length>0&&await flushCurrentMessage();let t=resolveProviderToolCallRequest(e);if(t.toolError!==void 0){b.add(e.toolCallId),await emitActionResult(createRuntimeToolResultFromToolError(t.toolError)),y.add(e.toolCallId),S.push(createToolResultMessagePartFromToolError(t.toolError));return}l.observe(t.request)},emitActionResult=async e=>{_.has(e.callId)||(_.add(e.callId),await a(createActionResultEvent({result:e,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId})))},emitActionPartial=async t=>{await a(createActionPartialEvent({result:t,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId}))},emitToolCall=async e=>{if(isInvalidToolCall(e)){b.add(e.toolCallId);return}if(!(u===void 0||u.excludedActionToolNames.has(e.toolName)))try{await emitActionRequest(createRuntimeActionRequestFromToolCall({toolCall:e,tools:u.tools}))}catch(t){if(t instanceof TypeError){let n=createInvalidToolCallInputError({error:t,toolCall:e});b.add(e.toolCallId),f.trim().length>0&&await flushCurrentMessage(),await emitActionResult(createRuntimeToolResultFromToolError(n)),y.add(e.toolCallId),S.push(createToolResultMessagePartFromToolError(n));return}throw t}};for await(let e of c)if(m===void 0)switch(e.type){case`reasoning-delta`:await l.flush(),d+=e.text,await a(createReasoningAppendedEvent({reasoningDelta:e.text,reasoningSoFar:d,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId}));break;case`text-delta`:await l.flush(),d.trim().length>0&&(await a(createReasoningCompletedEvent({reasoning:d,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId})),d=``),f+=e.text,await a(createMessageAppendedEvent({messageDelta:e.text,messageSoFar:f,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId}));break;case`tool-call`:{let t=e;h.add(t.toolCallId),t.providerExecuted===!0?await collectProviderToolCall(t):(await l.flush(),await emitToolCall(t));break}case`tool-result`:{let t=e;if(t.preliminary===!0){t.providerExecuted!==!0&&await emitActionPartial(createRuntimeToolResultFromStepResult(t));break}if(t.providerExecuted===!0){await collectProviderToolCall({input:`input`in t?t.input:void 0,toolCallId:t.toolCallId,toolName:t.toolName}),await l.flush(),await emitActionResult(createRuntimeToolResultFromStepResult(t));break}if(h.has(e.toolCallId)){if(isInlineAuthorizationToolResult(t))break;g.has(e.toolCallId)&&(await emitActionResult(createRuntimeToolResultFromStepResult(t)),y.add(e.toolCallId));break}if(await l.flush(),await flushCurrentMessage(),isInlineAuthorizationToolResult(t)){y.add(e.toolCallId),x.push(t);break}await emitActionResult(createRuntimeToolResultFromStepResult(t)),y.add(e.toolCallId);break}case`tool-error`:{let t=e;t.providerExecuted===!0?(await collectProviderToolCall(t),await l.flush(),await emitActionResult(createRuntimeToolResultFromToolError(t))):g.has(t.toolCallId)&&(await emitActionResult(createRuntimeToolResultFromToolError(t)),y.add(t.toolCallId),S.push(createToolResultMessagePartFromToolError(t)));break}case`finish-step`:p=normalizeAssistantStepFinishReason(e.finishReason),await l.flush();break;case`error`:m=normalizeModelStreamError(e.error);break;case`abort`:throw new DOMException(e.reason??`The model stream was aborted.`,`AbortError`);default:break}if(await l.flush(),m!==void 0)throw m;return d.trim().length>0&&await a(createReasoningCompletedEvent({reasoning:d,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId})),p!==`tool-calls`&&hasEmptyDeliverySentinel(f)?await a(createMessageCompletedEvent({finishReason:p,message:null,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId})):f.trim().length>0&&await a(createMessageCompletedEvent({finishReason:p,message:f,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId})),{emittedActionCallIds:g,handledInlineToolResultCallIds:y,invalidInputToolCallIds:b,inlineAuthorizationResults:x,trailingInlineToolResultParts:S}}export{advanceStep,emitFailedStep,emitRecoverableFailedTurn,emitStepStarted,emitStreamContent,emitTurnEpilogue,emitTurnPreamble,getHarnessEmissionState,isHarnessBetweenTurns,normalizeAssistantStepFinishReason,setHarnessEmissionState};
1
+ import{createActionPartialEvent,createActionResultEvent,createActionsRequestedEvent,createMessageAppendedEvent,createMessageCompletedEvent,createMessageReceivedEvent,createReasoningAppendedEvent,createReasoningCompletedEvent,createSessionCompletedEvent,createSessionFailedEvent,createSessionStartedEvent,createSessionWaitingEvent,createStepFailedEvent,createStepStartedEvent,createTurnCompletedEvent,createTurnFailedEvent,createTurnStartedEvent}from"#protocol/message.js";import{createRuntimeActionRequestFromToolCall}from"#harness/runtime-actions.js";import{hasEmptyDeliverySentinel}from"#shared/empty-delivery.js";import{createRuntimeToolResultFromStepResult,createRuntimeToolResultFromToolError,createToolResultMessagePartFromToolError}from"#harness/action-result-helpers.js";import{createInvalidToolCallInputError,isInvalidToolCall,resolveProviderToolCallRequest}from"#harness/tool-call-input-errors.js";import{createProviderStreamActionBatch}from"#harness/stream-actions.js";import{normalizeModelStreamError}from"#harness/model-call-error.js";import{createOrderedStreamEmitter}from"#harness/ordered-stream-emitter.js";import{interruptStreamOnFailure}from"#harness/interruptible-stream.js";import{isInlineAuthorizationToolResult}from"#harness/inline-tool-authorization.js";import{getHarnessEmissionState,isHarnessBetweenTurns,setHarnessEmissionState}from"#harness/emission-state.js";async function emitTurnPreamble(e,t,n,r,i){let o=`turn_${n.sequence}`;return n.sessionStarted||await e(createSessionStartedEvent({runtime:r,trace:i})),await e(createTurnStartedEvent({sequence:n.sequence,trace:i,turnId:o})),t.message!==void 0&&await e(createMessageReceivedEvent({message:t.message,sequence:n.sequence,turnId:o})),{sessionStarted:!0,sequence:n.sequence,stepIndex:0,turnId:o}}async function emitStepStarted(e,t,n,r){await e(createStepStartedEvent({modelId:n,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId}),r)}async function emitStepAndTurnFailed(e,t,n){await e(createStepFailedEvent({...n,sequence:t.sequence,stepIndex:t.stepIndex,turnId:t.turnId})),await e(createTurnFailedEvent({...n,sequence:t.sequence,turnId:t.turnId}))}async function emitFailedStep(e,t,n){await emitStepAndTurnFailed(e,t,n),await e(createSessionFailedEvent(n))}async function emitRecoverableFailedTurn(e,t,n){return await emitStepAndTurnFailed(e,t,n),await e(createSessionWaitingEvent()),{sessionStarted:t.sessionStarted,sequence:t.sequence+1,stepIndex:0,turnId:``}}function advanceStep(e){return{...e,stepIndex:e.stepIndex+1}}async function emitTurnEpilogue(e,t,n,r){return await e(createTurnCompletedEvent({sequence:t.sequence,turnId:t.turnId}),r),n===`conversation`?await e(createSessionWaitingEvent()):await e(createSessionCompletedEvent()),{sessionStarted:t.sessionStarted,sequence:t.sequence+1,stepIndex:0,turnId:``}}function normalizeAssistantStepFinishReason(e){switch(e){case`content-filter`:case`error`:case`length`:case`stop`:case`tool-calls`:return e;default:return`other`}}async function emitStreamContent(e,t,n,r){let i=createOrderedStreamEmitter(e),a=createProviderStreamActionBatch({emitFn:i.emit,state:t});try{return await consumeStreamContent(i.emit,t,interruptStreamOnFailure(n,i.failureSignal),a,r)}finally{try{await a.cancel()}finally{await i.closeAndDrain()}}}async function consumeStreamContent(a,s,c,l,u){let d=``,f=``,p=`stop`,m,h=new Set,g=new Set,_=new Set,v=new Set,y=new Set,b=new Set,x=[],S=[],flushCurrentMessage=async()=>{f.length!==0&&(await a(createMessageCompletedEvent({finishReason:`tool-calls`,message:f,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId})),f=``)},emitActionRequest=async e=>{g.has(e.callId)||(f.trim().length>0&&await flushCurrentMessage(),g.add(e.callId),await a(createActionsRequestedEvent({actions:[e],sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId})))},collectProviderToolCall=async e=>{if(v.has(e.toolCallId)||(v.add(e.toolCallId),g.has(e.toolCallId)))return;g.add(e.toolCallId),f.trim().length>0&&await flushCurrentMessage();let t=resolveProviderToolCallRequest(e);if(t.toolError!==void 0){b.add(e.toolCallId),await emitActionResult(createRuntimeToolResultFromToolError(t.toolError)),y.add(e.toolCallId),S.push(createToolResultMessagePartFromToolError(t.toolError));return}l.observe(t.request)},emitActionResult=async e=>{_.has(e.callId)||(_.add(e.callId),await a(createActionResultEvent({result:e,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId})))},emitActionPartial=async t=>{await a(createActionPartialEvent({result:t,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId}))},emitToolCall=async e=>{if(isInvalidToolCall(e)){b.add(e.toolCallId);return}if(!(u===void 0||u.excludedActionToolNames.has(e.toolName)))try{await emitActionRequest(createRuntimeActionRequestFromToolCall({toolCall:e,tools:u.tools}))}catch(t){if(t instanceof TypeError){let n=createInvalidToolCallInputError({error:t,toolCall:e});b.add(e.toolCallId),f.trim().length>0&&await flushCurrentMessage(),await emitActionResult(createRuntimeToolResultFromToolError(n)),y.add(e.toolCallId),S.push(createToolResultMessagePartFromToolError(n));return}throw t}};for await(let e of c)if(m===void 0)switch(e.type){case`reasoning-delta`:await l.flush(),d+=e.text,await a(createReasoningAppendedEvent({reasoningDelta:e.text,reasoningSoFar:d,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId}));break;case`text-delta`:await l.flush(),d.trim().length>0&&(await a(createReasoningCompletedEvent({reasoning:d,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId})),d=``),f+=e.text,await a(createMessageAppendedEvent({messageDelta:e.text,messageSoFar:f,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId}));break;case`tool-call`:{let t=e;h.add(t.toolCallId),t.providerExecuted===!0?await collectProviderToolCall(t):(await l.flush(),await emitToolCall(t));break}case`tool-result`:{let t=e;if(t.preliminary===!0){t.providerExecuted!==!0&&await emitActionPartial(createRuntimeToolResultFromStepResult(t));break}if(t.providerExecuted===!0){await collectProviderToolCall({input:`input`in t?t.input:void 0,toolCallId:t.toolCallId,toolName:t.toolName}),await l.flush(),await emitActionResult(createRuntimeToolResultFromStepResult(t));break}if(h.has(e.toolCallId)){if(isInlineAuthorizationToolResult(t))break;g.has(e.toolCallId)&&(await emitActionResult(createRuntimeToolResultFromStepResult(t)),y.add(e.toolCallId));break}if(await l.flush(),await flushCurrentMessage(),isInlineAuthorizationToolResult(t)){y.add(e.toolCallId),x.push(t);break}await emitActionResult(createRuntimeToolResultFromStepResult(t)),y.add(e.toolCallId);break}case`tool-error`:{let t=e;t.providerExecuted===!0?(await collectProviderToolCall(t),await l.flush(),await emitActionResult(createRuntimeToolResultFromToolError(t))):g.has(t.toolCallId)&&(await emitActionResult(createRuntimeToolResultFromToolError(t)),y.add(t.toolCallId),S.push(createToolResultMessagePartFromToolError(t)));break}case`finish-step`:p=normalizeAssistantStepFinishReason(e.finishReason),await l.flush();break;case`error`:m=normalizeModelStreamError(e.error);break;case`abort`:throw new DOMException(e.reason??`The model stream was aborted.`,`AbortError`);default:break}if(await l.flush(),m!==void 0)throw m;return d.trim().length>0&&await a(createReasoningCompletedEvent({reasoning:d,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId})),p!==`tool-calls`&&hasEmptyDeliverySentinel(f)?await a(createMessageCompletedEvent({finishReason:p,message:null,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId})):f.trim().length>0&&await a(createMessageCompletedEvent({finishReason:p,message:f,sequence:s.sequence,stepIndex:s.stepIndex,turnId:s.turnId})),{emittedActionCallIds:g,handledInlineToolResultCallIds:y,invalidInputToolCallIds:b,inlineAuthorizationResults:x,trailingInlineToolResultParts:S}}export{advanceStep,emitFailedStep,emitRecoverableFailedTurn,emitStepStarted,emitStreamContent,emitTurnEpilogue,emitTurnPreamble,getHarnessEmissionState,isHarnessBetweenTurns,normalizeAssistantStepFinishReason,setHarnessEmissionState};
@@ -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";