eve 0.71.2 → 0.71.3

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 (94) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/src/channel/conversation-context.d.ts +4 -1
  3. package/dist/src/channel/invoke-tool.d.ts +41 -0
  4. package/dist/src/channel/invoke-tool.js +1 -0
  5. package/dist/src/channel/routes.d.ts +3 -0
  6. package/dist/src/compiled/.vendor-stamp.json +1 -1
  7. package/dist/src/compiler/extension-compatibility.d.ts +2 -2
  8. package/dist/src/compiler/extension-compatibility.js +1 -1
  9. package/dist/src/context/caller-scope.d.ts +7 -0
  10. package/dist/src/context/caller-scope.js +1 -0
  11. package/dist/src/execution/coordination-dispatch-shared.d.ts +2 -1
  12. package/dist/src/execution/coordination-dispatch-shared.js +1 -1
  13. package/dist/src/execution/coordination-dispatch-step.js +1 -1
  14. package/dist/src/execution/dynamic-workflow/tool.js +1 -1
  15. package/dist/src/execution/invoke-tool.d.ts +35 -0
  16. package/dist/src/execution/invoke-tool.js +1 -0
  17. package/dist/src/execution/publish-session-events.d.ts +3 -0
  18. package/dist/src/execution/publish-session-events.js +1 -1
  19. package/dist/src/execution/sandbox/active-handles.d.ts +6 -0
  20. package/dist/src/execution/sandbox/active-handles.js +1 -1
  21. package/dist/src/execution/sandbox/ensure.js +1 -1
  22. package/dist/src/execution/session/active-turn.js +1 -1
  23. package/dist/src/execution/session/answer-caller.d.ts +15 -0
  24. package/dist/src/execution/session/answer-caller.js +1 -0
  25. package/dist/src/execution/session/finalization.js +1 -1
  26. package/dist/src/execution/session/turn-step.js +1 -1
  27. package/dist/src/execution/terminal-session-completion-step.d.ts +3 -0
  28. package/dist/src/execution/terminal-session-completion-step.js +1 -1
  29. package/dist/src/execution/tools/agent-router-workflow.js +1 -1
  30. package/dist/src/execution/tools/connection-tools.js +1 -1
  31. package/dist/src/execution/tools/workflow/authorization-completion.js +1 -1
  32. package/dist/src/execution/tools/workflow/step-execution.js +1 -1
  33. package/dist/src/execution/workflow-runtime.js +1 -1
  34. package/dist/src/harness/approval-candidates.d.ts +4 -0
  35. package/dist/src/harness/approval-candidates.js +1 -1
  36. package/dist/src/harness/approved-call-callers.d.ts +11 -0
  37. package/dist/src/harness/approved-call-callers.js +1 -0
  38. package/dist/src/harness/coordination.d.ts +4 -0
  39. package/dist/src/harness/coordination.js +1 -1
  40. package/dist/src/harness/emission-state.d.ts +10 -0
  41. package/dist/src/harness/emission-state.js +1 -1
  42. package/dist/src/harness/emission.js +1 -1
  43. package/dist/src/harness/input-requests.d.ts +6 -0
  44. package/dist/src/harness/input-requests.js +1 -1
  45. package/dist/src/harness/messages.js +1 -1
  46. package/dist/src/harness/provider-tools.d.ts +5 -1
  47. package/dist/src/harness/provider-tools.js +1 -1
  48. package/dist/src/harness/session-limit-continuation.d.ts +3 -1
  49. package/dist/src/harness/session-limit-continuation.js +1 -1
  50. package/dist/src/harness/session-limit-enforcement.js +1 -1
  51. package/dist/src/harness/tool-call-io.d.ts +25 -0
  52. package/dist/src/harness/tool-call-io.js +1 -0
  53. package/dist/src/harness/tool-loop.js +2 -2
  54. package/dist/src/harness/tool-model-output.d.ts +1 -2
  55. package/dist/src/harness/tools.d.ts +1 -0
  56. package/dist/src/harness/tools.js +1 -1
  57. package/dist/src/harness/workflow-dispatch.js +1 -1
  58. package/dist/src/instrumentation/lifecycle.d.ts +4 -0
  59. package/dist/src/instrumentation/native-events.js +1 -1
  60. package/dist/src/internal/application/package.js +1 -1
  61. package/dist/src/internal/gateway.d.ts +2 -0
  62. package/dist/src/internal/gateway.js +1 -1
  63. package/dist/src/internal/nitro/host/instrumentation-entry.js +2 -2
  64. package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
  65. package/dist/src/internal/nitro/routes/channel-request-instrumentation.js +1 -1
  66. package/dist/src/internal/nitro/routes/route-invoke-tool.d.ts +24 -0
  67. package/dist/src/internal/nitro/routes/route-invoke-tool.js +1 -0
  68. package/dist/src/public/channels/index.d.ts +1 -1
  69. package/dist/src/public/definitions/channel.d.ts +1 -0
  70. package/dist/src/public/models/openai/chatgpt/model.js +1 -1
  71. package/dist/src/runtime/connections/mcp-client.js +1 -1
  72. package/dist/src/runtime/connections/scoped-authorization.js +1 -1
  73. package/dist/src/setup/scaffold/create/project.js +1 -1
  74. package/dist/src/setup/scaffold/create/web-template.d.ts +2 -2
  75. package/dist/src/setup/scaffold/create/web-template.js +25 -8
  76. package/dist/src/tools/provided/ask-question-workflow.js +1 -1
  77. package/dist/src/tools/provided/sleep-workflow.js +1 -1
  78. package/dist/src/tracing/agent-action-instrumentation.d.ts +1 -0
  79. package/dist/src/tracing/agent-action-instrumentation.js +1 -1
  80. package/dist/src/tracing/agent-otel-provider.js +1 -1
  81. package/dist/src/tracing/agent-span-contract.d.ts +8 -0
  82. package/dist/src/tracing/agent-span-contract.js +1 -1
  83. package/dist/src/tracing/agent-tool-instrumentation.d.ts +1 -0
  84. package/dist/src/tracing/agent-tool-instrumentation.js +1 -1
  85. package/dist/src/tracing/agent-trace-context-codec.js +1 -1
  86. package/dist/src/tracing/agent-trace-span-processor.js +1 -1
  87. package/dist/src/tracing/agent-trace-state.d.ts +1 -0
  88. package/dist/src/tracing/install-instrumentation-runtime.js +1 -1
  89. package/dist/src/tracing/invoke-tool-span.d.ts +61 -0
  90. package/dist/src/tracing/invoke-tool-span.js +1 -0
  91. package/docs/channels/custom.mdx +1 -0
  92. package/docs/reference/cli.md +2 -0
  93. package/docs/tools/human-in-the-loop.md +2 -0
  94. package/package.json +3 -1
