eve 0.68.0 → 0.69.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1048) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/bin/eve.js +15 -0
  3. package/dist/src/_virtual/_rolldown/runtime.js +1 -1
  4. package/dist/src/approval/definition.d.ts +19 -5
  5. package/dist/src/channel/adapter.d.ts +2 -0
  6. package/dist/src/channel/auth/oidc.js +1 -1
  7. package/dist/src/channel/channel-address.d.ts +1 -4
  8. package/dist/src/channel/channel-address.js +1 -1
  9. package/dist/src/channel/channel-operations.d.ts +4 -11
  10. package/dist/src/channel/channel-operations.js +1 -1
  11. package/dist/src/channel/compiled-channel.d.ts +0 -2
  12. package/dist/src/channel/compiled-channel.js +2 -2
  13. package/dist/src/channel/cross-channel-receive.d.ts +1 -3
  14. package/dist/src/channel/cross-channel-receive.js +1 -1
  15. package/dist/src/channel/forwarded-principal.js +1 -1
  16. package/dist/src/channel/schedule-auth.d.ts +16 -0
  17. package/dist/src/channel/schedule-auth.js +1 -1
  18. package/dist/src/channel/session-callback.js +1 -1
  19. package/dist/src/channel/session.d.ts +3 -8
  20. package/dist/src/channel/session.js +1 -1
  21. package/dist/src/channel/task-card.d.ts +121 -0
  22. package/dist/src/channel/task-card.js +1 -0
  23. package/dist/src/channel/types.d.ts +12 -57
  24. package/dist/src/chunks/{use-eve-agent-DXcE_8Ja.js → use-eve-agent-D_5129A9.js} +295 -205
  25. package/dist/src/chunks/{use-eve-agent-D4HVZBjn.js → use-eve-agent-Dab2MnT2.js} +295 -205
  26. package/dist/src/cli/commands/info.d.ts +11 -0
  27. package/dist/src/cli/commands/info.js +1 -1
  28. package/dist/src/cli/commands/init-agent-workspace.js +1 -1
  29. package/dist/src/cli/commands/init.js +1 -1
  30. package/dist/src/cli/dev/command-options.d.ts +2 -2
  31. package/dist/src/cli/dev/command.js +1 -1
  32. package/dist/src/cli/dev/tui/blocks.d.ts +19 -18
  33. package/dist/src/cli/dev/tui/blocks.js +3 -3
  34. package/dist/src/cli/dev/tui/command-typeahead.d.ts +3 -6
  35. package/dist/src/cli/dev/tui/diagnostic-presentation.d.ts +10 -0
  36. package/dist/src/cli/dev/tui/diagnostic-presentation.js +3 -2
  37. package/dist/src/cli/dev/tui/prompt-placeholder.d.ts +2 -0
  38. package/dist/src/cli/dev/tui/prompt-placeholder.js +1 -0
  39. package/dist/src/cli/dev/tui/rail.d.ts +1 -1
  40. package/dist/src/cli/dev/tui/runner.d.ts +25 -2
  41. package/dist/src/cli/dev/tui/runner.js +3 -3
  42. package/dist/src/cli/dev/tui/status-line.d.ts +4 -2
  43. package/dist/src/cli/dev/tui/status-line.js +1 -1
  44. package/dist/src/cli/dev/tui/subagent-pump.d.ts +44 -52
  45. package/dist/src/cli/dev/tui/subagent-pump.js +1 -1
  46. package/dist/src/cli/dev/tui/task-activity.d.ts +55 -0
  47. package/dist/src/cli/dev/tui/task-activity.js +1 -0
  48. package/dist/src/cli/dev/tui/terminal-renderer.d.ts +13 -30
  49. package/dist/src/cli/dev/tui/terminal-renderer.js +11 -11
  50. package/dist/src/cli/dev/tui/theme.d.ts +1 -1
  51. package/dist/src/cli/dev/tui/theme.js +1 -1
  52. package/dist/src/cli/dev/tui/tool-block-groups.d.ts +6 -9
  53. package/dist/src/cli/dev/tui/tool-block-groups.js +1 -1
  54. package/dist/src/cli/dev/tui/tool-presentation.d.ts +16 -3
  55. package/dist/src/cli/dev/tui/tool-presentation.js +1 -1
  56. package/dist/src/cli/dev/tui/traces/trace-conversation.js +3 -1
  57. package/dist/src/cli/dev/tui/traces/trace-view.js +1 -1
  58. package/dist/src/cli/dev/tui/types.d.ts +11 -5
  59. package/dist/src/cli/dev/ui-options.d.ts +2 -2
  60. package/dist/src/cli/option-parsers.d.ts +3 -1
  61. package/dist/src/cli/option-parsers.js +1 -1
  62. package/dist/src/cli/ui/terminal-text.js +1 -1
  63. package/dist/src/client/agent-info-schema.d.ts +150 -9
  64. package/dist/src/client/agent-info-schema.js +1 -1
  65. package/dist/src/client/agent-session.d.ts +28 -0
  66. package/dist/src/client/agent-session.js +1 -0
  67. package/dist/src/client/eve-agent-store-helpers.d.ts +1 -1
  68. package/dist/src/client/eve-agent-store-helpers.js +2 -2
  69. package/dist/src/client/eve-agent-store.js +1 -1
  70. package/dist/src/client/index.d.ts +2 -1
  71. package/dist/src/client/index.js +1 -1
  72. package/dist/src/client/message-action-parts.js +1 -1
  73. package/dist/src/client/message-reducer.js +1 -1
  74. package/dist/src/client/message-task-parts.d.ts +8 -0
  75. package/dist/src/client/message-task-parts.js +1 -0
  76. package/dist/src/client/optimistic-message-submissions.js +1 -1
  77. package/dist/src/client/session-controls.d.ts +0 -1
  78. package/dist/src/client/session-utils.d.ts +10 -0
  79. package/dist/src/client/session-utils.js +1 -1
  80. package/dist/src/client/session.d.ts +8 -16
  81. package/dist/src/client/session.js +1 -1
  82. package/dist/src/client/stream-version.js +1 -1
  83. package/dist/src/client/types.d.ts +2 -4
  84. package/dist/src/compiled/.vendor-stamp.json +3 -2
  85. package/dist/src/compiled/@eve/catalog/index.js +1 -1
  86. package/dist/src/compiled/@vercel/connect/LICENSE +202 -0
  87. package/dist/src/compiled/@vercel/connect/authorization-details.d.ts +11 -0
  88. package/dist/src/compiled/@vercel/connect/authorization.d.ts +47 -0
  89. package/dist/src/compiled/@vercel/connect/connector.d.ts +32 -0
  90. package/dist/src/compiled/@vercel/connect/index.d.ts +5 -0
  91. package/dist/src/compiled/@vercel/connect/index.js +26 -0
  92. package/dist/src/compiled/@vercel/connect/installation.d.ts +48 -0
  93. package/dist/src/compiled/@vercel/connect/token.d.ts +137 -0
  94. package/dist/src/compiled/@workflow/core/runtime.js +3 -3
  95. package/dist/src/compiler/bundled-extension.d.ts +7 -1
  96. package/dist/src/compiler/bundled-extension.js +1 -1
  97. package/dist/src/compiler/default-tool-policy.d.ts +2 -2
  98. package/dist/src/compiler/default-tool-policy.js +1 -1
  99. package/dist/src/compiler/development-extensions.js +1 -1
  100. package/dist/src/compiler/extension-compatibility.d.ts +54 -18
  101. package/dist/src/compiler/extension-compatibility.js +1 -1
  102. package/dist/src/compiler/extension-mount-bindings.d.ts +5 -0
  103. package/dist/src/compiler/extension-mount-bindings.js +1 -0
  104. package/dist/src/compiler/load-binding-namespace.d.ts +10 -2
  105. package/dist/src/compiler/load-binding-namespace.js +1 -1
  106. package/dist/src/compiler/manifest.d.ts +19 -17
  107. package/dist/src/compiler/manifest.js +1 -1
  108. package/dist/src/compiler/module-lifecycle.d.ts +2 -2
  109. package/dist/src/compiler/module-lifecycle.js +1 -1
  110. package/dist/src/compiler/module-map.d.ts +1 -1
  111. package/dist/src/compiler/module-map.js +3 -3
  112. package/dist/src/compiler/normalize-manifest-helpers.d.ts +18 -1
  113. package/dist/src/compiler/normalize-manifest-helpers.js +1 -1
  114. package/dist/src/compiler/normalize-manifest-types.d.ts +2 -0
  115. package/dist/src/compiler/normalize-manifest.js +1 -1
  116. package/dist/src/compiler/normalize-subagent.js +1 -1
  117. package/dist/src/compiler/normalize-tool.js +1 -1
  118. package/dist/src/compiler/project-sources.d.ts +4 -0
  119. package/dist/src/compiler/project-sources.js +1 -1
  120. package/dist/src/compiler/remote-agent-node.js +1 -1
  121. package/dist/src/compiler/source-graph.d.ts +5 -0
  122. package/dist/src/compiler/source-graph.js +1 -1
  123. package/dist/src/computer-use/extension/lib/computer-use-sandbox.d.ts +8 -0
  124. package/dist/src/computer-use/extension/lib/computer-use-sandbox.js +3 -3
  125. package/dist/src/computer-use/extension/lib/computer-use.d.ts +2 -0
  126. package/dist/src/computer-use/extension/lib/computer-use.js +2 -1
  127. package/dist/src/computer-use/extension/tools/computer_use.js +1 -1
  128. package/dist/src/context/build-dynamic-tools.js +1 -1
  129. package/dist/src/context/dynamic-subagent-lifecycle.d.ts +5 -0
  130. package/dist/src/context/dynamic-subagent-lifecycle.js +1 -1
  131. package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
  132. package/dist/src/context/dynamic-tool-metadata.d.ts +1 -1
  133. package/dist/src/context/key-names.d.ts +0 -1
  134. package/dist/src/context/key-names.js +1 -1
  135. package/dist/src/context/keys.d.ts +8 -14
  136. package/dist/src/context/keys.js +1 -1
  137. package/dist/src/context/memory-lifecycle.js +1 -1
  138. package/dist/src/context/memory-tools.d.ts +0 -1
  139. package/dist/src/context/provider.d.ts +1 -3
  140. package/dist/src/context/run-step.d.ts +2 -3
  141. package/dist/src/context/run-step.js +1 -1
  142. package/dist/src/context/serialize.js +1 -1
  143. package/dist/src/discover/bundled-extension.js +1 -1
  144. package/dist/src/discover/discover-agent.js +1 -1
  145. package/dist/src/discover/extensions.d.ts +0 -7
  146. package/dist/src/discover/extensions.js +1 -1
  147. package/dist/src/discover/manifest.d.ts +4 -0
  148. package/dist/src/evals/assertions/run.d.ts +4 -3
  149. package/dist/src/evals/assertions/run.js +1 -1
  150. package/dist/src/evals/index.d.ts +1 -1
  151. package/dist/src/evals/match.d.ts +4 -4
  152. package/dist/src/evals/mock-model.js +1 -1
  153. package/dist/src/evals/runner/derive-run-facts.d.ts +3 -3
  154. package/dist/src/evals/runner/derive-run-facts.js +1 -1
  155. package/dist/src/evals/runner/reporters/assertion-scores.d.ts +19 -0
  156. package/dist/src/evals/runner/reporters/assertion-scores.js +1 -0
  157. package/dist/src/evals/runner/reporters/braintrust.js +1 -1
  158. package/dist/src/evals/runner/reporters/datadog-client.d.ts +123 -0
  159. package/dist/src/evals/runner/reporters/datadog-client.js +4 -0
  160. package/dist/src/evals/runner/reporters/datadog.d.ts +9 -98
  161. package/dist/src/evals/runner/reporters/datadog.js +2 -3
  162. package/dist/src/evals/session-content.js +1 -1
  163. package/dist/src/evals/session.d.ts +4 -4
  164. package/dist/src/evals/session.js +2 -2
  165. package/dist/src/evals/types.d.ts +18 -15
  166. package/dist/src/eve-channel/create-request.d.ts +5 -4
  167. package/dist/src/eve-channel/create-request.js +1 -1
  168. package/dist/src/eve-channel/index.d.ts +0 -9
  169. package/dist/src/eve-channel/index.js +1 -1
  170. package/dist/src/eve-channel/request.d.ts +3 -7
  171. package/dist/src/eve-channel/request.js +1 -1
  172. package/dist/src/eve-channel/support.d.ts +15 -5
  173. package/dist/src/eve-channel/support.js +1 -1
  174. package/dist/src/eve-channel/turn-policy-request.d.ts +2 -0
  175. package/dist/src/eve-channel/turn-policy-request.js +1 -0
  176. package/dist/src/eve-channel/types.d.ts +4 -0
  177. package/dist/src/execution/agent-sessions/context.d.ts +60 -0
  178. package/dist/src/execution/agent-sessions/context.js +1 -0
  179. package/dist/src/{subagents/remote-dispatch.d.ts → execution/agent-sessions/remote.d.ts} +17 -40
  180. package/dist/src/execution/agent-sessions/remote.js +1 -0
  181. package/dist/src/execution/agent-sessions/requests.d.ts +20 -0
  182. package/dist/src/execution/agent-sessions/requests.js +1 -0
  183. package/dist/src/execution/agent-sessions/session.d.ts +12 -0
  184. package/dist/src/execution/agent-sessions/session.js +1 -0
  185. package/dist/src/execution/agent-sessions/steps.d.ts +59 -0
  186. package/dist/src/execution/agent-sessions/steps.js +1 -0
  187. package/dist/src/execution/agent-sessions/target.d.ts +45 -0
  188. package/dist/src/execution/agent-sessions/target.js +1 -0
  189. package/dist/src/execution/agent-sessions/usage.d.ts +18 -0
  190. package/dist/src/execution/agent-sessions/usage.js +1 -0
  191. package/dist/src/execution/authorization-callback-match.d.ts +2 -4
  192. package/dist/src/execution/authorization-callback-match.js +1 -1
  193. package/dist/src/execution/cancel-descendant-turns-step.d.ts +1 -5
  194. package/dist/src/execution/cancel-descendant-turns-step.js +1 -1
  195. package/dist/src/execution/cancelled-model-call-batch.js +1 -1
  196. package/dist/src/execution/connection-announcement.d.ts +7 -0
  197. package/dist/src/execution/connection-announcement.js +4 -0
  198. package/dist/src/execution/continuation-conflict-step.d.ts +2 -3
  199. package/dist/src/execution/continuation-conflict-step.js +1 -1
  200. package/dist/src/execution/coordination-dispatch-shared.d.ts +9 -27
  201. package/dist/src/execution/coordination-dispatch-shared.js +1 -1
  202. package/dist/src/execution/coordination-dispatch-step.d.ts +3 -2
  203. package/dist/src/execution/coordination-dispatch-step.js +1 -1
  204. package/dist/src/execution/create-session-step.d.ts +0 -1
  205. package/dist/src/execution/create-session-step.js +1 -1
  206. package/dist/src/execution/deliver-payloads.js +1 -1
  207. package/dist/src/execution/durable-session-store.d.ts +0 -1
  208. package/dist/src/execution/dynamic-connections.js +1 -1
  209. package/dist/src/execution/dynamic-workflow/program-step.js +1 -1
  210. package/dist/src/execution/dynamic-workflow/schema.d.ts +1 -3
  211. package/dist/src/execution/dynamic-workflow/schema.js +1 -1
  212. package/dist/src/execution/dynamic-workflow/tool.d.ts +1 -1
  213. package/dist/src/execution/dynamic-workflow/tool.js +1 -1
  214. package/dist/src/execution/dynamic-workflow/workflow.js +1 -1
  215. package/dist/src/execution/forward-session-input.d.ts +4 -0
  216. package/dist/src/execution/forward-session-input.js +1 -0
  217. package/dist/src/execution/legacy-remote-agent/protocol.d.ts +41 -0
  218. package/dist/src/execution/legacy-remote-agent/protocol.js +1 -0
  219. package/dist/src/execution/legacy-session/authorization.js +1 -1
  220. package/dist/src/execution/legacy-session/completion-step.js +1 -1
  221. package/dist/src/execution/legacy-session/inbox.js +1 -1
  222. package/dist/src/execution/legacy-session/input.js +1 -1
  223. package/dist/src/execution/legacy-session/interrupt-step.js +1 -1
  224. package/dist/src/execution/model-call-batching.js +1 -1
  225. package/dist/src/execution/node-step.d.ts +1 -1
  226. package/dist/src/execution/node-step.js +1 -1
  227. package/dist/src/execution/proxied-deliver-step.d.ts +9 -6
  228. package/dist/src/execution/proxied-deliver-step.js +1 -1
  229. package/dist/src/execution/publish-session-events.d.ts +130 -0
  230. package/dist/src/execution/publish-session-events.js +1 -0
  231. package/dist/src/execution/route-child-delivery.d.ts +5 -4
  232. package/dist/src/execution/route-child-delivery.js +1 -3
  233. package/dist/src/execution/runtime-context.js +1 -1
  234. package/dist/src/execution/sandbox/prewarm.js +1 -1
  235. package/dist/src/execution/session/admission.d.ts +1 -12
  236. package/dist/src/execution/session/admission.js +1 -1
  237. package/dist/src/execution/session/entry-input.d.ts +0 -2
  238. package/dist/src/execution/session/entry.js +1 -1
  239. package/dist/src/execution/session/finalization.js +1 -1
  240. package/dist/src/execution/session/handoff-steps.d.ts +13 -2
  241. package/dist/src/execution/session/handoff-steps.js +1 -1
  242. package/dist/src/execution/session/handoff.d.ts +17 -3
  243. package/dist/src/execution/session/handoff.js +1 -1
  244. package/dist/src/execution/session/input-queue.d.ts +27 -28
  245. package/dist/src/execution/session/input-queue.js +1 -1
  246. package/dist/src/execution/session/next-input.d.ts +5 -0
  247. package/dist/src/execution/session/next-input.js +1 -1
  248. package/dist/src/execution/session/pending-turn-state.d.ts +2 -0
  249. package/dist/src/execution/session/pending-turn-state.js +1 -1
  250. package/dist/src/execution/session/principal.d.ts +14 -0
  251. package/dist/src/execution/session/principal.js +1 -0
  252. package/dist/src/execution/session/program.js +1 -1
  253. package/dist/src/execution/session/route-selected-delivery.js +1 -1
  254. package/dist/src/execution/session/state-cursor.d.ts +17 -15
  255. package/dist/src/execution/session/state-cursor.js +1 -1
  256. package/dist/src/execution/session/state-delta.d.ts +33 -0
  257. package/dist/src/execution/session/state-delta.js +1 -0
  258. package/dist/src/execution/session/timeout-steps.js +1 -1
  259. package/dist/src/execution/session/turn-event-handler.d.ts +2 -2
  260. package/dist/src/execution/session/turn-event-handler.js +1 -1
  261. package/dist/src/execution/session/turn-step-result.d.ts +1 -3
  262. package/dist/src/execution/session/turn-step-result.js +1 -1
  263. package/dist/src/execution/session/turn-step-types.d.ts +24 -15
  264. package/dist/src/execution/session/turn-step.d.ts +2 -2
  265. package/dist/src/execution/session/turn-step.js +1 -1
  266. package/dist/src/execution/session/turn-waiting-step.d.ts +4 -0
  267. package/dist/src/execution/session/turn-waiting-step.js +1 -0
  268. package/dist/src/execution/session/turn.d.ts +33 -2
  269. package/dist/src/execution/session/turn.js +1 -1
  270. package/dist/src/execution/session-callback-request.js +1 -1
  271. package/dist/src/execution/session-event-stream.d.ts +33 -0
  272. package/dist/src/execution/session-event-stream.js +1 -0
  273. package/dist/src/execution/session-inbox/inbox.d.ts +2 -0
  274. package/dist/src/execution/session-inbox/inbox.js +1 -1
  275. package/dist/src/execution/session-inbox/protocol.js +1 -1
  276. package/dist/src/execution/session-inbox/release-step.js +1 -1
  277. package/dist/src/execution/session-inbox/resume.js +1 -1
  278. package/dist/src/execution/session-workflow-tool-run.d.ts +11 -2
  279. package/dist/src/execution/session-workflow-tool-run.js +1 -1
  280. package/dist/src/execution/session.d.ts +0 -1
  281. package/dist/src/execution/session.js +2 -2
  282. package/dist/src/execution/settle-cancelled-turn-step.d.ts +21 -9
  283. package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
  284. package/dist/src/execution/stable-workflow-names.d.ts +0 -1
  285. package/dist/src/execution/stable-workflow-names.js +1 -1
  286. package/dist/src/execution/tasks/calls.d.ts +42 -0
  287. package/dist/src/execution/tasks/calls.js +1 -0
  288. package/dist/src/execution/tasks/model-step.d.ts +58 -0
  289. package/dist/src/execution/tasks/model-step.js +1 -0
  290. package/dist/src/execution/tasks/render.d.ts +66 -0
  291. package/dist/src/execution/tasks/render.js +8 -0
  292. package/dist/src/execution/tasks/session.d.ts +19 -0
  293. package/dist/src/execution/tasks/session.js +1 -0
  294. package/dist/src/execution/tasks/start.d.ts +34 -0
  295. package/dist/src/execution/tasks/start.js +1 -0
  296. package/dist/src/execution/tasks/steps.d.ts +31 -0
  297. package/dist/src/execution/tasks/steps.js +1 -0
  298. package/dist/src/execution/tasks/table.d.ts +192 -0
  299. package/dist/src/execution/tasks/table.js +1 -0
  300. package/dist/src/execution/tasks/task-id-input.d.ts +19 -0
  301. package/dist/src/execution/tasks/task-id-input.js +1 -0
  302. package/dist/src/execution/tasks/tool-entry-point.d.ts +11 -0
  303. package/dist/src/execution/tasks/tool-entry-point.js +1 -0
  304. package/dist/src/execution/tasks/workflow-target.d.ts +2 -0
  305. package/dist/src/execution/tasks/workflow-target.js +1 -1
  306. package/dist/src/execution/terminal-session-completion-step.js +1 -1
  307. package/dist/src/execution/terminal-session-failure-step.js +1 -1
  308. package/dist/src/execution/terminate-child-sessions-step.d.ts +2 -9
  309. package/dist/src/execution/terminate-child-sessions-step.js +1 -1
  310. package/dist/src/execution/tool-auth.js +1 -1
  311. package/dist/src/execution/tools/agent-router-workflow.d.ts +1 -1
  312. package/dist/src/execution/tools/agent-router-workflow.js +1 -1
  313. package/dist/src/execution/tools/agent-router.d.ts +1 -1
  314. package/dist/src/execution/tools/agent-router.js +1 -1
  315. package/dist/src/execution/tools/connection-approval.d.ts +25 -0
  316. package/dist/src/execution/tools/connection-approval.js +1 -0
  317. package/dist/src/execution/tools/connection-search-rank.d.ts +21 -0
  318. package/dist/src/execution/tools/connection-search-rank.js +1 -0
  319. package/dist/src/execution/tools/connection-target.d.ts +13 -0
  320. package/dist/src/execution/tools/connection-target.js +1 -0
  321. package/dist/src/execution/tools/connection-tools.d.ts +10 -0
  322. package/dist/src/execution/tools/connection-tools.js +2 -0
  323. package/dist/src/execution/tools/load-skill.js +1 -1
  324. package/dist/src/execution/tools/workflow/answer.d.ts +7 -4
  325. package/dist/src/execution/tools/workflow/answer.js +1 -1
  326. package/dist/src/execution/tools/workflow/ask.d.ts +73 -10
  327. package/dist/src/execution/tools/workflow/ask.js +1 -1
  328. package/dist/src/execution/tools/workflow/body.d.ts +60 -19
  329. package/dist/src/execution/tools/workflow/body.js +1 -1
  330. package/dist/src/execution/tools/workflow/cancel.d.ts +7 -2
  331. package/dist/src/execution/tools/workflow/cancel.js +1 -1
  332. package/dist/src/execution/tools/workflow/emit-workflow-tool-run-report-step.d.ts +10 -4
  333. package/dist/src/execution/tools/workflow/emit-workflow-tool-run-report-step.js +1 -1
  334. package/dist/src/execution/tools/workflow/{background.d.ts → harness-definition.d.ts} +6 -6
  335. package/dist/src/execution/tools/workflow/harness-definition.js +1 -0
  336. package/dist/src/execution/tools/workflow/interrupt.d.ts +6 -0
  337. package/dist/src/execution/tools/workflow/interrupt.js +1 -0
  338. package/dist/src/execution/tools/workflow/messages.d.ts +135 -10
  339. package/dist/src/execution/tools/workflow/messages.js +1 -1
  340. package/dist/src/execution/tools/workflow/owner-inbox.js +1 -1
  341. package/dist/src/execution/tools/workflow/owner.d.ts +15 -4
  342. package/dist/src/execution/tools/workflow/owner.js +1 -1
  343. package/dist/src/execution/tools/workflow/serve.d.ts +3 -0
  344. package/dist/src/execution/tools/workflow/serve.js +1 -0
  345. package/dist/src/execution/tools/workflow/start.d.ts +18 -11
  346. package/dist/src/execution/tools/workflow/start.js +1 -1
  347. package/dist/src/execution/tools/workflow/step-execution.js +1 -1
  348. package/dist/src/execution/tools/workflow/step.js +1 -1
  349. package/dist/src/execution/tools/workflow/types.d.ts +0 -10
  350. package/dist/src/execution/tools/workflow/withdraw-step.d.ts +31 -0
  351. package/dist/src/execution/tools/workflow/withdraw-step.js +1 -0
  352. package/dist/src/execution/tools/workflow/workflow-owner-blocking.d.ts +3 -5
  353. package/dist/src/execution/tools/workflow/workflow-owner-blocking.js +1 -1
  354. package/dist/src/execution/tools/workflow/workflow.d.ts +3 -3
  355. package/dist/src/execution/tools/workflow/workflow.js +1 -1
  356. package/dist/src/execution/web-fetch/request.js +1 -1
  357. package/dist/src/execution/workflow-callback-url.d.ts +0 -5
  358. package/dist/src/execution/workflow-callback-url.js +1 -1
  359. package/dist/src/execution/workflow-runtime.d.ts +3 -5
  360. package/dist/src/execution/workflow-runtime.js +1 -1
  361. package/dist/src/execution/workflow-webhook-route.js +1 -1
  362. package/dist/src/extensions/code/extension/lib/connect-authentication.js +1 -1
  363. package/dist/src/extensions/code/extension/lib/github-shell.js +1 -1
  364. package/dist/src/extensions/code/extension/lib/prwatch-github.js +1 -1
  365. package/dist/src/framework/sources/modules/agent.d.ts +1 -0
  366. package/dist/src/framework/sources/modules/agent.js +1 -1
  367. package/dist/src/framework/sources/registry.js +1 -1
  368. package/dist/src/harness/action-presentation.js +1 -1
  369. package/dist/src/harness/action-result-helpers.d.ts +1 -0
  370. package/dist/src/harness/action-result-helpers.js +1 -1
  371. package/dist/src/harness/advertised-tools.d.ts +1 -1
  372. package/dist/src/harness/advertised-tools.js +1 -1
  373. package/dist/src/harness/announcements.d.ts +22 -0
  374. package/dist/src/harness/announcements.js +1 -0
  375. package/dist/src/harness/approval-candidates.d.ts +10 -2
  376. package/dist/src/harness/approval-candidates.js +1 -1
  377. package/dist/src/harness/approval-delivery-coordinator.d.ts +4 -5
  378. package/dist/src/harness/approval-delivery-coordinator.js +1 -1
  379. package/dist/src/harness/approval-recheck.d.ts +7 -0
  380. package/dist/src/harness/approval-recheck.js +1 -0
  381. package/dist/src/harness/authorization-event-fields.d.ts +13 -0
  382. package/dist/src/harness/authorization-event-fields.js +1 -0
  383. package/dist/src/harness/authorization.d.ts +2 -1
  384. package/dist/src/harness/authorization.js +1 -1
  385. package/dist/src/harness/coordination.d.ts +31 -27
  386. package/dist/src/harness/coordination.js +1 -1
  387. package/dist/src/harness/current-messages.d.ts +6 -1
  388. package/dist/src/harness/current-messages.js +1 -1
  389. package/dist/src/harness/emission.d.ts +7 -1
  390. package/dist/src/harness/emission.js +1 -1
  391. package/dist/src/harness/execute-tool.d.ts +4 -15
  392. package/dist/src/harness/hitl/session-limit-input-requests.d.ts +2 -0
  393. package/dist/src/harness/hitl/session-limit-input-requests.js +1 -1
  394. package/dist/src/harness/input-request-resolution.d.ts +5 -2
  395. package/dist/src/harness/input-request-resolution.js +1 -1
  396. package/dist/src/harness/input-requests.js +1 -1
  397. package/dist/src/harness/messages.d.ts +11 -3
  398. package/dist/src/harness/messages.js +1 -1
  399. package/dist/src/harness/nested-actions.d.ts +23 -0
  400. package/dist/src/harness/nested-actions.js +1 -0
  401. package/dist/src/harness/pending-input-batches.d.ts +8 -6
  402. package/dist/src/harness/pending-input-batches.js +1 -1
  403. package/dist/src/harness/provider-tool-history.d.ts +7 -2
  404. package/dist/src/harness/provider-tool-history.js +1 -1
  405. package/dist/src/harness/proxy-input-requests.d.ts +41 -36
  406. package/dist/src/harness/proxy-input-requests.js +1 -1
  407. package/dist/src/harness/session-limit-enforcement.js +1 -1
  408. package/dist/src/harness/stale-input-responses.js +1 -1
  409. package/dist/src/harness/step-hooks.js +1 -1
  410. package/dist/src/harness/tool-loop.js +2 -2
  411. package/dist/src/harness/tool-model-output.js +1 -1
  412. package/dist/src/harness/tool-presentation.js +1 -1
  413. package/dist/src/harness/tools.d.ts +1 -5
  414. package/dist/src/harness/tools.js +1 -1
  415. package/dist/src/harness/turn-tag-state.d.ts +6 -5
  416. package/dist/src/harness/types.d.ts +7 -15
  417. package/dist/src/harness/workflow-dispatch.d.ts +30 -0
  418. package/dist/src/harness/workflow-dispatch.js +1 -0
  419. package/dist/src/harness/workflow-tool-runs.d.ts +5 -65
  420. package/dist/src/harness/workflow-tool-runs.js +1 -1
  421. package/dist/src/instrumentation/lifecycle.d.ts +3 -0
  422. package/dist/src/instrumentation/native-events.d.ts +0 -7
  423. package/dist/src/instrumentation/native-events.js +1 -1
  424. package/dist/src/instrumentation/runtime.d.ts +1 -4
  425. package/dist/src/instrumentation/runtime.js +1 -1
  426. package/dist/src/instrumentation/state.d.ts +0 -6
  427. package/dist/src/instrumentation/state.js +1 -1
  428. package/dist/src/internal/application/package.js +1 -1
  429. package/dist/src/internal/authored-definition/schema-backed.d.ts +10 -0
  430. package/dist/src/internal/authored-definition/schema-backed.js +1 -1
  431. package/dist/src/internal/authored-module-loader.d.ts +12 -6
  432. package/dist/src/internal/authored-module-loader.js +2 -2
  433. package/dist/src/internal/authored-module-map-loader.js +1 -1
  434. package/dist/src/internal/authored-package-boundary.d.ts +3 -0
  435. package/dist/src/internal/authored-package-boundary.js +1 -1
  436. package/dist/src/internal/bundler/extension-mount-plugin.d.ts +14 -0
  437. package/dist/src/internal/bundler/extension-mount-plugin.js +1 -0
  438. package/dist/src/internal/bundler/extension-scope-plugin.d.ts +8 -11
  439. package/dist/src/internal/bundler/extension-scope-plugin.js +2 -3
  440. package/dist/src/internal/invocation/workflow-execution.d.ts +2 -2
  441. package/dist/src/internal/invocation/workflow-execution.js +1 -1
  442. package/dist/src/internal/mount-state.d.ts +1 -0
  443. package/dist/src/internal/mount-state.js +1 -0
  444. package/dist/src/internal/nitro/host/build-application.js +1 -1
  445. package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
  446. package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
  447. package/dist/src/internal/nitro/host/extension-capability-requirements.js +1 -1
  448. package/dist/src/internal/nitro/host/workspace-extensions.js +1 -1
  449. package/dist/src/internal/nitro/routes/runtime-stack.js +1 -1
  450. package/dist/src/internal/node-esm-compat-banner.js +1 -1
  451. package/dist/src/internal/workflow/development-world-client.js +1 -1
  452. package/dist/src/internal/workflow-bundle/authored-workflow-directives.d.ts +4 -3
  453. package/dist/src/internal/workflow-bundle/authored-workflow-directives.js +1 -1
  454. package/dist/src/internal/workflow-bundle/builder.js +1 -1
  455. package/dist/src/internal/workflow-bundle/dynamic-capability-transform-plugin.js +1 -1
  456. package/dist/src/internal/workflow-bundle/workflow-builders.js +1 -1
  457. package/dist/src/models/auto.d.ts +6 -0
  458. package/dist/src/models/auto.js +2 -2
  459. package/dist/src/protocol/message-version.d.ts +1 -0
  460. package/dist/src/protocol/message-version.js +1 -1
  461. package/dist/src/protocol/message.d.ts +126 -67
  462. package/dist/src/protocol/message.js +2 -2
  463. package/dist/src/protocol/remote-agent-protocol.d.ts +16 -0
  464. package/dist/src/protocol/remote-agent-protocol.js +1 -0
  465. package/dist/src/protocol/routes.d.ts +0 -6
  466. package/dist/src/protocol/routes.js +1 -1
  467. package/dist/src/protocol/task-tools.d.ts +21 -0
  468. package/dist/src/protocol/task-tools.js +1 -0
  469. package/dist/src/public/channels/auth.js +1 -1
  470. package/dist/src/public/channels/chat-sdk/chatSdkChannel.d.ts +25 -16
  471. package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +2 -2
  472. package/dist/src/public/channels/chat-sdk/index.d.ts +1 -1
  473. package/dist/src/public/channels/chat-sdk/input-actions.d.ts +8 -0
  474. package/dist/src/public/channels/chat-sdk/input-actions.js +1 -0
  475. package/dist/src/public/channels/index.d.ts +1 -1
  476. package/dist/src/public/channels/linq/linqChannel.js +1 -1
  477. package/dist/src/public/channels/photon/photonIMessageChannel.js +1 -1
  478. package/dist/src/public/channels/slack/action-status.d.ts +11 -12
  479. package/dist/src/public/channels/slack/action-status.js +1 -1
  480. package/dist/src/public/channels/slack/api.js +1 -1
  481. package/dist/src/public/channels/slack/attachments.js +1 -1
  482. package/dist/src/public/channels/slack/auth.d.ts +3 -0
  483. package/dist/src/public/channels/slack/auth.js +1 -1
  484. package/dist/src/public/channels/slack/connections.d.ts +6 -6
  485. package/dist/src/public/channels/slack/connections.js +1 -1
  486. package/dist/src/public/channels/slack/defaults.d.ts +13 -19
  487. package/dist/src/public/channels/slack/defaults.js +4 -4
  488. package/dist/src/public/channels/slack/hitl.d.ts +22 -13
  489. package/dist/src/public/channels/slack/hitl.js +2 -2
  490. package/dist/src/public/channels/slack/index.d.ts +4 -3
  491. package/dist/src/public/channels/slack/index.js +1 -1
  492. package/dist/src/public/channels/slack/input-response.d.ts +1 -5
  493. package/dist/src/public/channels/slack/input-response.js +1 -1
  494. package/dist/src/public/channels/slack/interaction-cards.js +1 -1
  495. package/dist/src/public/channels/slack/interactions.js +1 -1
  496. package/dist/src/public/channels/slack/renderers.d.ts +76 -0
  497. package/dist/src/public/channels/slack/renderers.js +1 -0
  498. package/dist/src/public/channels/slack/session-operations.d.ts +6 -0
  499. package/dist/src/public/channels/slack/session-operations.js +1 -1
  500. package/dist/src/public/channels/slack/slackChannel.d.ts +47 -103
  501. package/dist/src/public/channels/slack/slackChannel.js +1 -1
  502. package/dist/src/public/channels/slack/task-card.d.ts +24 -0
  503. package/dist/src/public/channels/slack/task-card.js +1 -0
  504. package/dist/src/public/channels/telegram/hitl.d.ts +7 -1
  505. package/dist/src/public/channels/telegram/hitl.js +2 -1
  506. package/dist/src/public/channels/telegram/state.js +1 -1
  507. package/dist/src/public/channels/telegram/telegramChannel.d.ts +5 -0
  508. package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
  509. package/dist/src/public/definitions/channel.d.ts +6 -1
  510. package/dist/src/public/definitions/channel.js +1 -1
  511. package/dist/src/public/definitions/connections/mcp.d.ts +4 -6
  512. package/dist/src/public/definitions/connections/openapi.d.ts +7 -8
  513. package/dist/src/public/definitions/extension.d.ts +2 -2
  514. package/dist/src/public/definitions/extension.js +1 -1
  515. package/dist/src/public/definitions/hook.d.ts +4 -4
  516. package/dist/src/public/definitions/state.d.ts +4 -2
  517. package/dist/src/public/definitions/state.js +1 -1
  518. package/dist/src/public/memory/index.d.ts +0 -1
  519. package/dist/src/public/models/openai/index.d.ts +1 -1
  520. package/dist/src/public/models/openai/index.js +1 -1
  521. package/dist/src/public/schedules/index.d.ts +1 -0
  522. package/dist/src/public/schedules/index.js +1 -1
  523. package/dist/src/public/server/index.d.ts +28 -0
  524. package/dist/src/public/server/index.js +1 -0
  525. package/dist/src/public/tools/index.d.ts +3 -2
  526. package/dist/src/public/tools/index.js +1 -1
  527. package/dist/src/public/tools/no-reply.d.ts +1 -0
  528. package/dist/src/public/tools/no-reply.js +1 -0
  529. package/dist/src/runtime/agent/bootstrap-model-utils.d.ts +6 -7
  530. package/dist/src/runtime/agent/bootstrap-model-utils.js +1 -1
  531. package/dist/src/runtime/agent/bootstrap.d.ts +0 -1
  532. package/dist/src/runtime/agent/bootstrap.js +1 -1
  533. package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
  534. package/dist/src/runtime/agent/mock-model-fixtures.d.ts +1 -1
  535. package/dist/src/runtime/agent/mock-model-fixtures.js +2 -2
  536. package/dist/src/runtime/channels/registry.js +1 -1
  537. package/dist/src/runtime/connections/mcp-client.d.ts +1 -9
  538. package/dist/src/runtime/connections/mcp-client.js +1 -1
  539. package/dist/src/runtime/connections/openapi-client.js +1 -1
  540. package/dist/src/runtime/connections/scoped-authorization.d.ts +1 -1
  541. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  542. package/dist/src/runtime/connections/tool-result.d.ts +27 -0
  543. package/dist/src/runtime/connections/tool-result.js +2 -0
  544. package/dist/src/runtime/connections/tool-signature.d.ts +14 -0
  545. package/dist/src/runtime/connections/tool-signature.js +1 -0
  546. package/dist/src/runtime/local-dev-capability.js +1 -1
  547. package/dist/src/runtime/prompt/compose.d.ts +1 -3
  548. package/dist/src/runtime/prompt/compose.js +3 -3
  549. package/dist/src/runtime/resolve-agent-graph.js +1 -1
  550. package/dist/src/runtime/resolve-tool.js +1 -1
  551. package/dist/src/runtime/sessions/compiled-agent-cache.js +1 -1
  552. package/dist/src/runtime/sessions/runtime-context-keys.js +1 -1
  553. package/dist/src/runtime/sessions/turn.d.ts +1 -16
  554. package/dist/src/runtime/subagents/dynamic-remote-agent-config.js +1 -1
  555. package/dist/src/runtime/subagents/registry.js +1 -1
  556. package/dist/src/runtime/subagents/workflow-reference.d.ts +6 -3
  557. package/dist/src/runtime/subagents/workflow-reference.js +1 -1
  558. package/dist/src/runtime/subagents/workflow.d.ts +12 -6
  559. package/dist/src/runtime/subagents/workflow.js +1 -1
  560. package/dist/src/runtime/tools/registry.js +1 -1
  561. package/dist/src/self-modification/extension/classify-registry-item.d.ts +3 -0
  562. package/dist/src/self-modification/extension/classify-registry-item.js +1 -1
  563. package/dist/src/self-modification/extension/subagents/agent/agent.d.ts +1 -1
  564. package/dist/src/self-modification/extension/subagents/agent/agent.js +1 -1
  565. package/dist/src/self-modification/extension/subagents/agent/instructions.js +7 -7
  566. package/dist/src/self-modification/extension/subagents/agent/tools/registry_add.js +1 -1
  567. package/dist/src/self-modification/extension/subagents/agent/tools/search_registry.d.ts +2 -0
  568. package/dist/src/self-modification/extension/subagents/agent/tools/search_registry.js +1 -1
  569. package/dist/src/self-modification/scaffold.d.ts +2 -0
  570. package/dist/src/self-modification/scaffold.js +7 -0
  571. package/dist/src/self-modification/setup.js +1 -7
  572. package/dist/src/setup/boxes/select-model.js +1 -1
  573. package/dist/src/setup/integrations/shopify/templates.d.ts +1 -1
  574. package/dist/src/setup/integrations/shopify/templates.js +31 -19
  575. package/dist/src/setup/scaffold/create/agent-paths.d.ts +5 -0
  576. package/dist/src/setup/scaffold/create/agent-paths.js +1 -0
  577. package/dist/src/setup/scaffold/create/instructions-template.d.ts +1 -0
  578. package/dist/src/setup/scaffold/create/instructions-template.js +8 -0
  579. package/dist/src/setup/scaffold/create/project.js +3 -10
  580. package/dist/src/shared/action-request-name.d.ts +3 -0
  581. package/dist/src/shared/action-request-name.js +1 -0
  582. package/dist/src/shared/action-types.d.ts +49 -21
  583. package/dist/src/shared/action-types.js +1 -1
  584. package/dist/src/shared/agent-definition.d.ts +0 -7
  585. package/dist/src/shared/chatgpt-model.d.ts +1 -1
  586. package/dist/src/shared/chatgpt-model.js +1 -1
  587. package/dist/src/shared/connection-types.d.ts +2 -8
  588. package/dist/src/shared/default-agent-model.d.ts +10 -1
  589. package/dist/src/shared/default-agent-model.js +1 -1
  590. package/dist/src/shared/extension-mount.d.ts +2 -0
  591. package/dist/src/shared/extension-mount.js +1 -0
  592. package/dist/src/shared/format-duration.d.ts +2 -0
  593. package/dist/src/shared/format-duration.js +1 -0
  594. package/dist/src/shared/input.d.ts +1 -0
  595. package/dist/src/shared/memory-state.d.ts +1 -0
  596. package/dist/src/shared/memory-state.js +1 -1
  597. package/dist/src/shared/model-helper.d.ts +2 -2
  598. package/dist/src/shared/model-helper.js +1 -1
  599. package/dist/src/shared/model-summary.d.ts +2 -6
  600. package/dist/src/shared/model-summary.js +1 -1
  601. package/dist/src/shared/presentation-text.d.ts +5 -0
  602. package/dist/src/shared/presentation-text.js +1 -1
  603. package/dist/src/shared/serialized-observability-state.d.ts +0 -4
  604. package/dist/src/shared/serialized-observability-state.js +1 -1
  605. package/dist/src/shared/value-delta.d.ts +39 -0
  606. package/dist/src/shared/value-delta.js +1 -0
  607. package/dist/src/subagents/adapter-state.d.ts +0 -2
  608. package/dist/src/subagents/adapter-state.js +1 -1
  609. package/dist/src/subagents/adapter.js +1 -1
  610. package/dist/src/subagents/callback-route.js +1 -1
  611. package/dist/src/subagents/event-proxy-step.d.ts +16 -29
  612. package/dist/src/subagents/event-proxy-step.js +1 -1
  613. package/dist/src/subagents/hitl-proxy.d.ts +35 -17
  614. package/dist/src/subagents/hitl-proxy.js +1 -1
  615. package/dist/src/subagents/invocation.d.ts +1 -2
  616. package/dist/src/subagents/parent-notification.d.ts +2 -1
  617. package/dist/src/subagents/parent-notification.js +1 -1
  618. package/dist/src/subagents/token-budget.d.ts +8 -9
  619. package/dist/src/subagents/token-budget.js +1 -1
  620. package/dist/src/subagents/tool.d.ts +6 -12
  621. package/dist/src/subagents/tool.js +1 -1
  622. package/dist/src/svelte/index.js +1 -1
  623. package/dist/src/svelte/use-eve-agent.js +1 -1
  624. package/dist/src/tools/behavior.d.ts +5 -5
  625. package/dist/src/tools/definition.d.ts +50 -14
  626. package/dist/src/tools/definition.js +1 -1
  627. package/dist/src/tools/durable-callbacks.d.ts +1 -1
  628. package/dist/src/tools/dynamic.d.ts +6 -0
  629. package/dist/src/tools/framework/agent-contract.d.ts +2 -5
  630. package/dist/src/tools/framework/agent-contract.js +1 -1
  631. package/dist/src/tools/framework/agent.d.ts +2 -5
  632. package/dist/src/tools/framework/agent.js +1 -1
  633. package/dist/src/tools/framework/connection-tools.d.ts +3 -0
  634. package/dist/src/tools/framework/connection-tools.js +1 -0
  635. package/dist/src/tools/provided/agent-router.d.ts +6 -3
  636. package/dist/src/tools/provided/agent-router.js +1 -1
  637. package/dist/src/{execution/tools → tools/provided}/ask-question-workflow.d.ts +3 -4
  638. package/dist/src/tools/provided/ask-question-workflow.js +1 -0
  639. package/dist/src/tools/provided/ask-question.d.ts +20 -5
  640. package/dist/src/tools/provided/ask-question.js +2 -1
  641. package/dist/src/tools/provided/interrupted.d.ts +18 -0
  642. package/dist/src/tools/provided/interrupted.js +1 -0
  643. package/dist/src/tools/provided/no-reply.d.ts +19 -0
  644. package/dist/src/tools/provided/no-reply.js +1 -0
  645. package/dist/src/tools/provided/sleep-workflow.d.ts +4 -0
  646. package/dist/src/tools/provided/sleep-workflow.js +1 -0
  647. package/dist/src/tools/provided/sleep.d.ts +11 -5
  648. package/dist/src/tools/provided/sleep.js +1 -1
  649. package/dist/src/tools/provided/task-cancel.d.ts +6 -0
  650. package/dist/src/tools/provided/task-cancel.js +1 -0
  651. package/dist/src/tools/provided/task-wait.d.ts +9 -0
  652. package/dist/src/tools/provided/task-wait.js +1 -0
  653. package/dist/src/tools/provided/workflow.d.ts +2 -2
  654. package/dist/src/tools/provided/workflow.js +1 -1
  655. package/dist/src/tools/schema-emission.d.ts +23 -0
  656. package/dist/src/tools/schema-emission.js +1 -0
  657. package/dist/src/tools/schema.d.ts +22 -8
  658. package/dist/src/tools/schema.js +1 -1
  659. package/dist/src/tools/workflow-definition.d.ts +187 -85
  660. package/dist/src/tools/workflow-definition.js +1 -1
  661. package/dist/src/tools/workflow-entry-point.d.ts +3 -0
  662. package/dist/src/tools/workflow-entry-point.js +1 -0
  663. package/dist/src/tracing/agent-action-instrumentation.d.ts +1 -3
  664. package/dist/src/tracing/agent-action-instrumentation.js +1 -1
  665. package/dist/src/tracing/agent-invocation-coordinator.d.ts +9 -18
  666. package/dist/src/tracing/agent-invocation-coordinator.js +1 -1
  667. package/dist/src/tracing/agent-otel-content.d.ts +0 -2
  668. package/dist/src/tracing/agent-otel-content.js +3 -3
  669. package/dist/src/tracing/agent-otel-provider.js +2 -2
  670. package/dist/src/tracing/agent-otel-runtime-context.d.ts +20 -0
  671. package/dist/src/tracing/agent-otel-runtime-context.js +1 -1
  672. package/dist/src/tracing/agent-otel-usage.js +1 -1
  673. package/dist/src/tracing/agent-span-contract.d.ts +1 -1
  674. package/dist/src/tracing/agent-span-contract.js +1 -1
  675. package/dist/src/tracing/agent-span-id-generator.d.ts +0 -1
  676. package/dist/src/tracing/agent-span-id-generator.js +1 -1
  677. package/dist/src/tracing/agent-trace-context-codec.d.ts +1 -2
  678. package/dist/src/tracing/agent-trace-context-codec.js +1 -1
  679. package/dist/src/tracing/agent-trace-context-store.d.ts +2 -27
  680. package/dist/src/tracing/agent-trace-context-store.js +1 -1
  681. package/dist/src/tracing/agent-trace-state.d.ts +1 -19
  682. package/dist/src/tracing/content-attributes.js +1 -1
  683. package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
  684. package/dist/src/vue/index.js +1 -1
  685. package/dist/src/vue/use-eve-agent.js +1 -1
  686. package/docs/agent-config.md +36 -13
  687. package/docs/channels/chat-sdk.mdx +15 -4
  688. package/docs/channels/custom.mdx +89 -17
  689. package/docs/channels/eve.mdx +1 -1
  690. package/docs/channels/mcp.mdx +1 -1
  691. package/docs/channels/overview.mdx +14 -56
  692. package/docs/channels/slack.mdx +230 -35
  693. package/docs/channels/telegram.mdx +2 -0
  694. package/docs/concepts/built-in-tools.md +36 -28
  695. package/docs/concepts/context-control.md +2 -2
  696. package/docs/concepts/execution-model-and-durability.mdx +10 -11
  697. package/docs/concepts/sessions-runs-and-streaming.md +67 -47
  698. package/docs/connections/mcp.mdx +4 -4
  699. package/docs/connections/openapi.mdx +2 -2
  700. package/docs/connections/overview.mdx +2 -2
  701. package/docs/evals/assertions.mdx +5 -5
  702. package/docs/evals/cases.mdx +1 -1
  703. package/docs/evals/reporters.mdx +6 -4
  704. package/docs/extensions.md +11 -2
  705. package/docs/guides/client/streaming.mdx +31 -11
  706. package/docs/guides/dev-tui.md +13 -3
  707. package/docs/guides/dynamic-capabilities.md +5 -3
  708. package/docs/guides/evaluate.md +29 -2
  709. package/docs/guides/frontend/overview.mdx +5 -7
  710. package/docs/guides/hooks.md +16 -12
  711. package/docs/guides/instrumentation/instrumentation.mdx +2 -0
  712. package/docs/guides/remote-agents.md +12 -14
  713. package/docs/guides/self-modification.md +10 -0
  714. package/docs/instructions.mdx +1 -1
  715. package/docs/patterns/multi-tenant-approvals.md +1 -1
  716. package/docs/protocols/ucp.mdx +20 -16
  717. package/docs/reference/cli.md +61 -8
  718. package/docs/reference/typescript-api.md +43 -41
  719. package/docs/schedules.mdx +14 -34
  720. package/docs/subagents/index.mdx +24 -56
  721. package/docs/tools/human-in-the-loop.md +48 -13
  722. package/docs/tools/meta.json +1 -1
  723. package/docs/tools/overview.mdx +79 -59
  724. package/docs/tools/tasks-upgrade.md +201 -0
  725. package/docs/tools/tasks.md +315 -0
  726. package/docs/tools/workflows.mdx +368 -154
  727. package/package.json +18 -12
  728. package/dist/src/channel/activity-renderer.d.ts +0 -21
  729. package/dist/src/channel/activity-renderer.js +0 -1
  730. package/dist/src/channel/activity-sink.d.ts +0 -2
  731. package/dist/src/channel/activity-sink.js +0 -1
  732. package/dist/src/eve-channel/activity-observer-request.d.ts +0 -7
  733. package/dist/src/eve-channel/activity-observer-request.js +0 -1
  734. package/dist/src/eve-channel/delivery-policy-request.d.ts +0 -4
  735. package/dist/src/eve-channel/delivery-policy-request.js +0 -1
  736. package/dist/src/execution/activity-cohort.d.ts +0 -20
  737. package/dist/src/execution/activity-cohort.js +0 -1
  738. package/dist/src/execution/activity-collector.d.ts +0 -12
  739. package/dist/src/execution/activity-collector.js +0 -1
  740. package/dist/src/execution/activity-events.d.ts +0 -8
  741. package/dist/src/execution/activity-events.js +0 -1
  742. package/dist/src/execution/activity-route.d.ts +0 -2
  743. package/dist/src/execution/activity-route.js +0 -1
  744. package/dist/src/execution/activity-work-id.d.ts +0 -9
  745. package/dist/src/execution/activity-work-id.js +0 -1
  746. package/dist/src/execution/activity-work.d.ts +0 -30
  747. package/dist/src/execution/activity-work.js +0 -1
  748. package/dist/src/execution/cancel-indexed-session-tasks-step.d.ts +0 -7
  749. package/dist/src/execution/cancel-indexed-session-tasks-step.js +0 -1
  750. package/dist/src/execution/dispatch-action-failures.d.ts +0 -8
  751. package/dist/src/execution/dispatch-action-failures.js +0 -1
  752. package/dist/src/execution/dispatch-start-operation.d.ts +0 -15
  753. package/dist/src/execution/dispatch-start-operation.js +0 -1
  754. package/dist/src/execution/publish-channel-event.d.ts +0 -23
  755. package/dist/src/execution/publish-channel-event.js +0 -1
  756. package/dist/src/execution/scheduled-launch-delivery.d.ts +0 -7
  757. package/dist/src/execution/scheduled-launch-delivery.js +0 -1
  758. package/dist/src/execution/session/event-sink.d.ts +0 -26
  759. package/dist/src/execution/session/event-sink.js +0 -1
  760. package/dist/src/execution/session-activity-projection.d.ts +0 -16
  761. package/dist/src/execution/session-activity-projection.js +0 -1
  762. package/dist/src/execution/session-activity-renderer-step.d.ts +0 -15
  763. package/dist/src/execution/session-activity-renderer-step.js +0 -1
  764. package/dist/src/execution/session-activity.d.ts +0 -3
  765. package/dist/src/execution/session-activity.js +0 -1
  766. package/dist/src/execution/submit-activity.d.ts +0 -7
  767. package/dist/src/execution/submit-activity.js +0 -1
  768. package/dist/src/execution/task-event-callback.d.ts +0 -12
  769. package/dist/src/execution/task-event-callback.js +0 -1
  770. package/dist/src/execution/task-input-capability.d.ts +0 -4
  771. package/dist/src/execution/task-input-capability.js +0 -1
  772. package/dist/src/execution/task-input-response-route.d.ts +0 -2
  773. package/dist/src/execution/task-input-response-route.js +0 -1
  774. package/dist/src/execution/tasks/child/notify.d.ts +0 -44
  775. package/dist/src/execution/tasks/child/notify.js +0 -1
  776. package/dist/src/execution/tasks/parent/control-shared.d.ts +0 -23
  777. package/dist/src/execution/tasks/parent/control-shared.js +0 -1
  778. package/dist/src/execution/tasks/parent/delegate.d.ts +0 -35
  779. package/dist/src/execution/tasks/parent/delegate.js +0 -1
  780. package/dist/src/execution/tasks/parent/dispatch.d.ts +0 -22
  781. package/dist/src/execution/tasks/parent/dispatch.js +0 -1
  782. package/dist/src/execution/tasks/parent/hitl-proxy-steps.d.ts +0 -27
  783. package/dist/src/execution/tasks/parent/hitl-proxy-steps.js +0 -1
  784. package/dist/src/execution/tasks/parent/run-parent.d.ts +0 -58
  785. package/dist/src/execution/tasks/parent/run-parent.js +0 -1
  786. package/dist/src/execution/tasks/parent/subagent-task-projection.d.ts +0 -26
  787. package/dist/src/execution/tasks/parent/subagent-task-projection.js +0 -1
  788. package/dist/src/execution/tasks/parent/task-cancel.d.ts +0 -12
  789. package/dist/src/execution/tasks/parent/task-cancel.js +0 -1
  790. package/dist/src/execution/tasks/parent/tool-execution.d.ts +0 -45
  791. package/dist/src/execution/tasks/parent/tool-execution.js +0 -1
  792. package/dist/src/execution/terminal-session-event.d.ts +0 -13
  793. package/dist/src/execution/terminal-session-event.js +0 -1
  794. package/dist/src/execution/tools/ask-question-workflow.js +0 -1
  795. package/dist/src/execution/tools/ask-question.d.ts +0 -19
  796. package/dist/src/execution/tools/ask-question.js +0 -2
  797. package/dist/src/execution/tools/connection-search.d.ts +0 -2
  798. package/dist/src/execution/tools/connection-search.js +0 -2
  799. package/dist/src/execution/tools/sleep-workflow.d.ts +0 -3
  800. package/dist/src/execution/tools/sleep-workflow.js +0 -1
  801. package/dist/src/execution/tools/sleep.d.ts +0 -10
  802. package/dist/src/execution/tools/sleep.js +0 -1
  803. package/dist/src/execution/tools/subagent/accept-event-step.d.ts +0 -7
  804. package/dist/src/execution/tools/subagent/accept-event-step.js +0 -1
  805. package/dist/src/execution/tools/subagent/emit-event-step.d.ts +0 -12
  806. package/dist/src/execution/tools/subagent/emit-event-step.js +0 -1
  807. package/dist/src/execution/tools/subagent/invoke-agent.d.ts +0 -42
  808. package/dist/src/execution/tools/subagent/invoke-agent.js +0 -1
  809. package/dist/src/execution/tools/subagent/invoke-preparation.d.ts +0 -44
  810. package/dist/src/execution/tools/subagent/invoke-preparation.js +0 -1
  811. package/dist/src/execution/tools/subagent/invoke-step.d.ts +0 -64
  812. package/dist/src/execution/tools/subagent/invoke-step.js +0 -1
  813. package/dist/src/execution/tools/subagent/receipt-identity.d.ts +0 -11
  814. package/dist/src/execution/tools/subagent/receipt-identity.js +0 -1
  815. package/dist/src/execution/tools/subagent/start.d.ts +0 -51
  816. package/dist/src/execution/tools/subagent/start.js +0 -1
  817. package/dist/src/execution/tools/subagent/steer.d.ts +0 -13
  818. package/dist/src/execution/tools/subagent/steer.js +0 -1
  819. package/dist/src/execution/tools/subagent/task-agent-requests.d.ts +0 -24
  820. package/dist/src/execution/tools/subagent/task-agent-requests.js +0 -1
  821. package/dist/src/execution/tools/subagent/task-cancel.d.ts +0 -10
  822. package/dist/src/execution/tools/subagent/task-cancel.js +0 -1
  823. package/dist/src/execution/tools/tasks.d.ts +0 -3
  824. package/dist/src/execution/tools/tasks.js +0 -1
  825. package/dist/src/execution/tools/workflow/background.js +0 -1
  826. package/dist/src/execution/tools/workflow/workflow-owner-background.d.ts +0 -14
  827. package/dist/src/execution/tools/workflow/workflow-owner-background.js +0 -1
  828. package/dist/src/harness/background-tools.d.ts +0 -45
  829. package/dist/src/harness/background-tools.js +0 -1
  830. package/dist/src/instrumentation/background-task-runtime.d.ts +0 -18
  831. package/dist/src/instrumentation/background-task-runtime.js +0 -1
  832. package/dist/src/node_modules/.pnpm/@vercel_cli-config@0.3.0/node_modules/@vercel/cli-config/dist/index.js +0 -21
  833. package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.1/node_modules/@vercel/cli-exec/dist/envpath.js +0 -1
  834. package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.1/node_modules/@vercel/cli-exec/dist/errors.js +0 -2
  835. package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.1/node_modules/@vercel/cli-exec/dist/errutils.js +0 -1
  836. package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.1/node_modules/@vercel/cli-exec/dist/exec.js +0 -1
  837. package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.1/node_modules/@vercel/cli-exec/dist/fsutils.js +0 -1
  838. package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.1/node_modules/@vercel/cli-exec/dist/index.js +0 -1
  839. package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.1/node_modules/@vercel/cli-exec/dist/lookup.js +0 -1
  840. package/dist/src/node_modules/.pnpm/@vercel_cli-exec@1.0.1/node_modules/@vercel/cli-exec/dist/safety.js +0 -1
  841. package/dist/src/node_modules/.pnpm/@vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494/node_modules/@vercel/connect/dist/authorization.js +0 -1
  842. package/dist/src/node_modules/.pnpm/@vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494/node_modules/@vercel/connect/dist/connector.js +0 -1
  843. package/dist/src/node_modules/.pnpm/@vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494/node_modules/@vercel/connect/dist/index.js +0 -1
  844. package/dist/src/node_modules/.pnpm/@vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494/node_modules/@vercel/connect/dist/installation.js +0 -1
  845. package/dist/src/node_modules/.pnpm/@vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494/node_modules/@vercel/connect/dist/internal/base-url.js +0 -1
  846. package/dist/src/node_modules/.pnpm/@vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494/node_modules/@vercel/connect/dist/internal/default-scopes.js +0 -1
  847. package/dist/src/node_modules/.pnpm/@vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494/node_modules/@vercel/connect/dist/internal/env.js +0 -1
  848. package/dist/src/node_modules/.pnpm/@vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494/node_modules/@vercel/connect/dist/internal/url-validation.js +0 -1
  849. package/dist/src/node_modules/.pnpm/@vercel_connect@2.3.3_@ai-sdk_mcp@2.0.52_zod@4.5.4__@auth_core@0.41.2_@chat-adapter_sla_a37674779346d612fa7d2ca9bd316494/node_modules/@vercel/connect/dist/token.js +0 -1
  850. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.9/node_modules/@vercel/oidc/dist/auth-errors.js +0 -1
  851. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.9/node_modules/@vercel/oidc/dist/exchange-vercel-oidc-token.js +0 -1
  852. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.9/node_modules/@vercel/oidc/dist/get-context.js +0 -1
  853. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.9/node_modules/@vercel/oidc/dist/get-vercel-oidc-token-sync.js +0 -1
  854. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.9/node_modules/@vercel/oidc/dist/get-vercel-oidc-token-with-refresh.js +0 -2
  855. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.9/node_modules/@vercel/oidc/dist/index.js +0 -1
  856. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.9/node_modules/@vercel/oidc/dist/oauth.js +0 -1
  857. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.9/node_modules/@vercel/oidc/dist/token-error.js +0 -1
  858. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.9/node_modules/@vercel/oidc/dist/token-io.js +0 -1
  859. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.9/node_modules/@vercel/oidc/dist/token-util.js +0 -2
  860. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.9/node_modules/@vercel/oidc/dist/token.js +0 -1
  861. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.9/node_modules/@vercel/oidc/dist/verify-vercel-oidc-token.js +0 -1
  862. package/dist/src/node_modules/.pnpm/@vercel_oidc@3.8.9/node_modules/@vercel/oidc/dist/version.js +0 -1
  863. package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/index.js +0 -1
  864. package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/enoent.js +0 -1
  865. package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js +0 -1
  866. package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/escape.js +0 -1
  867. package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js +0 -1
  868. package/dist/src/node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js +0 -1
  869. package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/index.js +0 -1
  870. package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/command.js +0 -1
  871. package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/error.js +0 -2
  872. package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/kill.js +0 -1
  873. package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/promise.js +0 -1
  874. package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/stdio.js +0 -1
  875. package/dist/src/node_modules/.pnpm/execa@5.1.1/node_modules/execa/lib/stream.js +0 -1
  876. package/dist/src/node_modules/.pnpm/get-stream@6.0.1/node_modules/get-stream/buffer-stream.js +0 -1
  877. package/dist/src/node_modules/.pnpm/get-stream@6.0.1/node_modules/get-stream/index.js +0 -1
  878. package/dist/src/node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/core.js +0 -1
  879. package/dist/src/node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/main.js +0 -1
  880. package/dist/src/node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/realtime.js +0 -1
  881. package/dist/src/node_modules/.pnpm/human-signals@2.1.0/node_modules/human-signals/build/src/signals.js +0 -1
  882. package/dist/src/node_modules/.pnpm/is-stream@2.0.1/node_modules/is-stream/index.js +0 -1
  883. package/dist/src/node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/index.js +0 -1
  884. package/dist/src/node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js +0 -1
  885. package/dist/src/node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js +0 -1
  886. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/index.js +0 -1
  887. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/compact/decrypt.js +0 -1
  888. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/compact/encrypt.js +0 -1
  889. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/flattened/decrypt.js +0 -1
  890. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/flattened/encrypt.js +0 -1
  891. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/general/decrypt.js +0 -1
  892. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwe/general/encrypt.js +0 -1
  893. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwk/embedded.js +0 -1
  894. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwk/thumbprint.js +0 -1
  895. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwks/local.js +0 -1
  896. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwks/remote.js +0 -1
  897. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/compact/sign.js +0 -1
  898. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/compact/verify.js +0 -1
  899. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/flattened/sign.js +0 -1
  900. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/flattened/verify.js +0 -1
  901. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/general/sign.js +0 -1
  902. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jws/general/verify.js +0 -1
  903. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/decrypt.js +0 -1
  904. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/encrypt.js +0 -1
  905. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/produce.js +0 -1
  906. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/sign.js +0 -1
  907. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/unsecured.js +0 -1
  908. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/jwt/verify.js +0 -1
  909. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/export.js +0 -1
  910. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/generate_key_pair.js +0 -1
  911. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/generate_secret.js +0 -1
  912. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/key/import.js +0 -1
  913. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/aesgcmkw.js +0 -1
  914. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/buffer_utils.js +0 -1
  915. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/cek.js +0 -1
  916. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/check_iv_length.js +0 -1
  917. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/check_key_type.js +0 -1
  918. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/check_p2s.js +0 -1
  919. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/crypto_key.js +0 -1
  920. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/decrypt_key_management.js +0 -1
  921. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/encrypt_key_management.js +0 -1
  922. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/epoch.js +0 -1
  923. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/invalid_key_input.js +0 -1
  924. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/is_disjoint.js +0 -1
  925. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/is_jwk.js +0 -1
  926. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/is_object.js +0 -1
  927. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/iv.js +0 -1
  928. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/jwt_claims_set.js +0 -1
  929. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/private_symbols.js +0 -1
  930. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/secs.js +0 -1
  931. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/validate_algorithms.js +0 -1
  932. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/lib/validate_crit.js +0 -1
  933. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/aeskw.js +0 -1
  934. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/asn1.js +0 -1
  935. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/base64url.js +0 -1
  936. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/cbc_tag.js +0 -1
  937. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/check_cek_length.js +0 -1
  938. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/check_key_length.js +0 -1
  939. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/ciphers.js +0 -1
  940. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/decrypt.js +0 -1
  941. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/digest.js +0 -1
  942. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/dsa_digest.js +0 -1
  943. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/ecdhes.js +0 -1
  944. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/encrypt.js +0 -1
  945. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/fetch_jwks.js +0 -1
  946. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/generate.js +0 -1
  947. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/get_named_curve.js +0 -1
  948. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/get_sign_verify_key.js +0 -1
  949. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/hmac_digest.js +0 -1
  950. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/is_key_like.js +0 -1
  951. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/is_key_object.js +0 -1
  952. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/jwk_to_key.js +0 -1
  953. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/key_to_jwk.js +0 -1
  954. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/node_key.js +0 -1
  955. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/normalize_key.js +0 -1
  956. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/pbes2kw.js +0 -1
  957. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/random.js +0 -1
  958. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/rsaes.js +0 -1
  959. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/runtime.js +0 -1
  960. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/sign.js +0 -1
  961. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/timing_safe_equal.js +0 -1
  962. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/verify.js +0 -1
  963. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/runtime/webcrypto.js +0 -1
  964. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/base64url.js +0 -1
  965. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/decode_jwt.js +0 -1
  966. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/decode_protected_header.js +0 -1
  967. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/errors.js +0 -1
  968. package/dist/src/node_modules/.pnpm/jose@5.10.0/node_modules/jose/dist/node/cjs/util/runtime.js +0 -1
  969. package/dist/src/node_modules/.pnpm/merge-stream@2.0.0/node_modules/merge-stream/index.js +0 -1
  970. package/dist/src/node_modules/.pnpm/mimic-fn@2.1.0/node_modules/mimic-fn/index.js +0 -1
  971. package/dist/src/node_modules/.pnpm/npm-run-path@4.0.1/node_modules/npm-run-path/index.js +0 -1
  972. package/dist/src/node_modules/.pnpm/onetime@5.1.2/node_modules/onetime/index.js +0 -1
  973. package/dist/src/node_modules/.pnpm/path-key@3.1.1/node_modules/path-key/index.js +0 -1
  974. package/dist/src/node_modules/.pnpm/shebang-command@2.0.0/node_modules/shebang-command/index.js +0 -1
  975. package/dist/src/node_modules/.pnpm/shebang-regex@3.0.0/node_modules/shebang-regex/index.js +0 -1
  976. package/dist/src/node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/index.js +0 -1
  977. package/dist/src/node_modules/.pnpm/signal-exit@3.0.7/node_modules/signal-exit/signals.js +0 -1
  978. package/dist/src/node_modules/.pnpm/strip-final-newline@2.0.0/node_modules/strip-final-newline/index.js +0 -2
  979. package/dist/src/node_modules/.pnpm/which@2.0.2/node_modules/which/which.js +0 -1
  980. package/dist/src/protocol/activity.d.ts +0 -112
  981. package/dist/src/protocol/activity.js +0 -1
  982. package/dist/src/protocol/agent-handle-error.d.ts +0 -13
  983. package/dist/src/protocol/agent-handle-error.js +0 -1
  984. package/dist/src/public/channels/slack/activity-plan.d.ts +0 -5
  985. package/dist/src/public/channels/slack/activity-plan.js +0 -1
  986. package/dist/src/public/channels/slack/activity.d.ts +0 -63
  987. package/dist/src/public/channels/slack/activity.js +0 -2
  988. package/dist/src/public/tools/connection-search.d.ts +0 -1
  989. package/dist/src/public/tools/connection-search.js +0 -1
  990. package/dist/src/public/tools/task-cancel.d.ts +0 -1
  991. package/dist/src/public/tools/task-cancel.js +0 -1
  992. package/dist/src/runtime/prompt/connections.d.ts +0 -9
  993. package/dist/src/runtime/prompt/connections.js +0 -2
  994. package/dist/src/shared/empty-delivery.d.ts +0 -3
  995. package/dist/src/shared/empty-delivery.js +0 -1
  996. package/dist/src/subagents/agent-handle-errors.d.ts +0 -25
  997. package/dist/src/subagents/agent-handle-errors.js +0 -1
  998. package/dist/src/subagents/callback-step.d.ts +0 -11
  999. package/dist/src/subagents/callback-step.js +0 -1
  1000. package/dist/src/subagents/continuation-bundle.d.ts +0 -13
  1001. package/dist/src/subagents/continuation-bundle.js +0 -1
  1002. package/dist/src/subagents/handle-dispatch.d.ts +0 -65
  1003. package/dist/src/subagents/handle-dispatch.js +0 -1
  1004. package/dist/src/subagents/handles/operation-id.d.ts +0 -15
  1005. package/dist/src/subagents/handles/operation-id.js +0 -1
  1006. package/dist/src/subagents/handles/prompt.d.ts +0 -52
  1007. package/dist/src/subagents/handles/prompt.js +0 -3
  1008. package/dist/src/subagents/handles/query.d.ts +0 -41
  1009. package/dist/src/subagents/handles/query.js +0 -1
  1010. package/dist/src/subagents/handles/state-key.d.ts +0 -8
  1011. package/dist/src/subagents/handles/state-key.js +0 -1
  1012. package/dist/src/subagents/handles/store.d.ts +0 -217
  1013. package/dist/src/subagents/handles/store.js +0 -1
  1014. package/dist/src/subagents/handles/transitions.d.ts +0 -103
  1015. package/dist/src/subagents/handles/transitions.js +0 -1
  1016. package/dist/src/subagents/remote-dispatch.js +0 -1
  1017. package/dist/src/subagents/start-local.d.ts +0 -29
  1018. package/dist/src/subagents/start-local.js +0 -1
  1019. package/dist/src/subagents/start-remote.d.ts +0 -21
  1020. package/dist/src/subagents/start-remote.js +0 -1
  1021. package/dist/src/tasks/delivery-context.d.ts +0 -32
  1022. package/dist/src/tasks/delivery-context.js +0 -4
  1023. package/dist/src/tasks/delivery-policy.d.ts +0 -14
  1024. package/dist/src/tasks/delivery-policy.js +0 -1
  1025. package/dist/src/tasks/json.d.ts +0 -88
  1026. package/dist/src/tasks/json.js +0 -1
  1027. package/dist/src/tasks/notification.d.ts +0 -10
  1028. package/dist/src/tasks/notification.js +0 -1
  1029. package/dist/src/tasks/task-id.d.ts +0 -31
  1030. package/dist/src/tasks/task-id.js +0 -1
  1031. package/dist/src/tasks/task-inbox-token.d.ts +0 -2
  1032. package/dist/src/tasks/task-inbox-token.js +0 -1
  1033. package/dist/src/tasks/transitions.d.ts +0 -17
  1034. package/dist/src/tasks/transitions.js +0 -1
  1035. package/dist/src/tasks/types.d.ts +0 -138
  1036. package/dist/src/tasks/types.js +0 -1
  1037. package/dist/src/tools/framework/connection-search.d.ts +0 -3
  1038. package/dist/src/tools/framework/connection-search.js +0 -1
  1039. package/dist/src/tools/framework/task-cancel.d.ts +0 -4
  1040. package/dist/src/tools/framework/task-cancel.js +0 -1
  1041. package/dist/src/tools/framework/task-contract.d.ts +0 -19
  1042. package/dist/src/tools/framework/task-contract.js +0 -1
  1043. package/dist/src/tools/native-definition.d.ts +0 -7
  1044. package/dist/src/tools/native-definition.js +0 -1
  1045. package/dist/src/tracing/agent-invocation-terminal.d.ts +0 -18
  1046. package/dist/src/tracing/agent-invocation-terminal.js +0 -1
  1047. /package/dist/src/execution/{tools/subagent → agent-sessions}/metadata.d.ts +0 -0
  1048. /package/dist/src/execution/{tools/subagent → agent-sessions}/metadata.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,101 @@