@@ -68,6 +68,7 @@ Each route receives these operation surfaces:
68
68
  - `to(channel, target).send(message, options)` hands work to another authored channel.
69
69
  - `params`, `waitUntil`, and `requestIp` provide request metadata and lifetime control.
70
70
  - `describe()` returns the agent's name, description, and the compiled tools a caller can run outside a turn, with their JSON schemas, sorted by name. It carries no paths, config, or other inspection detail, so a channel can publish it to its callers. Tools that need a turn (framework tools, workflow and provider tools, tools without `execute`) and tools added by dynamic resolvers or subagents are left out.
71
+ - `invokeTool(name, input, { auth })` runs one of those tools as `auth`, outside any conversation: no model, turn, or workflow run. Each call gets its own session. Authored state starts from its initial value and is not kept, and a sandbox the tool opens is deleted when the call ends. It resolves to `completed` with the tool's output, or to `invalid-input`, `denied`, `failed`, `approval-required` when the tool's approval policy asks a person (the tool did not run), or `authorization-required` with the connections the tool needs a sign-in to.
71
72
 
72
73
  Event handlers receive `(eventData, channel, ctx)`. `ctx.session.id` identifies
73
74
  the exact session, while `channel.continuation` exposes the current address and
@@ -397,6 +397,8 @@ Each workflow tool call has an `agent.action` span and an `execute_tool <tool>`
397
397
 