1
1
  # eve
2
2
 
3
+ ## 0.69.0
4
+
5
+ ### Minor Changes
6
+
7
+ - efa0869: `ctx.agent(name)` in a workflow tool now returns a session with that agent: `send(message, { outputSchema, signal })` returns a response whose `result()` resolves the turn's `{ data, message, status }`, and the parent stream announces each session with `agent.started`, carrying the opening call's `callId` and `turnId`, which `session.agent(started).stream()` follows. `ctx.agent(name, { message, agentId })` is removed, sessions end when the workflow run finishes, and remote agents now check a protocol version, so upgrade both deployments together.
8
+ - c8d38a8: Every agent tool is now a `serve(receive, ctx)` tool built on `ctx.agent`, so every subagent call is a resumable task: the call returns a receipt, the agent's reply arrives as a task result, and the model continues the same agent by passing `taskId` (replacing `agentId`) or stops its current turn with `task_cancel`. The `subagent.called`, `subagent.started`, `subagent.event`, and `subagent.completed` events, their hooks, the `[Agents]` note, and the `AGENT_*` errors are removed; clients, hooks, and evals read `task.started`, `task.settled`, and `agent.started` instead, and `session.agent(started).stream()` follows a child from its `agent.started` event. `task.started` carries `kind: "agent"` for an agent tool's call and `"tool"` otherwise, so `t.calledSubagent` also sees an agent call that failed before its session opened. The default message reducer behind `useEveAgent()` settles a task call's tool part from `task.settled` (output, error, or cancellation).
9
+ - 7869f50: The Chat SDK bridge's `send` now takes a message plus channel send options, and a new `respond(inputResponses, { thread })` answers pending input requests. To migrate, replace `send({ message, context }, { thread })` with `send(message, { context, thread })`, and replace `send({ inputResponses }, { thread })` with `respond(inputResponses, { thread })`. Channel send options also accept `outputSchema`, as `Session.send()` does.
10
+
11
+ Telegram and Chat SDK inbound messages now go through the public channel `send()`, so route wrappers see them. A Telegram reply to a bot message that no session owns now starts a session instead of failing delivery.
12
+ - c8d38a8: `session.streamSubagent(started)` is now `session.agent(started).stream()`. `session.agent()` takes an `agent.started` event and returns a `ClientAgentSession` handle with the child's `name`, `sessionId`, and `taskId`; eval sessions get the same `session.agent(started).stream()`.
13
+ - cc14b3d: Connection tools no longer break the prompt cache. The model finds them with `connection_search` and calls them with the new `connection_execute` tool, so discovered tools are no longer added to the model's tool list. Connection names now arrive in append-only context messages instead of the system prompt. `connection_execute` returns MCP `structuredContent` or text instead of the raw MCP envelope, and stream events report each call as a nested `<connection>__<tool>` action with a new `parentCallId`. The `eve/tools/connection_search` export is removed, and both tools are reserved names that cannot be replaced or disabled.
14
+ - c8d38a8: When eve holds a turn because its tasks are still working, the stream now emits `turn.waiting` for that turn in every session, and `session.waiting` comes only after the turn really ends. In a root session, the model's text before the wait now completes as an ordinary `"stop"` message, so a person sees it right away. Child and schedule turns still report it as `"tool-calls"`, so they post once. `send().result()` and MCP `agent_get` return the final reply, not the text written before the wait.
15
+ - 1a5bc56: Approval response policies now run for Cancel as well as Approve (`response.decision` is `"approve" | "cancel"`), so a responder the policy rejects can no longer cancel someone else's request; a policy that only restricts approval should return `{ status: "allowed" }` for `cancel`. The responder moved from `responder` to `response.principal`, alongside `request.principal`.
16
+ - b34bab8: Extension configuration and durable state now belong to each logical mount, so duplicate mounts can use independent config and state. Session handoffs across this upgrade boundary are rejected in both directions, including for agents without extensions; keep each session's owning deployment available until it finishes, or start a new session on the deployment you want to use.
17
+ - efa0869: Remove background tasks: workflow tools and subagent calls now always block the turn until they settle, `defineWorkflowTool` rejects `execution`, and `taskDeliveryPolicy`, the `task_cancel` tool, `session.cancel({ tasks })`, task receipts and notifications, and `<eve-empty-delivery/>` are gone. Extensions built against earlier capability epochs must be rebuilt.
18
+ - c8d38a8: Workflow tools can define `serve(receive, ctx)` to run a resumable task: `receive()` resolves the call that started the task, then each later call the model makes with the task's `taskId`, and `ctx.reply(output)` delivers a result while the task stays available. eve adds an optional `taskId` to a `serve` tool's model input (the build fails if `inputSchema` declares its own), idle tasks don't hold the turn and are listed in the `[Tasks]` note, and `task_cancel` aborts the current work's `abortSignal` while the task stays available for its next call, as long as the body returns to `receive()` within 30 seconds. While the task serves a later call, `ctx.session` describes that call, with its turn and the auth it was admitted with, and `ctx.agents` lists the agents that call may open. A session opened with `ctx.agent` is the child in lineage and trace of the call served when it opens, and each message sent to it carries the auth of the call served when it's sent. The events a call causes, including `task.settled`, `agent.started`, and questions, carry its `callId` and `turnId`.
19
+ - 9c36b7c: Slack now shows each turn's tasks in a live task card: one message, updated in place, with a row per task that shows whether it is working or waiting on a person, and how it ended. Slack also acknowledges a mention or DM with `Thinking...` right away, even with a custom `onAppMention` or `onDirectMessage`, and clears it if the hook drops the message. While a turn waits on its tasks, the status names them. Outside DMs and private channels, the card shows a failed task as `Failed` without its error text, and a blocked task without the request's prompt. Channels can now handle `input.resolved` to learn when each question or approval ends, however it ended.
20
+
21
+ `slackChannel({ events })` is replaced by `renderers`, which wrap eve's default rendering instead of replacing it; without `renderers`, eve renders with its default. Move `events: { … }` to `renderers: [{ events: { … } }]` and handlers behave as before; call the new `next` argument to keep eve's default; `next` also replaces `input.requested`'s `defaultDeliver`. A renderer can also shape the task card with `taskCard(view, next)`, whose view includes the turn's other tool calls and their input, so your own tools, such as a checklist, can appear on the card. The experimental `activity` option, the `experimental_slackActivity*` renderers, and the activity collector behind them are removed, along with the `activityObserver` field on delegated and remote-agent sessions; remote agents ignore it when an older caller still sends it.
22
+ - c09c0d6: Slack task cards and typing indicators name work more clearly. A task the agent hands to its own copy shows its brief instead of `agent: …`. Row titles and results use the first sentence, and results are cut to about 100 characters at a word boundary. The typing indicator shows the same labels as the card and says `Waiting on 3 tasks...` instead of naming one task and counting the rest. The `describeActionRequest` and `describeActionRequests` exports from `eve/channels/slack` are removed. A renderer can call `next()` for eve's default status, or read `presentation` from `actions.requested`.
23
+ - efa0869: A steering message now aborts the `ctx.abortSignal` of each `execute` workflow tool call the turn waits on, so a waited call stops early and settles with what its body returns, or `{ interrupted: true }` if the body rejects. `ctx.ask(request, { signal })` withdraws the question when the call's `abortSignal` or `signal` aborts, resolving as `cancelled` with an `input.resolved` outcome of `"cancelled"`. `sleep` and `ask_question` now stop early for a new message, and `dismissible` and the `dismissed` status are removed: a question in an `execute` call lapses when the conversation moves on, and a question asked from a `task` stays open.
24
+ - c8d38a8: A workflow tool now defines exactly one of `execute(input, ctx)` or `task(input, ctx)`. A `task` tool runs each call as a task: the model gets a receipt at once, the result arrives later in a `task.result` message, the model waits with `task_wait` or stops a task with `task_cancel`, and a turn can't end while its tasks work. `agentRouter()` and the `workflow` tool now run as tasks. The stream reports `task.started` and `task.settled` with each call's `turnId`, `turn.waiting` while `task_wait` waits, and the `taskId` on `agent.started` for a session a task opens; task results are not published as `message.received`. `session.cancel()` also stops working tasks, and `execution` now fails with a pointer to `task()`. Authored tools can no longer be named `task_wait` or `task_cancel`. Consecutive queued messages from one principal now share a turn even when their auth claims changed, and the turn runs with the latest claims.
25
+ - 315b353: `eve dev --subagents` now accepts `full`, `collapsed`, or `hidden`, and defaults to `collapsed`. `auto-collapsed` was removed because it rendered the same as `collapsed`; pass `collapsed` instead.
26
+ - efa0869: A question or sign-in from inside a running call, such as a workflow tool's `ctx.ask()`, `ask_question`, or a subagent's question or connection sign-in, no longer ends the turn: the stream emits `input.requested` or `authorization.required`, then the new `turn.waiting` event, and the turn resumes under the same `turnId`. The session you answer on now emits `input.resolved` for every subagent or workflow tool question it routes an answer to, and `send().result()` stops at `turn.waiting` only while a question is pending. The message stream version is now 26, which older eve clients reject, so upgrade them with the server.
27
+
28
+ ### Patch Changes
29
+
30
+ - 0ec0381: Channel activity, such as Slack, now shows each agent task or `ctx.agent` session as its own row under the call that opened it. The row settles as completed, failed, or cancelled when the agent's first turn ends, and a turn cancelled while it waits for an answer, including the caller's own, now settles as cancelled unless its own approval or sign-in can still be answered. Before, a local agent's activity merged into the caller's row and marked it done early, a remote agent's row stayed running until the caller's turn ended, and a later message to a remote agent, such as continuing its task by `taskId`, failed while activity was on. Later turns of the same session, such as a second `send` or a task continued by `taskId`, still appear under its first row.
31
+ - c8d38a8: A message sent to an agent task by `taskId` just as the agent's turn ends now reaches the agent and gets the reply of the turn that read it. Before, the message could be settled with the earlier turn's reply without the agent ever seeing it, and a message sent just after a `task_cancel` could be left unanswered.
32
+ - c8d38a8: Correcting an agent by `taskId` while it works now gets the agent's corrected reply, and a correction sent during the agent's first turn joins that turn instead of waiting for it to end. Before, a message the agent read only after its turn ended was answered with the earlier turn's reply, and the corrected reply was lost, which could leave the caller's turn waiting forever. The same applies to `ctx.agent(name).send()`: a response resolves with the result of the turn that read its message.
33
+ - bbbf9fc: `agent.started` hooks keep the session state and sandbox changes they make. A child session that opens while the parent's model is generating appears on the parent stream when that model step ends.
34
+ - c8d38a8: A `ctx.agent` turn that fails now reports why: `result()` returns `error.message` alongside `status: "failed"`. Agent tasks and `workflow` program calls include that reason in their failure, so the parent sees the agent's error instead of "The agent's session ended."
35
+ - 66f295e: Approved tools now execute correctly when memory recall and dynamic user instructions run during approval resume.
36
+ - efa0869: A `ctx.ask()` question now resolves the way the session decided it: an answer that reached the session before its withdrawal resolves the ask as `answered`, even after the signal aborted, so `ask_question` and the channel never disagree. Cancelling a `task()` also reports its pending questions `cancelled`, and question `requestId`s are now `<runId>-ask-<n>` instead of an internal hook token.
37
+ - a402836: `authorization.required` and `authorization.completed` events now include `principalId`, the session principal who started the sign-in, using the same value as `responderPrincipalId` on approval events. Candidate sign-in events also now include their `attemptId`.
38
+ - e9dd418: Add an optional `fallback` model to `auto` model routing. When the evaluation model fails, eve now uses the configured fallback for the rest of the turn while preserving cancellation behavior.
39
+ - c8d38a8: Cancelling a turn no longer erases the tool calls it was waiting on from the model's history. Each one stays, answered as cancelled, so in the next turn the model sees that the work was started and stopped instead of redoing a request that looks unanswered.
40
+ - ce14b1e: `defineChannel` event handlers can now subscribe to `step.completed`, the same event hooks receive when a model step finishes.
41
+ - cd3f263: Include channel kind and origin on agent step spans so traces can be classified while a turn is still running or waiting for input.
42
+ - aa73bcb: Trace viewers now use the GenAI system-instructions attribute instead of recording a duplicate system prompt attribute.
43
+ - 4902e93: The `eve` CLI now finishes writing stdout and stderr before it exits. A parent process that reads large output through a pipe, such as `eve info --json` for an agent with many tool schemas, now receives the complete output instead of output cut off partway through.
44
+ - f0a9ee1: The Datadog reporter now records eval content by default and reuses one dataset across runs, so experiments can be compared in Datadog.
45
+ - 47c2844: eve now defaults to `openai/gpt-6-luna-fast` with high reasoning when no model is configured, including newly initialized agents; explicit model and reasoning selections remain unchanged. The terminal UI shows compact model labels with dot-separated reasoning and a `⚡︎` speed marker in place of a trailing `-fast` suffix.
46
+ - a9da46c: Delegated agents again share and count against the parent's session token and cost budgets: agent tasks started in the same model step split the parent's remaining quota, and delegated usage, including remote agents and nested subagents, counts toward the parent's `maxInputTokensPerSession`, `maxOutputTokensPerSession`, and `maxTokenCostUsdPerSession` and the usage the parent reports. An agent task's usage counts with each reply and when a cancelled turn ends; other workflow tools' `ctx.agent` usage counts when the tool replies or finishes.
47
+ - 8149c72: The Braintrust and Datadog reporters now report one score per assertion name, the lowest, instead of numbering repeats like `judge_boolean_2`.
48
+ - 4b195e9: Add `eve/server`, whose `sessions.attach(sessionId).stream({ startIndex, follow, signal })` reads a session's durable event stream in process from hooks, tools, schedules, and channel routes, with the same shape as the client and no HTTP round trip.
49
+ - 21e11d0: `eve dev` now reaches a ready server about 40% sooner. The bundled self-modification extension no longer re-bundles eve's internals for each module it loads, and dev builds no longer re-parse large output chunks. Installing eve also no longer reports `npm audit` advisories for `undici`, which is now 8.10.2.
50
+ - e0dd11e: Fix imports of `eve/extensions/code/sandbox` from ES module consumers when bundled Connect dependencies include CommonJS code.
51
+ - 0afae69: Restore completed-turn memory capture by providing memory providers with the settled conversation history.
52
+ - f9c785f: When a target deployment cannot read the session checkpoint version, validation returns incompatibility instead of throwing so Workflow no longer retries the step. The turn is processed on the current owner immediately.
53
+
54
+ Owners running this eve build remember every deployment that reported incompatibility and skip handoff to those targets for later turns in the same run. Sessions whose owner workflow started on an older build still attempt handoff each turn, but each attempt no longer triggers validation retries on the target.
55
+ - 5181b14: Approval response policies now receive `request.principal`, the person whose turn requested the call, so a policy can let only that person approve it in a shared conversation. It is `null` when the caller was unauthenticated or anonymous.
56
+ - 7869f50: Inbound Slack messages now go through the public `from(address).send()`, so a route wrapper that replaces `send` sees every inbound message and receives delivery failures as errors. Channel `send()` also forwards its `state` option to the `deliver` hook as `payload.state` on every delivery, as `respond()` already did.
57
+ - 7869f50: `eve info --json` now includes `toolInputSchemas`: each static tool's input schema, for the root agent and each declared subagent, in the form eve sends to the model. Subagent entries are keyed by their path from the root agent, such as `forecaster/reviewer`, so nested subagents that share a name each get their own entry. `eve/tools` also exports `serializeModelInputSchema(schema)`, which returns that JSON Schema for any tool input schema, so checks no longer need to read `.eve/` build output.
58
+ - 7869f50: `eve/schedules` now exports `isScheduleAuth(auth)`, which returns `true` for the app principal that schedules pass as `appAuth`. Use it to tell the agent's own scheduled work from a user's turn without copying eve's internal principal values.
59
+ - e6c90d0: Keep slash-command suggestions visible after a command name is fully typed, so the matching command and its description remain visible alongside any inline argument hint.
60
+ - 7a33f37: Isolate extension module instances and configuration per logical mount, including directory overrides and their subagents, while preserving asset imports and extension-owned dependencies. Durable extension state still uses package-scoped keys.
61
+ - 0e0fa1b: Record canonical logical mount identities in compiled extension metadata and contribution ownership. Flat and directory mounts share an identity, while mounts in different subagents retain distinct paths; this does not yet change extension configuration or state isolation.
62
+ - c8d38a8: A `serve` task's `ctx.reply()` that answers several calls, such as an agent's reply to a message and its correction, now settles them together: `task_wait` no longer reports the task as both done and still working, and the model receives the reply once instead of once per call. Each call still gets its own `task.settled` event.
63
+ - c8d38a8: A model response that mixes AI Gateway `web_search` results with local tool calls such as `web_fetch` no longer breaks the next model call. eve kept a local call ahead of a later search result, so Anthropic rejected the history with "`tool_use` ids were found without `tool_result` blocks" and the turn failed.
64
+ - e0ad9a0: Agents using AI Gateway web search no longer claim on the next turn that they answered before searching. When a reply continues after a search result in the same model call, eve now stores that text as its own assistant message, so AI Gateway replays it after the result instead of before the search.
65
+ - cd13d12: The initial `eve dev` composer now suggests concrete changes you can ask your agent to make, based on its instructions and capabilities. Fresh `eve init` agents get the customization hint even when scaffolded channels expose workflow webhook routes; agents with an added channel keep the minimal “Send a message…” placeholder.
66
+ - 631122f: The `eve dev` terminal UI now hides Workflow SDK output such as `[workflow-sdk]` lines unless `/loglevel all` is on; the diagnostic log still records every line. eve also no longer warns with "Step execution already in flight in this process" when a queued step delivery loses a normal race with a new inline step.
67
+ - 23dc0da: A remote agent on this release now serves callers on eve 0.66 through 0.68 instead of rejecting them with `REMOTE_AGENT_PROTOCOL_MISMATCH`, so you can upgrade remote agents before the deployments that call them. Those callers' turns, results, follow-ups, and resets work as before, and the remote agent's tool approvals and sign-in requests still reach the caller and accept its answers.
68
+ - b0b975b: Remote subagents inherit the parent's human-input capability and forward questions and authorization requests through the parent channel, including concurrent workflow questions. Trusted remote receivers can read the replay-stable invocation operation ID in `onMessage`.
69
+ - e005932: Traces no longer give each `ctx.agent()` call in a workflow tool its own `agent.action` caller span, and a workflow tool that calls agents stays an `agent.action` span instead of becoming `invoke_workflow <tool>` with `gen_ai.workflow.name`. Sessions opened with `ctx.agent()` now link to the calling tool's `agent.action` span, and their usage no longer appears on a separate caller span; it still counts toward the parent session's usage.
70
+ - ba96305: Include provider-reported `costUsd` alongside token counts on terminal subagent action instrumentation events and spans.
71
+ - 7e4ceb8: The self-modification `registry_add` tool no longer pauses for approval before installing an official registry item. It now refuses items that would replace the self-modification subagent's own mount, and `search_registry` hides them.
72
+ - cd8fb87: The self-modification subagent no longer tries to install `eve/self-modification` when asked to change the agent's own instructions. To change the subagent's own model or reasoning, it now creates or edits `agent/extensions/self-modification/extension.ts` directly.
73
+ - e167dd3: `ctx.reply()` in a `serve` workflow tool now withdraws the `ctx.ask()` questions still pending for the calls it settles, so they resolve as `cancelled` and channels stop offering them. Before, such a question stayed pending after its call had a result: it kept steering from interrupting a model step and could take the person's next plain message as its answer.
74
+ - 99b4166: Session workflow steps now return only the session state they changed, and the workflow applies that change to the state it passed in. Each step used to return a full copy of the session, so stored step output and the data a workflow replay reads grew with conversation length on every step; they now grow only with what each step changes.
75
+ - 138e3b1: The Shopify integration setup now scaffolds a UCP agent profile for protocol version `2026-08-25`, with `spec` and `schema` declared on every capability.
76
+ - 8d6cd3e: Slack now sends sign-in challenges and approval feedback privately to the Slack user behind the event's principal, not to whoever spoke last in the thread. Channel state replaces `approvalResponderUsers` and `pendingApprovalCandidateUsers` with a single `slackUsersByPrincipal` map.
77
+ - 7869f50: `eve/channels/slack` now exports `renderInputRequestBlocks`, `deriveHitlResponse`, and `HITL_ACTION_PREFIX`, with the `SlackHitlAction`, `DerivedHitlResponse`, and `SlackHitlRoute` types. Apps can render eve's HITL Block Kit controls and decode clicks on them without importing from eve's build output.
78
+ - 79fa2aa: `task.settled` for a cancelled call now carries `cancel.reason`: `"task_cancel"` when the model called `task_cancel`, `"turn_cancelled"` when someone cancelled the turn, or `"turn_ended"` when the turn ended while the task still worked. The Slack task card uses it: a task the model cancelled now shows a success check and `Stopped early since it was no longer needed`, and other stopped tasks say why, such as `Stopped by request` or `Stopped when the turn ended`.
79
+ - ce19751: The Slack task card now shows how long each task took, as in `Done in 1m 14s: Found three incidents.` or `Failed after 3m`, and the finished plan title includes the turn's total time. A plan whose tasks are all subagent or remote agent calls names them, as in `Asking researcher and reviewer` or `Waiting on reviewer · 1 of 2 tasks done`. The card also keeps one `block_id` for the whole turn, so rows a reader expanded can stay open as the card updates. When a turn you keep messaging starts new tasks after its earlier ones settled, eve marks the earlier card finished and posts a new card instead of updating the old one further up the thread.
80
+ - 47c2844: Clarify that `task_wait` should be called sparingly, only to deliberately withhold a user-facing reply while waiting for a task result. Tasks keep running and their results reach the model without an explicit wait.
81
+ - 7869f50: Spreading a channel into a new object with replaced routes, such as `{ ...slackChannel(), routes }`, now keeps its build metadata, so the Slack app manifest and Vercel Connect credentials still reach the build. The custom channels docs now describe wrapping an existing channel's routes as supported.
82
+ - e5d45dd: A message that steers a turn right after a tool call, such as a question sent while a task works, now gets answered on Anthropic models. Before, the message reached the model in the same turn as the tool results, and Claude often treated it as tool output and kept waiting on its tasks without replying.
83
+ - e0ad9a0: A message that interrupts a waiting tool call, such as a `sleep` or `task_wait`, no longer also interrupts the step that reads it. The stream no longer emits a stray `step.started` with no model call before the step that answers the message.
84
+ - c8d38a8: Channel activity, such as Slack's activity message, now shows a call to a task as running from its receipt until the task settles, then marks it completed, failed, or cancelled. Before, the receipt marked the call done as soon as the task started.
85
+ - c8d38a8: The task system prompt now tells the model it can reply before a task's result when it doesn't need the result yet. Its turn stays open and it gets the result when the task finishes, so a person who says there's no rush gets a reply right away. A question asked while tasks work is now answered before the model waits again.
86
+ - 67ae5b5: A question or approval that a task run or workflow tool call relays, from its own `ctx.ask()` or from a session it opened with `ctx.agent`, now emits `input.resolved` with `outcome: "cancelled"` when that run finishes before anyone answers. Every question or approval a session relays does the same when the turn is cancelled. Previously these requests were dropped silently or left in place, so channels and `useEveAgent` UIs kept offering them even though no answer could reach anyone.
87
+ - 7869f50: `task.settled` events now carry the task's tool `name` and `kind`, the same values as on the call's `task.started`, so clients and hooks can label a settled task without tracking its start. Events recorded by earlier versions omit both fields.
88
+ - ce14b1e: Models now get clearer task guidance: call `task_wait` when there's nothing to say until a result arrives, reply when the person should hear something first, and in child and schedule sessions wait instead of replying. `task_wait` takes `timeoutSeconds` instead of `timeout` in milliseconds, `task_cancel` answers in plain text, and receipts and failed agent results tell the model what happens next.
89
+ - 50afc41: Allow `eve remote info` to inspect deployments that report retired kernel-effect options, marking those options as unrecognized instead of rejecting the agent-info response.
90
+ - ed2c04b: `ToolContext` now exposes `messages`, the model input for the step that requested the call, so tools can evaluate the conversation that led to them without recording it separately. It matches the `ctx.messages` dynamic resolvers receive at `step.started`.
91
+ - 5a5561a: Tools can now end a turn without a reply. Set `endsTurn: true` on a `defineTool` tool whose action is the whole answer, such as a reaction: once every call in the model's step succeeds, the turn completes with no final message, so channels and schedule sends post nothing. With `true`, eve appends a sentence to the tool's model-facing description saying the call ends the turn; pass a function instead to decide from the `execute` output. The new opt-in `no_reply` tool (`eve add tool/no_reply`, or `noReply()` from `eve/tools/no_reply`) uses it to let the agent stay quiet, for example when a scheduled check finds nothing to report. Slack now clears its thread status when a turn completes.
92
+ - f442363: System instructions now remain available in traces when JSON encoding would otherwise push them over the span attribute size limit.
93
+ - d09e381: The `eve dev` TUI now labels the self-modification subagent as `agent editor` instead of its raw tool name, `self-modification__agent`, and the turn bar reads "Modifying your agent" while it works.
94
+ - 315b353: The `eve dev` terminal UI now shows each task, such as a subagent call, as one line when it starts and one when it finishes, fails, or is stopped, with a panel above the prompt showing what every working task is doing. The transcript no longer jumps or rewrites while tasks work, the model's own `task_wait` and `task_cancel` calls no longer appear in the terminal UI or Slack typing indicators, and tools with a `label` show it instead of their raw arguments.
95
+ - e0ad9a0: The `eve dev` terminal UI now shows text the model writes after a provider-executed tool such as web search in the same model call. Before, the answer after a search was dropped from the transcript even though the agent sent it.
96
+ - bb70743: Workflow tools now wait for approval before starting, and calls denied by a person or policy never run. An approved workflow starts when it is approved.
97
+ - efa0869: A workflow tool's `action.partial` updates now reach the channel adapter, stream-event hooks, and instrumentation, like the events a turn publishes, and the `input.resolved` a session emits when a question raised inside a call is answered or withdrawn now reaches the channel adapter and stream-event hooks. Both were previously written only to the session stream.
98
+
3
99
  ## 0.68.0