398
398
  Outbound MCP `tools/call` requests add MCP semantic attributes to the matching `execute_tool` span. When eve has no tool span to enrich, it creates a `CLIENT` `tools/call <tool>` span. Each `tools/list` discovery also has a `CLIENT` span. Configured OpenTelemetry propagation fields are injected into MCP `params._meta` for JSON-RPC bodies up to 1 MiB and propagation metadata up to 8 KiB; larger requests are sent unchanged. eve removes its audience and session-lineage baggage before forwarding, and keeps the input/output content-capture policy local.
399
399
 
400
+ `connection_execute` records the connector call as a child of its outer `agent.action` span, with `agent.action.parent_call_id` identifying the outer call. Both spans retain `agent.action.kind=tool-call`; consumers can distinguish nested calls by the parent call ID. The nested span's `gen_ai.tool.call.arguments` holds the validated connector input, including schema defaults, when input capture is enabled. Its duration covers the reporting of the nested result, not the connector request; use the outer call's `execute_tool` span for execution timing.
401
+
400
402
  Each root agent turn starts a new trace. With local caller trace context, that trace includes the first turn of each local subagent it starts. Remote child turns and later local child turns start separate traces. If a worker is replaced, the new worker uses the prepared trace context for the same turn. Supply the conversation ID to show all related traces, oldest first.
401
403
 
402
404
  Every span carries a real duration. A turn's root `invoke_agent` span is written when the turn settles, so a running turn shows only its steps.
@@ -226,6 +226,8 @@ The run picks back up exactly where it parked. Because the pause is durable, not
226
226
 
227
227
  When a subagent requests input, eve emits the same `input.requested` event on its parent session. Answering through that parent session routes the response directly to the blocked child without invoking the parent model.
228
228
 
229
+ If a tool is approved by another user, only the approved call runs with that user's auth. Subsequent tool calls in the turn stay with the original owner.
230
+
229
231
  For approval requests, a follow-up message that doesn't match an option steers the turn instead of answering it. eve cancels the turn's pending approval, so the call doesn't run and `input.resolved` reports `outcome: "ignored"`, and the model reads the message next. This happens even when the message is sent with `turnPolicy: "queue"`, because a turn held on a person can't end until they act. Calls the person already approved in the same batch still run. A message from someone other than the person the turn serves waits until the turn ends. Cancelling the turn withdraws its approval: the call doesn't run, `input.resolved` reports `outcome: "cancelled"`, and a later answer to it approves nothing.
230
232
 
231
233
  See [Sessions, runs & streaming](/docs/concepts/sessions-runs-and-streaming) for the full event and resume contract that this builds on.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eve",
3
- "version": "0.71.2",
3
+ "version": "0.71.3",
4
4
  "private": false,
5
5
  "description": "Filesystem-first framework for durable backend AI agents that run anywhere.",
6
6
  "keywords": [
@@ -570,6 +570,7 @@
570
570
  "microsandbox": "0.5.5",
571
571
  "next": "16.3.4",
572
572
  "picocolors": "1.1.1",
573
+ "playwright-core": "1.63.0",
573
574
  "react": "19.2.6",
574
575
  "react-test-renderer": "19.2.6",
575
576
  "run": "2.1.2",
@@ -637,6 +638,7 @@
637
638
  "check:bin-runtime-dependencies": "node ./scripts/check-bin-runtime-dependencies.mjs",
638
639
  "dev": "pnpm run build:compiled && node ./scripts/copy-runtime-assets.mjs && tsc -p tsconfig.dev.json --watch --preserveWatchOutput",
639
640
  "test": "pnpm run test:unit && pnpm run test:integration",
641
+ "test:browser": "pnpm run build:js && vitest run --config vitest.browser.config.ts",
640
642
  "test:framework-fixtures": "pnpm run build:compiled && vitest run --config vitest.framework-fixtures.config.ts",
641
643
  "test:integration": "pnpm run build:js && vitest run --config vitest.integration.config.ts",
642
644
  "test:scenario": "pnpm run build:compiled && vitest run --config vitest.scenario.config.ts",