4
100
 
5
101
  ### Minor Changes
package/bin/eve.js CHANGED
@@ -321,6 +321,17 @@ export async function runEveCli(argv = process.argv.slice(2), overrides = {}, de
321
321
  await cliModule.runCli(argv);
322
322
  }
323
323
 
324
+ /**
325
+ * Resolves once every write already queued on the stream has been handed to the OS.
326
+ */
327
+ async function flushWritable(stream) {
328
+ if (stream.destroyed || stream.writableEnded) {
329
+ return;
330
+ }
331
+
332
+ await new Promise((resolveFlush) => stream.write("", () => resolveFlush()));
333
+ }
334
+
324
335
  async function isDirectExecution() {
325
336
  if (!process.argv[1]) {
326
337
  return false;
@@ -354,6 +365,10 @@ if (await isDirectExecution()) {
354
365
  }
355
366
  process.exitCode = 1;
356
367
  } finally {
368
+ // Pipes and sockets can accept writes asynchronously, and `process.exit`
369
+ // drops anything still queued, truncating large output such as
370
+ // `eve info --json` read by a parent Node process.
371
+ await Promise.all([flushWritable(process.stdout), flushWritable(process.stderr)]);
357
372
  // The CLI bootstraps build/dev toolchains that can leave native service
358
373
  // handles alive after the command has completed. Once the top-level
359
374
  // command resolves, terminate the bin process explicitly so commands like
@@ -1 +1 @@
1
- import"node:module";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__commonJSMin=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),__copyProps=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var i=__getOwnPropNames(t),a=0,o=i.length,s;a<o;a++)s=i[a],!__hasOwnProp.call(e,s)&&s!==n&&__defProp(e,s,{get:(e=>t[e]).bind(null,s),enumerable:!(r=__getOwnPropDesc(t,s))||r.enumerable});return e},__toESM=(e,t,n)=>(n=e==null?{}:__create(__getProtoOf(e)),__copyProps(t||!e||!e.__esModule||!__hasOwnProp.call(e,`default`)?__defProp(n,`default`,{value:e,enumerable:!0}):n,e));export{__commonJSMin,__toESM};
1
+ import"node:module";export{};
@@ -38,6 +38,13 @@ export type ApprovalPolicy<TInput = Record<string, unknown>> = (ctx: ApprovalCon
38
38
  export interface ApprovalRequest<TInput = Record<string, unknown>> {
39
39
  readonly callId: string;
40
40
  readonly requestId: string;
41
+ /**
42
+ * Who requested the tool call: the auth of the caller whose turn made it,
43
+ * captured when the approval was requested. It stays the same while the
44
+ * request is pending, however many people continue the session, and is
45
+ * `null` when that caller was unauthenticated or anonymous.
46
+ */
47
+ readonly principal: SessionAuthContext | null;
41
48
  readonly toolInput?: ApprovalToolInput<TInput>;
42
49
  readonly toolName: string;
43
50
  }
@@ -53,26 +60,33 @@ export interface ApprovalResponseAuth {
53
60
  getToken(provider: ToolAuthProvider, options?: ToolAuthOptions): Promise<TokenResult>;
54
61
  requireAuth(provider: ToolAuthProvider, options?: ToolAuthOptions): never;
55
62
  }
56
- /** Submitted decision passed to an approval response policy. */
63
+ /** Submitted response passed to an approval response policy. */
57
64
  export interface ApprovalResponse {
58
- readonly decision: "approve";
65
+ readonly decision: "approve" | "cancel";
66
+ /**
67
+ * Who submitted the response: the authenticated principal, including its
68
+ * `principalId`, `principalType`, `authenticator`, and `attributes`.
69
+ */
70
+ readonly principal: SessionAuthContext;
59
71
  }
60
72
  /** Context passed to an approval response policy. */
61
73
  export interface ApprovalResponseContext<TInput = Record<string, unknown>> {
62
74
  readonly auth: ApprovalResponseAuth;
63
75
  readonly request: ApprovalRequest<TInput>;
64
76
  readonly response: ApprovalResponse;
65
- readonly responder: SessionAuthContext;
66
77
  readonly session: ApprovalResponseSession;
67
78
  }
68
- /** Response policy decision. Rejection keeps the shared request pending. */
79
+ /**
80
+ * Response policy decision. Rejection keeps the shared request pending, so
81
+ * another responder can still settle it.
82
+ */
69
83
  export type ApprovalResponseDecision = {
70
84
  readonly status: "allowed";
71
85
  } | {
72
86
  readonly reason: string;
73
87
  readonly status: "rejected";
74
88
  };
75
- /** Decides whether an authenticated responder may approve one request. */
89
+ /** Decides whether an authenticated responder may approve or cancel one request. */
76
90
  export type ApprovalResponsePolicy<TInput = Record<string, unknown>> = (ctx: ApprovalResponseContext<TInput>) => ApprovalResponseDecision | Promise<ApprovalResponseDecision>;
77
91
  /** Approval definition with request- and response-time policy. */
78
92
  export interface ApprovalConfiguration<TInput = Record<string, unknown>> {
@@ -34,6 +34,8 @@ export interface ChannelAdapterContext<TState = Record<string, unknown>> {
34
34
  * Live handle to the current session.
35
35
  */
36
36
  readonly session: SessionHandle;
37
+ /** @internal Independent source of a relayed child input batch. */
38
+ readonly inputSource?: string;
37
39
  }
38
40
  /**
39
41
  * Extracts the state type from a {@link ChannelAdapterContext} generic.
@@ -1 +1 @@
1
- import{z}from"#compiled/zod/index.js";import{createRemoteJWKSet,jwtVerify}from"#compiled/jose/index.js";import{areTokenClaimMatchersSatisfied,createJwtAuthenticatedCallerPrincipal}from"#channel/auth/token-claims.js";import{isVercelOidcIssuer}from"#shared/vercel-project.js";const oidcDiscoveryDocumentSchema=z.object({issuer:z.string().optional(),jwks_uri:z.string().url()}).passthrough(),oidcDiscoveryDocumentCache=new Map,oidcJwksCache=new Map;async function authenticateOidcStrategy(e){let t;try{t=await getOidcRemoteJwks(e.strategy)}catch(e){return{kind:`misconfigured`,message:`Failed to load OIDC discovery metadata. ${e instanceof Error?e.message:`Unknown discovery failure.`}`}}try{let n=await jwtVerify(e.token,t,{audience:[...e.strategy.audiences],clockTolerance:e.strategy.clockSkewSeconds,issuer:e.strategy.issuer});if(e.strategy.acceptCurrentVercelProject&&isVercelOidcIssuer(e.strategy.issuer)&&n.payload.external_sub!==void 0)return typeof n.payload.external_sub!=`string`||n.payload.external_sub.length===0||!currentVercelProjectMatches({payload:n.payload,strategy:e.strategy})||!currentVercelEnvironmentMatches({payload:n.payload,strategy:e.strategy})?{kind:`caller-not-allowed`}:{kind:`authenticated`,principal:createJwtAuthenticatedCallerPrincipal({authenticator:`oidc`,issuerClaims:[`external_iss`,`connector_id`],payload:n.payload,principalType:`user`,subjectClaim:`external_sub`})};if(e.strategy.acceptCurrentVercelProject&&isVercelOidcIssuer(e.strategy.issuer)&&n.payload.user_id!==void 0){if(typeof n.payload.user_id!=`string`||n.payload.user_id.length===0||n.payload.environment!==`development`||!currentVercelProjectMatches({payload:n.payload,strategy:e.strategy}))return{kind:`caller-not-allowed`};if(currentVercelEnvironmentMatches({payload:n.payload,strategy:e.strategy}))return{kind:`authenticated`,principal:createJwtAuthenticatedCallerPrincipal({authenticator:`oidc`,payload:n.payload,principalType:`user`,subjectClaim:`user_id`})}}if(typeof n.payload.sub!=`string`||n.payload.sub.length===0)return{kind:`not-authenticated`};let r=e.strategy.acceptCurrentVercelProject&&isCurrentVercelProjectToken({issuer:e.strategy.issuer,payload:n.payload,strategy:e.strategy}),i=r&&isCurrentVercelEnvironmentToken({payload:n.payload,strategy:e.strategy});return!r&&!areTokenClaimMatchersSatisfied(n.payload,e.strategy)?{kind:`caller-not-allowed`}:{kind:`authenticated`,principal:createJwtAuthenticatedCallerPrincipal({authenticator:`oidc`,payload:n.payload,principalType:i?`runtime`:`service`})}}catch{return{kind:`not-authenticated`}}}async function getOidcRemoteJwks(e){let t=await getOidcDiscoveryDocument(e.discoveryUrl),n=oidcJwksCache.get(t.jwks_uri);if(n!==void 0)return n;let r=createRemoteJWKSet(new URL(t.jwks_uri));return oidcJwksCache.set(t.jwks_uri,r),r}async function getOidcDiscoveryDocument(e){let t=oidcDiscoveryDocumentCache.get(e);if(t!==void 0)return await t;let n=fetch(e,{headers:{accept:`application/json`}}).then(async e=>{if(!e.ok)throw Error(`Discovery route returned HTTP ${e.status}.`);return oidcDiscoveryDocumentSchema.parse(await e.json())}).catch(t=>{throw oidcDiscoveryDocumentCache.delete(e),t});return oidcDiscoveryDocumentCache.set(e,n),await n}function isCurrentVercelProjectToken(e){if(!isVercelOidcIssuer(e.issuer))return!1;let t=e.strategy.currentVercelProject;return t!==void 0&&typeof e.payload.project_id==`string`&&e.payload.project_id===t.projectId}function currentVercelProjectMatches(e){let t=e.strategy.currentVercelProject;return t!==void 0&&typeof e.payload.project_id==`string`&&e.payload.project_id===t.projectId}function isCurrentVercelEnvironmentToken(e){let t=e.strategy.currentVercelProject?.environment;return t===void 0||t.length===0?!1:typeof e.payload.environment==`string`&&e.payload.environment===t}function currentVercelEnvironmentMatches(e){let t=e.strategy.currentVercelProject?.environment;return t===void 0||t.length===0?!1:typeof e.payload.environment==`string`&&e.payload.environment===t}export{authenticateOidcStrategy};
1
+ import{createRemoteJWKSet,jwtVerify}from"#compiled/jose/index.js";import{areTokenClaimMatchersSatisfied,createJwtAuthenticatedCallerPrincipal}from"#channel/auth/token-claims.js";import{z}from"#compiled/zod/index.js";import{isVercelOidcIssuer}from"#shared/vercel-project.js";const oidcDiscoveryDocumentSchema=z.object({issuer:z.string().optional(),jwks_uri:z.string().url()}).passthrough(),oidcDiscoveryDocumentCache=new Map,oidcJwksCache=new Map;async function authenticateOidcStrategy(e){let t;try{t=await getOidcRemoteJwks(e.strategy)}catch(e){return{kind:`misconfigured`,message:`Failed to load OIDC discovery metadata. ${e instanceof Error?e.message:`Unknown discovery failure.`}`}}try{let n=await jwtVerify(e.token,t,{audience:[...e.strategy.audiences],clockTolerance:e.strategy.clockSkewSeconds,issuer:e.strategy.issuer});if(e.strategy.acceptCurrentVercelProject&&isVercelOidcIssuer(e.strategy.issuer)&&n.payload.external_sub!==void 0)return typeof n.payload.external_sub!=`string`||n.payload.external_sub.length===0||!currentVercelProjectMatches({payload:n.payload,strategy:e.strategy})||!currentVercelEnvironmentMatches({payload:n.payload,strategy:e.strategy})?{kind:`caller-not-allowed`}:{kind:`authenticated`,principal:createJwtAuthenticatedCallerPrincipal({authenticator:`oidc`,issuerClaims:[`external_iss`,`connector_id`],payload:n.payload,principalType:`user`,subjectClaim:`external_sub`})};if(e.strategy.acceptCurrentVercelProject&&isVercelOidcIssuer(e.strategy.issuer)&&n.payload.user_id!==void 0){if(typeof n.payload.user_id!=`string`||n.payload.user_id.length===0||n.payload.environment!==`development`||!currentVercelProjectMatches({payload:n.payload,strategy:e.strategy}))return{kind:`caller-not-allowed`};if(currentVercelEnvironmentMatches({payload:n.payload,strategy:e.strategy}))return{kind:`authenticated`,principal:createJwtAuthenticatedCallerPrincipal({authenticator:`oidc`,payload:n.payload,principalType:`user`,subjectClaim:`user_id`})}}if(typeof n.payload.sub!=`string`||n.payload.sub.length===0)return{kind:`not-authenticated`};let r=e.strategy.acceptCurrentVercelProject&&isCurrentVercelProjectToken({issuer:e.strategy.issuer,payload:n.payload,strategy:e.strategy}),i=r&&isCurrentVercelEnvironmentToken({payload:n.payload,strategy:e.strategy});return!r&&!areTokenClaimMatchersSatisfied(n.payload,e.strategy)?{kind:`caller-not-allowed`}:{kind:`authenticated`,principal:createJwtAuthenticatedCallerPrincipal({authenticator:`oidc`,payload:n.payload,principalType:i?`runtime`:`service`})}}catch{return{kind:`not-authenticated`}}}async function getOidcRemoteJwks(e){let t=await getOidcDiscoveryDocument(e.discoveryUrl),n=oidcJwksCache.get(t.jwks_uri);if(n!==void 0)return n;let r=createRemoteJWKSet(new URL(t.jwks_uri));return oidcJwksCache.set(t.jwks_uri,r),r}async function getOidcDiscoveryDocument(e){let t=oidcDiscoveryDocumentCache.get(e);if(t!==void 0)return await t;let n=fetch(e,{headers:{accept:`application/json`}}).then(async e=>{if(!e.ok)throw Error(`Discovery route returned HTTP ${e.status}.`);return oidcDiscoveryDocumentSchema.parse(await e.json())}).catch(t=>{throw oidcDiscoveryDocumentCache.delete(e),t});return oidcDiscoveryDocumentCache.set(e,n),await n}function isCurrentVercelProjectToken(e){if(!isVercelOidcIssuer(e.issuer))return!1;let t=e.strategy.currentVercelProject;return t!==void 0&&typeof e.payload.project_id==`string`&&e.payload.project_id===t.projectId}function currentVercelProjectMatches(e){let t=e.strategy.currentVercelProject;return t!==void 0&&typeof e.payload.project_id==`string`&&e.payload.project_id===t.projectId}function isCurrentVercelEnvironmentToken(e){let t=e.strategy.currentVercelProject?.environment;return t===void 0||t.length===0?!1:typeof e.payload.environment==`string`&&e.payload.environment===t}function currentVercelEnvironmentMatches(e){let t=e.strategy.currentVercelProject?.environment;return t===void 0||t.length===0?!1:typeof e.payload.environment==`string`&&e.payload.environment===t}export{authenticateOidcStrategy};
@@ -3,14 +3,13 @@ import type { ChannelAdapter } from "#channel/adapter.js";
3
3
  import { type ChannelDeliverySource } from "#channel/delivery-metadata.js";
4
4
  import type { SendPayload } from "#channel/routes.js";
5
5
  import { type Session } from "#channel/session.js";
6
- import type { CancelTurnResult, ClearSessionResult, CompactSessionResult, ResetSessionResult, Runtime, SessionAuthContext, SessionCallback, TurnPolicy, TaskDeliveryPolicy } from "#channel/types.js";
6
+ import type { CancelTurnResult, ClearSessionResult, CompactSessionResult, ResetSessionResult, Runtime, SessionAuthContext, SessionCallback, TurnPolicy } from "#channel/types.js";
7
7
  interface BaseChannelAddressDeliveryOptions {
8
8
  readonly auth: SessionAuthContext | null;
9
9
  readonly callback?: SessionCallback;
10
10
  readonly initiatorAuth?: SessionAuthContext | null;
11
11
  readonly title?: string;
12
12
  readonly turnPolicy?: TurnPolicy;
13
- readonly taskDeliveryPolicy?: TaskDeliveryPolicy;
14
13
  }
15
14
  /** Delivery options for a channel address whose continuation token is already bound. */
16
15
  export type ChannelAddressDeliveryOptions<TState = undefined> = [TState] extends [undefined] ? BaseChannelAddressDeliveryOptions : BaseChannelAddressDeliveryOptions & {
@@ -45,7 +44,6 @@ export declare function createChannelAddress<TState = undefined>(input: {
45
44
  readonly metadata?: ChannelDeliverySource;
46
45
  readonly runtime: Runtime;
47
46
  readonly turnPolicy?: TurnPolicy;
48
- readonly taskDeliveryPolicy?: TaskDeliveryPolicy;
49
47
  }): ChannelAddress<TState>;
50
48
  /** Builds a request-scoped factory for channel addresses on one authored channel. */
51
49
  export declare function createChannelAddressFn<TState = undefined>(input: {
@@ -54,6 +52,5 @@ export declare function createChannelAddressFn<TState = undefined>(input: {
54
52
  readonly metadata?: ChannelDeliverySource;
55
53
  readonly runtime: Runtime;
56
54
  readonly turnPolicy?: TurnPolicy;
57
- readonly taskDeliveryPolicy?: TaskDeliveryPolicy;
58
55
  }): ChannelAddressFn<TState>;
59
56
  export {};
@@ -1 +1 @@
1
- import{createSession,sessionCallbackToTurnCaller}from"#channel/session.js";import{copyChannelActivityPresentation}from"#channel/activity-renderer.js";import{createChannelDeliveryMetadata}from"#channel/delivery-metadata.js";import{normalizeSendInput,serializeUrlFilePartsInMessage}from"#channel/send-input.js";import{DEFAULT_TURN_POLICY}from"#channel/types.js";import{isReservedSessionCommandToken}from"#execution/session-inbox/address.js";function createChannelAddress(e){let t=e.metadata??{},n=`${e.channelName}:${e.continuationToken}`;if(isReservedSessionCommandToken(n))throw Error(`Channel address "${n}" uses eve's reserved session namespace.`);return{continuationToken:e.continuationToken,async deliver(r,i){let a=t.channelKind!==void 0&&t.channelName!==void 0?createChannelDeliveryMetadata(t):void 0,o=normalizeSendInput(r),s=sessionCallbackToTurnCaller(i.callback),c=i.taskDeliveryPolicy??e.taskDeliveryPolicy,l={taskDeliveryPolicy:c,auth:i.auth,delivery:a,kind:`send`,payload:{...o,message:serializeUrlFilePartsInMessage(o.message)},requestId:t.requestId,turnPolicy:o.message===void 0?void 0:i.turnPolicy??e.turnPolicy??DEFAULT_TURN_POLICY},u=s===void 0?l:{...l,caller:s},d=await(async()=>{let r=await e.runtime.dispatchContinuation({command:u,continuationToken:n});return r.status===`accepted`?createSession(r.sessionId,e.runtime,{...t,turnPolicy:e.turnPolicy}):void 0})();if(d!==void 0)return d;if(o.inputResponses&&o.inputResponses.length>0)throw Error(`Cannot deliver inputResponses — the target session was not found via continuation token.`);let f=i.state,p=f===void 0?e.adapter:{...e.adapter,state:{...e.adapter.state,...f}};p!==e.adapter&&copyChannelActivityPresentation(e.adapter,p);let m={taskDeliveryPolicy:c,adapter:p,auth:i.auth,capabilities:{requestInput:!0},callback:i.callback,channelName:e.channelName,continuationConflictCommand:u,continuationToken:n,delivery:a,initiatorAuth:i.initiatorAuth,input:{context:o.context,message:serializeUrlFilePartsInMessage(o.message)??``,outputSchema:o.outputSchema},requestId:t.requestId,title:i.title},h=await e.runtime.createSession(m);return createSession(h.sessionId,e.runtime,{...t,turnPolicy:e.turnPolicy})},async send(e,t){return await this.deliver({message:e},t)},async respond(e,t){if(e===void 0||e.length===0)throw Error(`respond() requires at least one input response.`);return await this.deliver({inputResponses:e},t)},async cancel(t){return await e.runtime.dispatchContinuation({command:{kind:`cancel`,turnId:t?.turnId},continuationToken:n})},async compact(){return await e.runtime.dispatchContinuation({command:{kind:`compact`},continuationToken:n})},async clear(){return await e.runtime.dispatchContinuation({command:{kind:`clear`},continuationToken:n})},async reset(t){return await e.runtime.dispatchContinuation({command:{kind:`reset`,reason:t?.reason},continuationToken:n})},async resolveSession(){let r=await e.runtime.resolveContinuation(n);return r===void 0?void 0:createSession(r.sessionId,e.runtime,{...t,turnPolicy:e.turnPolicy})}}}function createChannelAddressFn(e){return t=>createChannelAddress({...e,continuationToken:t})}export{createChannelAddress,createChannelAddressFn};
1
+ import{createSession,sessionCallbackToTurnCaller}from"#channel/session.js";import{createChannelDeliveryMetadata}from"#channel/delivery-metadata.js";import{normalizeSendInput,serializeUrlFilePartsInMessage}from"#channel/send-input.js";import{DEFAULT_TURN_POLICY}from"#channel/types.js";import{isReservedSessionCommandToken}from"#execution/session-inbox/address.js";function createChannelAddress(e){let t=e.metadata??{},n=`${e.channelName}:${e.continuationToken}`;if(isReservedSessionCommandToken(n))throw Error(`Channel address "${n}" uses eve's reserved session namespace.`);return{continuationToken:e.continuationToken,async deliver(r,i){let a=t.channelKind!==void 0&&t.channelName!==void 0?createChannelDeliveryMetadata(t):void 0,o=normalizeSendInput(r),s=sessionCallbackToTurnCaller(i.callback),c={auth:i.auth,delivery:a,kind:`send`,payload:{...o,message:serializeUrlFilePartsInMessage(o.message)},requestId:t.requestId,turnPolicy:o.message===void 0?void 0:i.turnPolicy??e.turnPolicy??DEFAULT_TURN_POLICY},l=s===void 0?c:{...c,caller:s},u=await(async()=>{let r=await e.runtime.dispatchContinuation({command:l,continuationToken:n});return r.status===`accepted`?createSession(r.sessionId,e.runtime,{...t,turnPolicy:e.turnPolicy}):void 0})();if(u!==void 0)return u;if(o.inputResponses&&o.inputResponses.length>0)throw Error(`Cannot deliver inputResponses — the target session was not found via continuation token.`);let d=i.state,f={adapter:d===void 0?e.adapter:{...e.adapter,state:{...e.adapter.state,...d}},auth:i.auth,capabilities:{requestInput:!0},callback:i.callback,channelName:e.channelName,continuationConflictCommand:l,continuationToken:n,delivery:a,initiatorAuth:i.initiatorAuth,input:{context:o.context,message:serializeUrlFilePartsInMessage(o.message)??``,outputSchema:o.outputSchema,state:o.state},requestId:t.requestId,title:i.title},p=await e.runtime.createSession(f);return createSession(p.sessionId,e.runtime,{...t,turnPolicy:e.turnPolicy})},async send(e,t){return await this.deliver({message:e},t)},async respond(e,t){if(e===void 0||e.length===0)throw Error(`respond() requires at least one input response.`);return await this.deliver({inputResponses:e},t)},async cancel(t){return await e.runtime.dispatchContinuation({command:{kind:`cancel`,turnId:t?.turnId},continuationToken:n})},async compact(){return await e.runtime.dispatchContinuation({command:{kind:`compact`},continuationToken:n})},async clear(){return await e.runtime.dispatchContinuation({command:{kind:`clear`},continuationToken:n})},async reset(t){return await e.runtime.dispatchContinuation({command:{kind:`reset`,reason:t?.reason},continuationToken:n})},async resolveSession(){let r=await e.runtime.resolveContinuation(n);return r===void 0?void 0:createSession(r.sessionId,e.runtime,{...t,turnPolicy:e.turnPolicy})}}}function createChannelAddressFn(e){return t=>createChannelAddress({...e,continuationToken:t})}export{createChannelAddress,createChannelAddressFn};
@@ -1,20 +1,19 @@
1
1
  import type { UserContent } from "ai";
2
2
  import type { ChannelAdapter } from "#channel/adapter.js";
3
3
  import type { ChannelDeliverySource } from "#channel/delivery-metadata.js";
4
- import { type ChannelAddressDeliveryOptions } from "#channel/channel-address.js";
5
- import type { SendPayload } from "#channel/routes.js";
6
4
  import type { Session } from "#channel/session.js";
7
- import type { CancelTurnResult, ClearSessionResult, CompactSessionResult, ResetSessionResult, Runtime, SessionAuthContext, SessionCallback, TurnPolicy, TaskDeliveryPolicy } from "#channel/types.js";
5
+ import type { CancelTurnResult, ClearSessionResult, CompactSessionResult, ResetSessionResult, Runtime, SessionAuthContext, SessionCallback, TurnPolicy } from "#channel/types.js";
8
6
  import { type InputResponse, type StrictInputResponses } from "#shared/input.js";
7
+ import type { JsonObject } from "#shared/json.js";
9
8
  interface BaseChannelSendOptions {
10
9
  readonly auth: SessionAuthContext | null;
11
10
  readonly callback?: SessionCallback;
12
11
  readonly context?: readonly string[];
13
12
  readonly initiatorAuth?: SessionAuthContext | null;
13
+ /** JSON Schema for a structured final answer, as on `Session.send()`. */
14
+ readonly outputSchema?: JsonObject;
14
15
  readonly title?: string;
15
16
  readonly turnPolicy?: TurnPolicy;
16
- /** Updates the session policy; omission preserves it. New sessions default to auto, schedules to cohort. */
17
- readonly taskDeliveryPolicy?: TaskDeliveryPolicy;
18
17
  }
19
18
  /** Options for sending a message from a channel-local continuation address. */
20
19
  export type ChannelSendOptions<TState = undefined> = [TState] extends [undefined] ? BaseChannelSendOptions : BaseChannelSendOptions & {
@@ -55,11 +54,6 @@ export interface ChannelReceiveContext<TState = undefined> {
55
54
  readonly from: ChannelFrom<TState>;
56
55
  readonly resolveSession: ChannelResolveSession;
57
56
  }
58
- export declare const INTERNAL_CHANNEL_DELIVER: unique symbol;
59
- /** @internal Permissive transport delivery retained below public authoring surfaces. */
60
- export interface InternalChannelSource<TState = undefined> extends ChannelSource<TState> {
61
- [INTERNAL_CHANNEL_DELIVER](payload: SendPayload, options: ChannelAddressDeliveryOptions<TState>): Promise<Session>;
62
- }
63
57
  /** Creates request-scoped channel operations backed by continuation dispatch. */
64
58
  export declare function createChannelOperations<TState = undefined>(input: {
65
59
  readonly adapter: ChannelAdapter<any>;
@@ -67,6 +61,5 @@ export declare function createChannelOperations<TState = undefined>(input: {
67
61
  readonly metadata?: ChannelDeliverySource;
68
62
  readonly runtime: Runtime;
69
63
  readonly turnPolicy?: TurnPolicy;
70
- readonly taskDeliveryPolicy?: TaskDeliveryPolicy;
71
64
  }): ChannelReceiveContext<TState>;
72
65
  export {};
@@ -1 +1 @@
1
- import{createChannelAddressFn}from"#channel/channel-address.js";import{parseInputResponses}from"#shared/input.js";const INTERNAL_CHANNEL_DELIVER=Symbol(`eve.internal.channel-deliver`);function createChannelOperations(e){let t=createChannelAddressFn(e);return{from(e){let n=t(e);return{async send(e,t){return await n.deliver({context:t.context,message:e},t)},async respond(e,t){if(e.length===0)throw Error(`respond() requires at least one input response.`);let r=parseInputResponses(e);return await n.deliver({context:t.context,inputResponses:r,state:t.state},t)},async cancel(e){return await n.cancel(e)},async compact(){return await n.compact()},async clear(){return await n.clear()},async reset(e){return await n.reset(e)},async[INTERNAL_CHANNEL_DELIVER](e,t){return await n.deliver(e,t)}}},async resolveSession(e){return await t(e).resolveSession()}}}export{INTERNAL_CHANNEL_DELIVER,createChannelOperations};
1
+ import{createChannelAddressFn}from"#channel/channel-address.js";import{parseInputResponses}from"#shared/input.js";function createChannelOperations(e){let t=createChannelAddressFn(e);return{from(e){let n=t(e);return{async send(e,t){return await n.deliver({context:t.context,message:e,outputSchema:t.outputSchema,state:t.state},t)},async respond(e,t){if(e.length===0)throw Error(`respond() requires at least one input response.`);let r=parseInputResponses(e);return await n.deliver({context:t.context,inputResponses:r,state:t.state},t)},async cancel(e){return await n.cancel(e)},async compact(){return await n.compact()},async clear(){return await n.clear()},async reset(e){return await n.reset(e)}}},async resolveSession(e){return await t(e).resolveSession()}}}export{createChannelOperations};
@@ -1,5 +1,4 @@
1
1
  import type { ChannelAdapter } from "#channel/adapter.js";
2
- import { type ChannelActivityPresentation } from "#channel/activity-renderer.js";
3
2
  import type { UserContent } from "ai";
4
3
  import type { ChannelReceiveContext } from "#channel/channel-operations.js";
5
4
  import type { NormalizedChannelCorsOptions } from "#channel/cors.js";
@@ -34,6 +33,5 @@ export declare function isCompiledChannel(value: unknown): value is CompiledChan
34
33
  export declare function getChannelBuildMetadata(value: unknown, channelName: string): ChannelBuildMetadata | undefined;
35
34
  export declare function setChannelBuildMetadata(channel: unknown, factory: ChannelBuildMetadataFactory): void;
36
35
  export declare function getChannelInstrumentationKind(value: unknown): string | undefined;
37
- export declare function setChannelActivityRenderers(channel: unknown, input: ChannelActivityPresentation): void;
38
36
  export declare function setChannelInstrumentationKind(channel: CompiledChannel, kind: string): void;
39
37
  export {};
@@ -1,2 +1,2 @@
1
- import{attachChannelActivityPresentation}from"#channel/activity-renderer.js";const CHANNEL_SENTINEL=`eve:channel`,CHANNEL_BUILD_METADATA=Symbol.for(`eve.channel.buildMetadata`),CHANNEL_INSTRUMENTATION_KIND=Symbol.for(`eve.channel.instrumentationKind`),CHANNEL_INSTRUMENTATION_KINDS=Symbol.for(`eve.channel.instrumentationKinds`),channelInstrumentationKindGlobal=globalThis;channelInstrumentationKindGlobal[CHANNEL_INSTRUMENTATION_KINDS]??=new Map;const channelInstrumentationKinds=channelInstrumentationKindGlobal[CHANNEL_INSTRUMENTATION_KINDS];function isCompiledChannel(e){return typeof e==`object`&&!!e&&e.__kind===`eve:channel`}function getChannelBuildMetadata(e,t){if(!isCompiledChannel(e))return;let n=Reflect.get(e,CHANNEL_BUILD_METADATA);return typeof n==`function`?n(t):void 0}function setChannelBuildMetadata(e,t){if(!isCompiledChannel(e))throw TypeError(`Expected a compiled channel.`);Object.defineProperty(e,CHANNEL_BUILD_METADATA,{configurable:!0,enumerable:!1,value:t})}function getChannelInstrumentationKind(e){if(!isCompiledChannel(e))return;let t=Reflect.get(e,CHANNEL_INSTRUMENTATION_KIND);if(typeof t==`string`&&t.length>0)return t;let n=e.adapter.kind;if(typeof n==`string`&&n.startsWith(`channel:`))return n;let r=channelRouteSignature(e);return r===void 0?void 0:channelInstrumentationKinds.get(r)}function setChannelActivityRenderers(e,t){if(!isCompiledChannel(e))throw TypeError(`Expected a compiled channel.`);attachChannelActivityPresentation(e.adapter,t)}function setChannelInstrumentationKind(e,t){Object.defineProperty(e,CHANNEL_INSTRUMENTATION_KIND,{configurable:!0,enumerable:!1,value:t});let n=channelRouteSignature(e);n!==void 0&&channelInstrumentationKinds.set(n,t)}function channelRouteSignature(e){if(e.routes.length!==0)return e.routes.map(e=>`${e.method.toUpperCase()} ${e.path}`).sort().join(`
2
- `)}export{CHANNEL_SENTINEL,getChannelBuildMetadata,getChannelInstrumentationKind,isCompiledChannel,setChannelActivityRenderers,setChannelBuildMetadata,setChannelInstrumentationKind};
1
+ const CHANNEL_SENTINEL=`eve:channel`,CHANNEL_BUILD_METADATA=Symbol.for(`eve.channel.buildMetadata`),CHANNEL_INSTRUMENTATION_KIND=Symbol.for(`eve.channel.instrumentationKind`),CHANNEL_INSTRUMENTATION_KINDS=Symbol.for(`eve.channel.instrumentationKinds`),channelInstrumentationKindGlobal=globalThis;channelInstrumentationKindGlobal[CHANNEL_INSTRUMENTATION_KINDS]??=new Map;const channelInstrumentationKinds=channelInstrumentationKindGlobal[CHANNEL_INSTRUMENTATION_KINDS];function isCompiledChannel(e){return typeof e==`object`&&!!e&&e.__kind===`eve:channel`}function getChannelBuildMetadata(e,t){if(!isCompiledChannel(e))return;let n=Reflect.get(e,CHANNEL_BUILD_METADATA);return typeof n==`function`?n(t):void 0}function setChannelBuildMetadata(e,t){if(!isCompiledChannel(e))throw TypeError(`Expected a compiled channel.`);Object.defineProperty(e,CHANNEL_BUILD_METADATA,{configurable:!0,enumerable:!0,value:t})}function getChannelInstrumentationKind(e){if(!isCompiledChannel(e))return;let t=Reflect.get(e,CHANNEL_INSTRUMENTATION_KIND);if(typeof t==`string`&&t.length>0)return t;let n=e.adapter.kind;if(typeof n==`string`&&n.startsWith(`channel:`))return n;let r=channelRouteSignature(e);return r===void 0?void 0:channelInstrumentationKinds.get(r)}function setChannelInstrumentationKind(e,t){Object.defineProperty(e,CHANNEL_INSTRUMENTATION_KIND,{configurable:!0,enumerable:!1,value:t});let n=channelRouteSignature(e);n!==void 0&&channelInstrumentationKinds.set(n,t)}function channelRouteSignature(e){if(e.routes.length!==0)return e.routes.map(e=>`${e.method.toUpperCase()} ${e.path}`).sort().join(`
2
+ `)}export{CHANNEL_SENTINEL,getChannelBuildMetadata,getChannelInstrumentationKind,isCompiledChannel,setChannelBuildMetadata,setChannelInstrumentationKind};
@@ -3,7 +3,7 @@ import type { ChannelAdapter } from "#channel/adapter.js";
3
3
  import { type ChannelReference, type CompiledChannel } from "#channel/compiled-channel.js";
4
4
  import type { InferReceiveTarget } from "#channel/receive-target.js";
5
5
  import type { Session } from "#channel/session.js";
6
- import type { Runtime, SessionAuthContext, TurnPolicy, TaskDeliveryPolicy } from "#channel/types.js";
6
+ import type { Runtime, SessionAuthContext, TurnPolicy } from "#channel/types.js";
7
7
  import type { ResolvedChannelDefinition } from "#runtime/types.js";
8
8
  /**
9
9
  * Options for sending a message to a channel selected with `ctx.to(...)`.
@@ -11,8 +11,6 @@ import type { ResolvedChannelDefinition } from "#runtime/types.js";
11
11
  interface CrossChannelSendOptions {
12
12
  readonly auth: SessionAuthContext | null;
13
13
  readonly turnPolicy?: TurnPolicy;
14
- /** Updates the session policy; omission preserves it. New sessions default to auto, schedules to cohort. */
15
- readonly taskDeliveryPolicy?: TaskDeliveryPolicy;
16
14
  }
17
15
  /** Message delivery bound to one channel-specific proactive target. */
18
16
  export interface CrossChannelTargetHandle {
@@ -1,2 +1,2 @@
1
- import{createChannelOperations}from"#channel/channel-operations.js";import{isCompiledChannel}from"#channel/compiled-channel.js";function toCrossChannelTargets(e){return e.flatMap(e=>e.definition===void 0?[]:[{name:e.name,definition:e.definition,receive:e.receive,adapter:e.adapter,turnPolicy:e.turnPolicy}])}function createCrossChannelToFn(e,t){return(n,r)=>{let i=resolveTargetByReference(n,t);return{async send(t,n){return await invokeChannelReceive({runtime:e,target:i,input:{message:t,target:r,auth:n.auth},turnPolicy:n.turnPolicy,taskDeliveryPolicy:n.taskDeliveryPolicy,describeMissingReceive:()=>`ctx.to(): channel "${i.name}" does not implement receive(). Declare a receive hook on the channel to accept cross-channel sessions.`,describeMissingAdapter:()=>`ctx.to(): channel "${i.name}" has no adapter — cannot build ctx.from().`})}}}}async function invokeChannelReceive(e){if(!e.target.receive)throw Error(e.describeMissingReceive());if(!e.target.adapter)throw Error(e.describeMissingAdapter());let t=createChannelOperations({adapter:e.target.adapter,channelName:e.target.name,runtime:e.runtime,turnPolicy:e.turnPolicy??e.target.turnPolicy,taskDeliveryPolicy:e.taskDeliveryPolicy});return await e.target.receive(e.input,t)}function resolveTargetByReference(e,t){for(let n of t)if(n.definition===e)return n;let n=resolveTargetByRouteFingerprint(e,t);if(n!==null)return n;throw Error(`ctx.to(): the channel passed as the first argument is not registered in this agent's channels/. Import the channel module's default export from agent/channels/<name>.ts and pass that value.`)}function resolveTargetByRouteFingerprint(e,t){if(!isCompiledChannel(e))return null;let n=createRouteFingerprint(e);if(n===null)return null;let r=new Map;for(let e of t)createRouteFingerprint(e.definition)===n&&r.set(e.name,e);if(r.size===1)return[...r.values()][0];if(r.size>1)throw Error(`ctx.to(): the channel passed as the first argument matches multiple registered channels by route shape. Import a channel with a unique route set from agent/channels/<name>.ts before passing it to ctx.to().`);return null}function createRouteFingerprint(e){return e.routes.length===0?null:e.routes.map(e=>`${e.method.toUpperCase()} ${e.path}`).sort().join(`
1
+ import{createChannelOperations}from"#channel/channel-operations.js";import{isCompiledChannel}from"#channel/compiled-channel.js";function toCrossChannelTargets(e){return e.flatMap(e=>e.definition===void 0?[]:[{name:e.name,definition:e.definition,receive:e.receive,adapter:e.adapter,turnPolicy:e.turnPolicy}])}function createCrossChannelToFn(e,t){return(n,r)=>{let i=resolveTargetByReference(n,t);return{async send(t,n){return await invokeChannelReceive({runtime:e,target:i,input:{message:t,target:r,auth:n.auth},turnPolicy:n.turnPolicy,describeMissingReceive:()=>`ctx.to(): channel "${i.name}" does not implement receive(). Declare a receive hook on the channel to accept cross-channel sessions.`,describeMissingAdapter:()=>`ctx.to(): channel "${i.name}" has no adapter — cannot build ctx.from().`})}}}}async function invokeChannelReceive(e){if(!e.target.receive)throw Error(e.describeMissingReceive());if(!e.target.adapter)throw Error(e.describeMissingAdapter());let t=createChannelOperations({adapter:e.target.adapter,channelName:e.target.name,runtime:e.runtime,turnPolicy:e.turnPolicy??e.target.turnPolicy});return await e.target.receive(e.input,t)}function resolveTargetByReference(e,t){for(let n of t)if(n.definition===e)return n;let n=resolveTargetByRouteFingerprint(e,t);if(n!==null)return n;throw Error(`ctx.to(): the channel passed as the first argument is not registered in this agent's channels/. Import the channel module's default export from agent/channels/<name>.ts and pass that value.`)}function resolveTargetByRouteFingerprint(e,t){if(!isCompiledChannel(e))return null;let n=createRouteFingerprint(e);if(n===null)return null;let r=new Map;for(let e of t)createRouteFingerprint(e.definition)===n&&r.set(e.name,e);if(r.size===1)return[...r.values()][0];if(r.size>1)throw Error(`ctx.to(): the channel passed as the first argument matches multiple registered channels by route shape. Import a channel with a unique route set from agent/channels/<name>.ts before passing it to ctx.to().`);return null}function createRouteFingerprint(e){return e.routes.length===0?null:e.routes.map(e=>`${e.method.toUpperCase()} ${e.path}`).sort().join(`
2
2
  `)}export{createCrossChannelToFn,toCrossChannelTargets};
@@ -1 +1 @@
1
- import{z}from"#compiled/zod/index.js";import{createLogger,logError}from"#internal/logging.js";const log=createLogger(`channel.forwarded-principal`),FORWARDED_BY_ATTRIBUTE=`eve:forwarded-by`,attributeValueSchema=z.union([z.string(),z.array(z.string()).readonly()]),forwardedPrincipalContextSchema=z.object({attributes:z.record(z.string(),attributeValueSchema).readonly(),authenticator:z.string().min(1),issuer:z.string().min(1).optional(),principalId:z.string().min(1),principalType:z.string().min(1),subject:z.string().min(1).optional()}).strict(),forwardedPrincipalSchema=z.object({current:forwardedPrincipalContextSchema,initiator:forwardedPrincipalContextSchema.optional()}).strict();async function resolveForwardedPrincipal(e){let t=e.payload.forwardedPrincipal;if(t===void 0)return{accepted:!1,auth:e.forwarder};if(e.trustedForwarders===void 0)return Response.json({error:`This deployment does not accept a forwarded principal.`,ok:!1},{status:403});let n=parseForwardedPrincipal(t);if(!n.ok)return Response.json({error:n.message,ok:!1},{status:400});let r=stampForwardedBy(n.forwardedPrincipal.current,e.forwarder.principalId),i=n.forwardedPrincipal.initiator===void 0?r:stampForwardedBy(n.forwardedPrincipal.initiator,e.forwarder.principalId),a;try{a=await e.trustedForwarders(e.forwarder,{principal:{current:r,initiator:i}})}catch(t){let n=logError(log,`trustedForwarders handler failed`,t,{forwarder:e.forwarder.principalId});return Response.json({error:`trustedForwarders handler failed.`,errorId:n,ok:!1},{status:500})}return a?{accepted:!0,auth:r,initiatorAuth:i}:Response.json({error:`Caller is not authorized to assert a forwarded principal.`,ok:!1},{status:403})}function parseForwardedPrincipal(e){let t=forwardedPrincipalSchema.safeParse(e);if(t.success){let e=toSessionAuthContext(t.data.current);return{forwardedPrincipal:t.data.initiator===void 0?{current:e}:{current:e,initiator:toSessionAuthContext(t.data.initiator)},ok:!0}}return{cause:t.error,message:formatForwardedPrincipalParseError(t.error),ok:!1}}function stampForwardedBy(e,t){return{...e,attributes:{...e.attributes,[FORWARDED_BY_ATTRIBUTE]:t}}}function toSessionAuthContext(e){let t={attributes:e.attributes,authenticator:e.authenticator,principalId:e.principalId,principalType:e.principalType};return e.issuer!==void 0&&(t.issuer=e.issuer),e.subject!==void 0&&(t.subject=e.subject),t}function formatForwardedPrincipalParseError(e){return`Invalid forwardedPrincipal metadata: ${e.issues.map(e=>`${e.path.length===0?`forwardedPrincipal`:`forwardedPrincipal.${e.path.join(`.`)}`}: ${e.message}`).join(`; `)}`}export{FORWARDED_BY_ATTRIBUTE,parseForwardedPrincipal,resolveForwardedPrincipal,stampForwardedBy};
1
+ import{createLogger,logError}from"#internal/logging.js";import{z}from"#compiled/zod/index.js";const log=createLogger(`channel.forwarded-principal`),FORWARDED_BY_ATTRIBUTE=`eve:forwarded-by`,attributeValueSchema=z.union([z.string(),z.array(z.string()).readonly()]),forwardedPrincipalContextSchema=z.object({attributes:z.record(z.string(),attributeValueSchema).readonly(),authenticator:z.string().min(1),issuer:z.string().min(1).optional(),principalId:z.string().min(1),principalType:z.string().min(1),subject:z.string().min(1).optional()}).strict(),forwardedPrincipalSchema=z.object({current:forwardedPrincipalContextSchema,initiator:forwardedPrincipalContextSchema.optional()}).strict();async function resolveForwardedPrincipal(e){let t=e.payload.forwardedPrincipal;if(t===void 0)return{accepted:!1,auth:e.forwarder};if(e.trustedForwarders===void 0)return Response.json({error:`This deployment does not accept a forwarded principal.`,ok:!1},{status:403});let n=parseForwardedPrincipal(t);if(!n.ok)return Response.json({error:n.message,ok:!1},{status:400});let r=stampForwardedBy(n.forwardedPrincipal.current,e.forwarder.principalId),i=n.forwardedPrincipal.initiator===void 0?r:stampForwardedBy(n.forwardedPrincipal.initiator,e.forwarder.principalId),a;try{a=await e.trustedForwarders(e.forwarder,{principal:{current:r,initiator:i}})}catch(t){let n=logError(log,`trustedForwarders handler failed`,t,{forwarder:e.forwarder.principalId});return Response.json({error:`trustedForwarders handler failed.`,errorId:n,ok:!1},{status:500})}return a?{accepted:!0,auth:r,initiatorAuth:i}:Response.json({error:`Caller is not authorized to assert a forwarded principal.`,ok:!1},{status:403})}function parseForwardedPrincipal(e){let t=forwardedPrincipalSchema.safeParse(e);if(t.success){let e=toSessionAuthContext(t.data.current);return{forwardedPrincipal:t.data.initiator===void 0?{current:e}:{current:e,initiator:toSessionAuthContext(t.data.initiator)},ok:!0}}return{cause:t.error,message:formatForwardedPrincipalParseError(t.error),ok:!1}}function stampForwardedBy(e,t){return{...e,attributes:{...e.attributes,[FORWARDED_BY_ATTRIBUTE]:t}}}function toSessionAuthContext(e){let t={attributes:e.attributes,authenticator:e.authenticator,principalId:e.principalId,principalType:e.principalType};return e.issuer!==void 0&&(t.issuer=e.issuer),e.subject!==void 0&&(t.subject=e.subject),t}function formatForwardedPrincipalParseError(e){return`Invalid forwardedPrincipal metadata: ${e.issues.map(e=>`${e.path.length===0?`forwardedPrincipal`:`forwardedPrincipal.${e.path.join(`.`)}`}: ${e.message}`).join(`; `)}`}export{FORWARDED_BY_ATTRIBUTE,parseForwardedPrincipal,resolveForwardedPrincipal,stampForwardedBy};
@@ -3,3 +3,19 @@ import type { SessionAuthContext } from "#channel/types.js";
3
3
  * Framework-owned principal used when a schedule runs on behalf of the agent.
4
4
  */
5
5
  export declare const SCHEDULE_APP_AUTH: SessionAuthContext;
6
+ /**
7
+ * Returns true when `auth` is the default app principal that schedules pass
8
+ * as `appAuth`. It identifies that principal, not how a turn started: a
9
+ * schedule handler may send with a user's auth instead, and any code can
10
+ * reuse `appAuth`.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * import { isScheduleAuth } from "eve/schedules";
15
+ *
16
+ * if (isScheduleAuth(ctx.session.auth.current)) {
17
+ * // Work the agent does on its own behalf.
18
+ * }
19
+ * ```
20
+ */
21
+ export declare function isScheduleAuth(auth: SessionAuthContext | null | undefined): boolean;
@@ -1 +1 @@
1
- const SCHEDULE_APP_AUTH={attributes:{},authenticator:`app`,principalId:`eve:app`,principalType:`runtime`};export{SCHEDULE_APP_AUTH};
1
+ const SCHEDULE_APP_AUTH={attributes:{},authenticator:`app`,principalId:`eve:app`,principalType:`runtime`};function isScheduleAuth(e){return e?.authenticator===SCHEDULE_APP_AUTH.authenticator&&e.principalId===SCHEDULE_APP_AUTH.principalId&&e.principalType===SCHEDULE_APP_AUTH.principalType}export{SCHEDULE_APP_AUTH,isScheduleAuth};
@@ -1 +1 @@
1
- import{z}from"#compiled/zod/index.js";import{createEveCallbackRoutePath}from"#protocol/routes.js";import{normalizePublicEveRoutePath}from"#shared/eve-route-path.js";import{isReservedIpAddress}from"#shared/network-address.js";const sessionCallbackSchema=z.object({callId:z.string().min(1),subagentName:z.string().min(1),taskId:z.string().min(1).optional(),token:z.string().min(1),url:z.string().min(1)}).strict().superRefine((e,t)=>{let n;try{n=new URL(e.url)}catch{t.addIssue({code:`custom`,message:`Callback url must be absolute.`,path:[`url`]});return}readCallbackUrlToken(n)!==e.token&&t.addIssue({code:`custom`,message:`Callback url token must match callback token.`,path:[`url`]}),isReservedIpAddress(n.hostname)&&t.addIssue({code:`custom`,message:`Callback url host must not be a private or reserved address.`,path:[`url`]})});function parseSessionCallback(e){let t=sessionCallbackSchema.safeParse(e);return t.success?{callback:t.data,ok:!0}:{cause:t.error,message:formatSessionCallbackParseError(t.error),ok:!1}}function readCallbackUrlToken(e){let t=createEveCallbackRoutePath(``),n=normalizePublicEveRoutePath(e.pathname),r=n.lastIndexOf(t);if(r===-1)return null;let i=n.slice(r+t.length);if(i.length===0||i.includes(`/`))return null;try{return decodeURIComponent(i)}catch{return null}}function formatSessionCallbackParseError(e){return`Invalid callback metadata: ${e.issues.map(e=>`${e.path.length===0?`callback`:`callback.${e.path.join(`.`)}`}: ${e.message}`).join(`; `)}`}export{parseSessionCallback};
1
+ import{z}from"#compiled/zod/index.js";import{createEveCallbackRoutePath}from"#protocol/routes.js";import{normalizePublicEveRoutePath}from"#shared/eve-route-path.js";import{isReservedIpAddress}from"#shared/network-address.js";const sessionCallbackSchema=z.object({callId:z.string().min(1),subagentName:z.string().min(1),token:z.string().min(1),url:z.string().min(1)}).strict().superRefine((e,t)=>{let n;try{n=new URL(e.url)}catch{t.addIssue({code:`custom`,message:`Callback url must be absolute.`,path:[`url`]});return}readCallbackUrlToken(n)!==e.token&&t.addIssue({code:`custom`,message:`Callback url token must match callback token.`,path:[`url`]}),isReservedIpAddress(n.hostname)&&t.addIssue({code:`custom`,message:`Callback url host must not be a private or reserved address.`,path:[`url`]})});function parseSessionCallback(e){let t=sessionCallbackSchema.safeParse(e);return t.success?{callback:t.data,ok:!0}:{cause:t.error,message:formatSessionCallbackParseError(t.error),ok:!1}}function readCallbackUrlToken(e){let t=createEveCallbackRoutePath(``),n=normalizePublicEveRoutePath(e.pathname),r=n.lastIndexOf(t);if(r===-1)return null;let i=n.slice(r+t.length);if(i.length===0||i.includes(`/`))return null;try{return decodeURIComponent(i)}catch{return null}}function formatSessionCallbackParseError(e){return`Invalid callback metadata: ${e.issues.map(e=>`${e.path.length===0?`callback`:`callback.${e.path.join(`.`)}`}: ${e.message}`).join(`; `)}`}export{parseSessionCallback};
@@ -2,7 +2,7 @@ import type { ContextAccessor } from "#context/key.js";
2
2
  import { type ChannelDeliverySource } from "#channel/delivery-metadata.js";
3
3
  import type { MessageStreamEvent } from "#protocol/message.js";
4
4
  import type { UserContent } from "ai";
5
- import type { ActivityObserverConfig, CancelTurnResult, ClearSessionResult, CompactSessionResult, ResetSessionResult, Runtime, SessionAuthContext, SessionCallback, SessionSendCommandResult, TurnPolicy, TaskDeliveryPolicy, TurnCaller } from "#channel/types.js";
5
+ import type { CancelTurnResult, ClearSessionResult, CompactSessionResult, ResetSessionResult, Runtime, SessionAuthContext, SessionCallback, SessionSendCommandResult, TurnPolicy, TurnCaller } from "#channel/types.js";
6
6
  import type { SessionAuth } from "#context/keys.js";
7
7
  import { type InputResponse, type StrictInputResponses } from "#shared/input.js";
8
8
  import type { JsonObject } from "#shared/json.js";
@@ -13,10 +13,8 @@ export interface Session {
13
13
  send(message: string | UserContent, options: SessionSendOptions): Promise<SessionSendCommandResult>;
14
14
  /** Answers pending input requests on this exact session ID. */
15
15
  respond<const TResponses extends readonly InputResponse[]>(inputResponses: StrictInputResponses<TResponses>, options: SessionRespondOptions): Promise<SessionSendCommandResult>;
16
- /** Requests cancellation of this exact session's active turn and optionally its owned tasks. */
16
+ /** Requests cancellation of this exact session's active turn. */
17
17
  cancel(options?: {
18
- taskId?: string;
19
- tasks?: boolean;
20
18
  turnId?: string;
21
19
  }): Promise<CancelTurnResult>;
22
20
  /** Queues compaction on this exact session ID. */
@@ -33,7 +31,6 @@ export interface Session {
33
31
  getStreamTailIndex(): Promise<number>;
34
32
  }
35
33
  interface SessionDeliveryOptions {
36
- readonly activityObserver?: ActivityObserverConfig;
37
34
  readonly auth: SessionAuthContext | null;
38
35
  /** Public callback destination for a delegated continuation turn. */
39
36
  readonly callback?: SessionCallback;
@@ -45,8 +42,6 @@ export type SessionSendOptions = SessionDeliveryOptions & {
45
42
  /** Initial workflow title for a prewarmed session. */
46
43
  readonly title?: string;
47
44
  readonly turnPolicy?: TurnPolicy;
48
- /** Updates the session policy; omission preserves it. New sessions default to auto, schedules to cohort. */
49
- readonly taskDeliveryPolicy?: TaskDeliveryPolicy;
50
45
  };
51
46
  /** Options for answering pending input requests through a fixed session handle. */
52
47
  export type SessionRespondOptions = SessionDeliveryOptions;
@@ -85,5 +80,5 @@ export declare function createAttachSessionFn(runtime: Runtime, metadata?: Parti
85
80
  */
86
81
  export declare function buildSessionHandle(accessor: ContextAccessor): SessionHandle;
87
82
  /** @internal Converts validated public callback metadata into runtime turn routing. */
88
- export declare function sessionCallbackToTurnCaller(callback: SessionCallback | undefined, activityObserver?: ActivityObserverConfig): TurnCaller | undefined;
83
+ export declare function sessionCallbackToTurnCaller(callback: SessionCallback | undefined): TurnCaller | undefined;
89
84
  export {};
@@ -1 +1 @@
1
- import{attachClientContext,readClientContext}from"#internal/client-context.js";import{createChannelDeliveryMetadata}from"#channel/delivery-metadata.js";import{serializeUrlFilePartsInMessage}from"#channel/send-input.js";import{DEFAULT_TURN_POLICY}from"#channel/types.js";import{parseInputResponses}from"#shared/input.js";import{AuthKey,ContinuationHookTokensKey,ContinuationTokenKey,InitiatorAuthKey,SessionIdKey}from"#context/keys.js";import{toChannelLocalContinuationToken}from"#shared/continuation-token.js";function createSession(e,t,n={}){return{id:e,async send(r,i){let a=createDelivery(n),o=sessionCallbackToTurnCaller(i.callback,i.activityObserver),s=attachClientContext({message:serializeUrlFilePartsInMessage(r)},readClientContext(i));i.context!==void 0&&(s.context=i.context),i.outputSchema!==void 0&&(s.outputSchema=i.outputSchema);let c={auth:i.auth,delivery:a,kind:`send`,payload:s,requestId:n.requestId,turnPolicy:i.turnPolicy??n.turnPolicy??DEFAULT_TURN_POLICY,taskDeliveryPolicy:i.taskDeliveryPolicy,title:i.title};return await t.dispatchSession({command:o===void 0?c:{...c,caller:o},sessionId:e})},async respond(r,i){if(r.length===0)throw Error(`respond() requires at least one input response.`);let a=parseInputResponses(r),o=sessionCallbackToTurnCaller(i.callback,i.activityObserver),s=createDelivery(n),c=attachClientContext({inputResponses:a},readClientContext(i));i.context!==void 0&&(c.context=i.context),i.outputSchema!==void 0&&(c.outputSchema=i.outputSchema);let l={auth:i.auth,delivery:s,kind:`send`,payload:c,requestId:n.requestId};return await t.dispatchSession({command:o===void 0?l:{...l,caller:o},sessionId:e})},async cancel(n){let r={kind:`cancel`};return n?.taskId!==void 0&&(r.taskId=n.taskId),n?.tasks!==void 0&&(r.tasks=n.tasks),n?.turnId!==void 0&&(r.turnId=n.turnId),await t.dispatchSession({command:r,sessionId:e})},async compact(){return await t.dispatchSession({command:{kind:`compact`},sessionId:e})},async clear(){return await t.dispatchSession({command:{kind:`clear`},sessionId:e})},async reset(n){return await t.dispatchSession({command:{kind:`reset`,reason:n?.reason},sessionId:e})},async getEventStream(n){return t.getEventStream(e,n)},async getStreamTailIndex(){return t.getStreamTailIndex(e)}}}function createAttachSessionFn(e,t={}){return n=>createSession(n,e,t)}function createDelivery(e){return e.channelKind!==void 0&&e.channelName!==void 0?createChannelDeliveryMetadata(e):void 0}function buildSessionHandle(e){return{get id(){return e.get(SessionIdKey)??``},get auth(){return{current:e.get(AuthKey)??null,initiator:e.get(InitiatorAuthKey)??null}},get continuation(){let t=e.get(ContinuationTokenKey);if(t!==void 0&&t.length!==0)return{token:toChannelLocalContinuationToken(t),alias(n){if(n.length===0)throw Error(`A session alias requires a nonempty token.`);let r=namespaceContinuationToken(t,n);t!==r&&(e.set(ContinuationHookTokensKey,e=>{let n=e??[t];return n.includes(r)?n:[...n,r]}),e.set(ContinuationTokenKey,r))}}}}}function namespaceContinuationToken(e,t){let n=e.indexOf(`:`);if(n<=0)throw Error(`Cannot set session continuation token without an existing namespaced continuation token. Start the session with a placeholder continuationToken.`);return`${e.slice(0,n+1)}${t}`}function sessionCallbackToTurnCaller(e,t){return e===void 0?void 0:{activityObserver:t,callId:e.callId,replyTo:{kind:`callback`,token:e.token,url:e.url},subagentName:e.subagentName,taskId:e.taskId}}export{buildSessionHandle,createAttachSessionFn,createSession,sessionCallbackToTurnCaller};
1
+ import{attachClientContext,readClientContext}from"#internal/client-context.js";import{createChannelDeliveryMetadata}from"#channel/delivery-metadata.js";import{serializeUrlFilePartsInMessage}from"#channel/send-input.js";import{DEFAULT_TURN_POLICY}from"#channel/types.js";import{parseInputResponses}from"#shared/input.js";import{AuthKey,ContinuationHookTokensKey,ContinuationTokenKey,InitiatorAuthKey,SessionIdKey}from"#context/keys.js";import{toChannelLocalContinuationToken}from"#shared/continuation-token.js";function createSession(e,t,n={}){return{id:e,async send(r,i){let a=createDelivery(n),o=sessionCallbackToTurnCaller(i.callback),s=attachClientContext({message:serializeUrlFilePartsInMessage(r)},readClientContext(i));i.context!==void 0&&(s.context=i.context),i.outputSchema!==void 0&&(s.outputSchema=i.outputSchema);let c={auth:i.auth,delivery:a,kind:`send`,payload:s,requestId:n.requestId,turnPolicy:i.turnPolicy??n.turnPolicy??DEFAULT_TURN_POLICY,title:i.title};return await t.dispatchSession({command:o===void 0?c:{...c,caller:o},sessionId:e})},async respond(r,i){if(r.length===0)throw Error(`respond() requires at least one input response.`);let a=parseInputResponses(r),o=sessionCallbackToTurnCaller(i.callback),s=createDelivery(n),c=attachClientContext({inputResponses:a},readClientContext(i));i.context!==void 0&&(c.context=i.context),i.outputSchema!==void 0&&(c.outputSchema=i.outputSchema);let l={auth:i.auth,delivery:s,kind:`send`,payload:c,requestId:n.requestId};return await t.dispatchSession({command:o===void 0?l:{...l,caller:o},sessionId:e})},async cancel(n){let r={kind:`cancel`};return n?.turnId!==void 0&&(r.turnId=n.turnId),await t.dispatchSession({command:r,sessionId:e})},async compact(){return await t.dispatchSession({command:{kind:`compact`},sessionId:e})},async clear(){return await t.dispatchSession({command:{kind:`clear`},sessionId:e})},async reset(n){return await t.dispatchSession({command:{kind:`reset`,reason:n?.reason},sessionId:e})},async getEventStream(n){return t.getEventStream(e,n)},async getStreamTailIndex(){return t.getStreamTailIndex(e)}}}function createAttachSessionFn(e,t={}){return n=>createSession(n,e,t)}function createDelivery(e){return e.channelKind!==void 0&&e.channelName!==void 0?createChannelDeliveryMetadata(e):void 0}function buildSessionHandle(e){return{get id(){return e.get(SessionIdKey)??``},get auth(){return{current:e.get(AuthKey)??null,initiator:e.get(InitiatorAuthKey)??null}},get continuation(){let t=e.get(ContinuationTokenKey);if(t!==void 0&&t.length!==0)return{token:toChannelLocalContinuationToken(t),alias(n){if(n.length===0)throw Error(`A session alias requires a nonempty token.`);let r=namespaceContinuationToken(t,n);t!==r&&(e.set(ContinuationHookTokensKey,e=>{let n=e??[t];return n.includes(r)?n:[...n,r]}),e.set(ContinuationTokenKey,r))}}}}}function namespaceContinuationToken(e,t){let n=e.indexOf(`:`);if(n<=0)throw Error(`Cannot set session continuation token without an existing namespaced continuation token. Start the session with a placeholder continuationToken.`);return`${e.slice(0,n+1)}${t}`}function sessionCallbackToTurnCaller(e){return e===void 0?void 0:{callId:e.callId,replyTo:{kind:`callback`,token:e.token,url:e.url},subagentName:e.subagentName}}export{buildSessionHandle,createAttachSessionFn,createSession,sessionCallbackToTurnCaller};