eve 0.83.2 → 0.84.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.
- package/CHANGELOG.md +61 -0
- package/README.md +1 -5
- package/dist/src/_virtual/_rolldown/runtime.js +1 -1
- package/dist/src/acp/adapter.d.ts +8 -5
- package/dist/src/acp/adapter.js +1 -1
- package/dist/src/ai/decide.d.ts +3 -7
- package/dist/src/ai/decide.js +1 -1
- package/dist/src/ai/decision-adapter.d.ts +7 -0
- package/dist/src/ai/decision-adapter.js +1 -0
- package/dist/src/ai/decision-types.d.ts +86 -0
- package/dist/src/approval/definition.d.ts +5 -12
- package/dist/src/approval/evaluation.d.ts +48 -0
- package/dist/src/approval/evaluation.js +1 -0
- package/dist/src/approval/status.d.ts +14 -0
- package/dist/src/approval/status.js +1 -0
- package/dist/src/channel/adapter-context.d.ts +1 -3
- package/dist/src/channel/adapter-context.js +1 -1
- package/dist/src/channel/adapter.d.ts +34 -26
- package/dist/src/channel/adapter.js +1 -1
- package/dist/src/channel/audience.d.ts +0 -3
- package/dist/src/channel/audience.js +1 -1
- package/dist/src/channel/auth/definitions.d.ts +532 -0
- package/dist/src/channel/auth/definitions.js +1 -0
- package/dist/src/channel/auth/jwt-ecdsa.js +1 -1
- package/dist/src/channel/auth/jwt-hmac.js +1 -1
- package/dist/src/channel/auth/oidc.js +1 -1
- package/dist/src/channel/channel-address.d.ts +12 -10
- package/dist/src/channel/channel-address.js +1 -1
- package/dist/src/channel/channel-operations.d.ts +21 -22
- package/dist/src/channel/channel-operations.js +1 -1
- package/dist/src/channel/compiled-channel.d.ts +4 -4
- package/dist/src/channel/conversation-context.js +1 -1
- package/dist/src/channel/cors.d.ts +2 -2
- package/dist/src/channel/cors.js +1 -1
- package/dist/src/channel/cross-channel-receive.d.ts +3 -3
- package/dist/src/channel/delivery-idempotency.d.ts +6 -0
- package/dist/src/channel/delivery-idempotency.js +1 -1
- package/dist/src/channel/delivery-metadata.d.ts +2 -2
- package/dist/src/channel/delivery.d.ts +8 -0
- package/dist/src/channel/delivery.js +1 -0
- package/dist/src/channel/interaction-prompts.d.ts +54 -0
- package/dist/src/channel/interaction-prompts.js +1 -0
- package/dist/src/channel/invoke-tool.d.ts +11 -18
- package/dist/src/channel/pending-authorization.d.ts +3 -14
- package/dist/src/channel/pending-authorization.js +1 -1
- package/dist/src/channel/prompt-queue.d.ts +11 -19
- package/dist/src/channel/prompt-queue.js +1 -1
- package/dist/src/channel/resolve-text.d.ts +11 -18
- package/dist/src/channel/resolve-text.js +2 -2
- package/dist/src/channel/resolved-prompt.d.ts +7 -5
- package/dist/src/channel/resolved-prompt.js +1 -1
- package/dist/src/channel/routes.d.ts +4 -4
- package/dist/src/channel/schedule.d.ts +2 -2
- package/dist/src/channel/schedule.js +1 -1
- package/dist/src/channel/send-input.d.ts +3 -3
- package/dist/src/channel/send-input.js +1 -1
- package/dist/src/channel/session-callback.js +1 -1
- package/dist/src/channel/session-not-active-error.d.ts +8 -12
- package/dist/src/channel/session-not-active-error.js +1 -1
- package/dist/src/channel/session.d.ts +33 -59
- package/dist/src/channel/session.js +1 -1
- package/dist/src/channel/sign-in.d.ts +61 -0
- package/dist/src/channel/sign-in.js +3 -0
- package/dist/src/channel/surface.d.ts +44 -0
- package/dist/src/channel/surface.js +1 -0
- package/dist/src/channel/task-card.d.ts +24 -114
- package/dist/src/channel/task-card.js +1 -1
- package/dist/src/channel/types.d.ts +116 -110
- package/dist/src/channel/types.js +1 -1
- package/dist/src/chunks/use-eve-agent-BbbguIdB.js +5030 -0
- package/dist/src/chunks/use-eve-agent-DWjyzplb.js +5077 -0
- package/dist/src/cli/commands/logs-events.d.ts +2 -0
- package/dist/src/cli/commands/logs-events.js +2 -2
- package/dist/src/cli/dev/command.js +1 -1
- package/dist/src/cli/dev/remote-print.d.ts +8 -0
- package/dist/src/cli/dev/remote-print.js +1 -0
- package/dist/src/cli/dev/tui/conversation-view.d.ts +24 -19
- package/dist/src/cli/dev/tui/conversation-view.js +1 -1
- package/dist/src/cli/dev/tui/diagnostic-presentation.d.ts +0 -10
- package/dist/src/cli/dev/tui/diagnostic-presentation.js +2 -3
- package/dist/src/cli/dev/tui/errors.d.ts +9 -65
- package/dist/src/cli/dev/tui/errors.js +1 -1
- package/dist/src/cli/dev/tui/prompt-command-handler.js +1 -1
- package/dist/src/cli/dev/tui/runner.js +3 -3
- package/dist/src/cli/dev/tui/task-records.d.ts +3 -3
- package/dist/src/cli/dev/tui/task-records.js +1 -1
- package/dist/src/cli/dev/tui/terminal-renderer.js +10 -10
- package/dist/src/cli/dev/tui/terminal-tool-part.d.ts +2 -2
- package/dist/src/cli/dev/tui/terminal-tool-part.js +1 -1
- package/dist/src/cli/dev/tui/test/fake-eve-server.d.ts +3 -3
- package/dist/src/cli/dev/tui/test/fake-eve-server.js +1 -1
- package/dist/src/cli/dev/tui/tool-presentation.js +1 -1
- package/dist/src/cli/dev/tui/transcript-parts.d.ts +16 -16
- package/dist/src/cli/dev/tui/transcript-parts.js +3 -3
- package/dist/src/cli/dev/tui/transcript.d.ts +0 -4
- package/dist/src/cli/dev/tui/transcript.js +1 -1
- package/dist/src/cli/dev/tui/tui.js +1 -1
- package/dist/src/cli/run.d.ts +0 -2
- package/dist/src/cli/run.js +1 -1
- package/dist/src/cli/telemetry/index.js +1 -1
- package/dist/src/client/agent-base-url.d.ts +4 -0
- package/dist/src/client/agent-base-url.js +1 -0
- package/dist/src/client/agent-info-schema.d.ts +1 -923
- package/dist/src/client/agent-info-schema.js +1 -1
- package/dist/src/client/agent-info-types.d.ts +281 -0
- package/dist/src/client/agent-session.d.ts +19 -22
- package/dist/src/client/agent-session.js +1 -1
- package/dist/src/client/agent-stream-follower.d.ts +11 -20
- package/dist/src/client/agent-stream-follower.js +1 -1
- package/dist/src/client/client-error.d.ts +2 -1
- package/dist/src/client/client-error.js +1 -1
- package/dist/src/client/client.d.ts +1 -1
- package/dist/src/client/client.js +1 -1
- package/dist/src/client/conversation-client.d.ts +37 -28
- package/dist/src/client/conversation-client.js +1 -1
- package/dist/src/client/conversation-state.d.ts +70 -73
- package/dist/src/client/conversation-state.js +1 -1
- package/dist/src/client/conversation.d.ts +51 -0
- package/dist/src/client/conversation.js +1 -0
- package/dist/src/client/delivery-events.d.ts +3 -0
- package/dist/src/client/delivery-events.js +1 -0
- package/dist/src/client/delivery.d.ts +36 -0
- package/dist/src/client/delivery.js +1 -0
- package/dist/src/client/file-parts.d.ts +9 -4
- package/dist/src/client/file-parts.js +1 -1
- package/dist/src/client/health-schema.d.ts +1 -1
- package/dist/src/client/health-types.d.ts +6 -0
- package/dist/src/client/index.d.ts +17 -23
- package/dist/src/client/index.js +1 -1
- package/dist/src/client/message-types.d.ts +92 -0
- package/dist/src/client/message-types.js +1 -0
- package/dist/src/client/messages.d.ts +30 -0
- package/dist/src/client/messages.js +1 -0
- package/dist/src/client/ndjson.d.ts +6 -11
- package/dist/src/client/ndjson.js +3 -3
- package/dist/src/client/open-stream.d.ts +47 -20
- package/dist/src/client/open-stream.js +1 -1
- package/dist/src/client/optimistic-message-submissions.d.ts +10 -19
- package/dist/src/client/optimistic-message-submissions.js +1 -1
- package/dist/src/client/session-controls.d.ts +23 -26
- package/dist/src/client/session-controls.js +1 -1
- package/dist/src/client/session-event-stream.d.ts +5 -16
- package/dist/src/client/session-event-stream.js +1 -1
- package/dist/src/client/session-store-helpers.d.ts +8 -0
- package/dist/src/client/session-store-helpers.js +2 -0
- package/dist/src/client/session-store-state.d.ts +80 -0
- package/dist/src/client/session-store-state.js +1 -0
- package/dist/src/client/session-store.d.ts +48 -0
- package/dist/src/client/session-store.js +1 -0
- package/dist/src/client/session-utils.d.ts +45 -41
- package/dist/src/client/session-utils.js +2 -1
- package/dist/src/client/session.d.ts +32 -23
- package/dist/src/client/session.js +1 -1
- package/dist/src/client/sessions.d.ts +2 -2
- package/dist/src/client/stream-version.d.ts +3 -1
- package/dist/src/client/stream-version.js +1 -1
- package/dist/src/client/transcript.d.ts +43 -0
- package/dist/src/client/transcript.js +2 -0
- package/dist/src/client/types.d.ts +21 -82
- package/dist/src/client/url.d.ts +3 -3
- package/dist/src/compiled/.vendor-stamp.json +1 -1
- package/dist/src/compiled/@ai-sdk/anthropic/index.d.ts +34 -34
- package/dist/src/compiled/@ai-sdk/google/index.d.ts +15 -15
- package/dist/src/compiled/@ai-sdk/openai/index.d.ts +38 -38
- package/dist/src/compiled/@chat-adapter/slack/fetch-QqNM_Ef3.d.ts +4 -0
- package/dist/src/compiled/@chat-adapter/twilio/types-BaIqtt65.d.ts +100 -0
- package/dist/src/compiled/@linqapp/chat-sdk-adapter/adapter.d.ts +129 -0
- package/dist/src/compiled/@linqapp/chat-sdk-adapter/message-parser.d.ts +14 -0
- package/dist/src/compiled/@linqapp/chat-sdk-adapter/text-decorations.d.ts +28 -0
- package/dist/src/compiled/@workflow/core/runtime/step-executor.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/serialization/types.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/serialization.d.ts +2 -2
- package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +2 -2
- package/dist/src/compiled/semver/index.d.ts +2 -0
- package/dist/src/compiler/development-extensions.js +1 -1
- package/dist/src/compiler/extension-compatibility.d.ts +19 -290
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/compiler/manifest.d.ts +1 -9
- package/dist/src/compiler/manifest.js +1 -1
- package/dist/src/compiler/normalize-agent-config.js +1 -1
- package/dist/src/compiler/normalize-connection.js +1 -1
- package/dist/src/compiler/normalize-hook.js +1 -1
- package/dist/src/compiler/normalize-instructions.js +1 -1
- package/dist/src/compiler/normalize-manifest.js +1 -1
- package/dist/src/compiler/normalize-memory.js +1 -1
- package/dist/src/compiler/normalize-schedule.js +1 -1
- package/dist/src/compiler/normalize-skill.js +1 -1
- package/dist/src/compiler/normalize-subagent.d.ts +0 -5
- package/dist/src/compiler/normalize-subagent.js +1 -1
- package/dist/src/compiler/normalize-tool.js +1 -1
- package/dist/src/compiler/remote-agent-node.d.ts +1 -6
- package/dist/src/compiler/source-graph.d.ts +0 -1
- package/dist/src/compiler/source-graph.js +1 -1
- package/dist/src/computer-use/extension/lib/computer-use-sandbox.js +1 -1
- package/dist/src/computer-use/extension/lib/sandbox.d.ts +1 -1
- package/dist/src/computer-use/extension/lib/sandbox.js +1 -1
- package/dist/src/computer-use/extension/tools/computer_use.js +1 -1
- package/dist/src/connections/errors.d.ts +3 -3
- package/dist/src/context/accessors.d.ts +0 -13
- package/dist/src/context/accessors.js +1 -1
- package/dist/src/context/container.d.ts +8 -11
- package/dist/src/context/container.js +1 -1
- package/dist/src/context/key-names.d.ts +1 -0
- package/dist/src/context/key-names.js +1 -1
- package/dist/src/context/keys.d.ts +20 -104
- package/dist/src/context/keys.js +1 -1
- package/dist/src/context/memory-tools.d.ts +4 -2
- package/dist/src/context/memory-tools.js +1 -1
- package/dist/src/context/providers/connection.js +1 -1
- package/dist/src/context/providers/session.js +1 -1
- package/dist/src/context/schedule-collection-tools.d.ts +2 -2
- package/dist/src/context/schedule-collection-tools.js +1 -1
- package/dist/src/context/session-context.d.ts +4 -2
- package/dist/src/discover/extensions.d.ts +2 -3
- package/dist/src/discover/extensions.js +1 -1
- package/dist/src/discover/manifest.js +1 -1
- package/dist/src/discover/skills.js +1 -1
- package/dist/src/dynamic/definition.d.ts +98 -108
- package/dist/src/dynamic/definition.js +1 -1
- package/dist/src/evals/assertions/collector.js +1 -1
- package/dist/src/evals/assertions/run.d.ts +12 -11
- package/dist/src/evals/assertions/run.js +2 -2
- package/dist/src/evals/assertions/scoped.js +1 -1
- package/dist/src/evals/cli/eval-client.js +1 -1
- package/dist/src/evals/cli/eval.js +2 -2
- package/dist/src/evals/context.js +1 -1
- package/dist/src/evals/expect/index.d.ts +0 -1
- package/dist/src/evals/index.d.ts +2 -5
- package/dist/src/evals/judge.js +1 -1
- package/dist/src/evals/match.d.ts +20 -17
- package/dist/src/evals/match.js +1 -1
- package/dist/src/evals/mock-model.d.ts +5 -1
- package/dist/src/evals/mock-model.js +1 -1
- package/dist/src/evals/output.d.ts +3 -0
- package/dist/src/evals/output.js +1 -0
- package/dist/src/evals/reported-tool-name.js +1 -1
- package/dist/src/evals/reporters/index.d.ts +4 -4
- package/dist/src/evals/reporters/index.js +1 -1
- package/dist/src/evals/runner/artifacts.js +1 -1
- package/dist/src/evals/runner/derive-run-facts.d.ts +8 -40
- package/dist/src/evals/runner/derive-run-facts.js +1 -1
- package/dist/src/evals/runner/execute-eval.js +1 -1
- package/dist/src/evals/runner/execute-task.d.ts +3 -1
- package/dist/src/evals/runner/execute-task.js +1 -1
- package/dist/src/evals/runner/reporters/braintrust.d.ts +1 -1
- package/dist/src/evals/runner/reporters/braintrust.js +2 -2
- package/dist/src/evals/runner/reporters/console.d.ts +1 -1
- package/dist/src/evals/runner/reporters/console.js +1 -1
- package/dist/src/evals/runner/reporters/datadog.d.ts +1 -1
- package/dist/src/evals/runner/reporters/datadog.js +2 -2
- package/dist/src/evals/runner/reporters/junit.d.ts +1 -1
- package/dist/src/evals/runner/reporters/junit.js +2 -2
- package/dist/src/evals/runner/reporters/types.d.ts +2 -2
- package/dist/src/evals/runner/run-evals.d.ts +1 -1
- package/dist/src/evals/session-cleanup.d.ts +1 -1
- package/dist/src/evals/session-cleanup.js +1 -1
- package/dist/src/evals/session-content.d.ts +2 -2
- package/dist/src/evals/session-content.js +2 -1
- package/dist/src/evals/session-manager.d.ts +3 -6
- package/dist/src/evals/session-manager.js +1 -1
- package/dist/src/evals/session.d.ts +33 -24
- package/dist/src/evals/session.js +2 -2
- package/dist/src/evals/target.js +1 -1
- package/dist/src/evals/types.d.ts +115 -94
- package/dist/src/eve-channel/create-request.d.ts +3 -5
- package/dist/src/eve-channel/descendant-stream.d.ts +9 -0
- package/dist/src/eve-channel/descendant-stream.js +1 -0
- package/dist/src/eve-channel/index.d.ts +2 -2
- package/dist/src/eve-channel/index.js +1 -1
- package/dist/src/eve-channel/request.d.ts +7 -6
- package/dist/src/eve-channel/request.js +1 -3
- package/dist/src/eve-channel/stream-headers.d.ts +1 -1
- package/dist/src/eve-channel/stream-headers.js +1 -1
- package/dist/src/eve-channel/support.d.ts +25 -13
- package/dist/src/eve-channel/support.js +2 -2
- package/dist/src/eve-channel/types.d.ts +7 -30
- package/dist/src/execution/agent-sessions/message.d.ts +4 -0
- package/dist/src/execution/agent-sessions/message.js +1 -0
- package/dist/src/execution/agent-sessions/metadata.js +1 -1
- package/dist/src/execution/agent-sessions/remote-credentials.d.ts +19 -0
- package/dist/src/execution/agent-sessions/remote-credentials.js +1 -0
- package/dist/src/execution/agent-sessions/remote.d.ts +35 -13
- package/dist/src/execution/agent-sessions/remote.js +1 -1
- package/dist/src/execution/agent-sessions/requests.d.ts +6 -6
- package/dist/src/execution/agent-sessions/requests.js +1 -1
- package/dist/src/execution/agent-sessions/session.js +1 -1
- package/dist/src/execution/agent-sessions/steps.d.ts +26 -4
- package/dist/src/execution/agent-sessions/steps.js +1 -1
- package/dist/src/execution/agent-sessions/target.d.ts +2 -1
- package/dist/src/execution/agent-sessions/target.js +1 -1
- package/dist/src/execution/agent-sessions/usage.d.ts +0 -8
- package/dist/src/execution/agent-sessions/usage.js +1 -1
- package/dist/src/execution/cancelled-model-call-batch.d.ts +4 -2
- package/dist/src/execution/cancelled-model-call-batch.js +1 -1
- package/dist/src/execution/cancelled-turn-message.d.ts +2 -2
- package/dist/src/execution/cancelled-turn-message.js +1 -1
- package/dist/src/execution/catalog/connection-auth.js +1 -1
- package/dist/src/execution/catalog/connection-entry.js +1 -1
- package/dist/src/execution/catalog/rank.js +1 -1
- package/dist/src/execution/catalog/search.js +1 -1
- package/dist/src/execution/catalog/skills.js +1 -1
- package/dist/src/execution/catalog/step-catalog.js +1 -1
- package/dist/src/execution/child-binding.d.ts +19 -0
- package/dist/src/execution/child-binding.js +1 -0
- package/dist/src/execution/close-session-stream-step.d.ts +9 -0
- package/dist/src/execution/close-session-stream-step.js +1 -0
- package/dist/src/execution/coordination-dispatch-shared.d.ts +13 -3
- package/dist/src/execution/coordination-dispatch-shared.js +1 -1
- package/dist/src/execution/coordination-dispatch-step.d.ts +9 -13
- package/dist/src/execution/coordination-dispatch-step.js +1 -1
- package/dist/src/execution/deliver-payloads.js +1 -1
- package/dist/src/execution/durable-session-store.d.ts +2 -5
- package/dist/src/execution/dynamic-workflow/tool.js +1 -1
- package/dist/src/execution/dynamic-workflow/workflow.js +1 -1
- package/dist/src/execution/failure-summary.d.ts +11 -0
- package/dist/src/execution/failure-summary.js +1 -0
- package/dist/src/execution/forward-session-input.d.ts +2 -2
- package/dist/src/execution/forward-session-input.js +1 -1
- package/dist/src/execution/invoke-tool.js +1 -1
- package/dist/src/execution/legacy-session/prepare-step.js +1 -1
- package/dist/src/execution/legacy-session/snapshot.d.ts +4 -1
- package/dist/src/execution/legacy-session/snapshot.js +1 -1
- package/dist/src/execution/model-call-batching.d.ts +3 -3
- package/dist/src/execution/model-call-batching.js +1 -1
- package/dist/src/execution/ndjson-stream.d.ts +1 -1
- package/dist/src/execution/node-step.d.ts +2 -8
- package/dist/src/execution/node-step.js +1 -1
- package/dist/src/execution/proxied-deliver-step.d.ts +8 -3
- package/dist/src/execution/proxied-deliver-step.js +1 -1
- package/dist/src/execution/public-destination.d.ts +34 -0
- package/dist/src/execution/public-destination.js +1 -0
- package/dist/src/execution/publish-session-events.d.ts +98 -36
- package/dist/src/execution/publish-session-events.js +1 -1
- package/dist/src/execution/runtime-context.js +1 -1
- package/dist/src/execution/sandbox/abort-bound-session.js +1 -1
- package/dist/src/execution/sandbox/bash.js +1 -1
- package/dist/src/execution/sandbox/bindings/docker-connection.js +1 -1
- package/dist/src/execution/sandbox/bindings/docker.js +1 -1
- package/dist/src/execution/sandbox/bindings/eve-image.d.ts +0 -2
- package/dist/src/execution/sandbox/bindings/eve-image.js +1 -1
- package/dist/src/execution/sandbox/bindings/just-bash-runtime.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel.js +1 -1
- package/dist/src/execution/sandbox/ensure.js +1 -1
- package/dist/src/{extensions/code/extension/lib → execution/sandbox}/grep-search.d.ts +3 -2
- package/dist/src/execution/sandbox/grep-search.js +6 -0
- package/dist/src/execution/sandbox/read-file.d.ts +1 -1
- package/dist/src/execution/sandbox/session.js +1 -1
- package/dist/src/execution/sandbox/workspace-root.d.ts +31 -0
- package/dist/src/execution/sandbox/workspace-root.js +1 -0
- package/dist/src/execution/session/active-turn.d.ts +12 -6
- package/dist/src/execution/session/active-turn.js +1 -1
- package/dist/src/execution/session/admission.d.ts +7 -2
- package/dist/src/execution/session/admission.js +1 -1
- package/dist/src/execution/session/answer-caller.d.ts +4 -4
- package/dist/src/execution/session/answer-caller.js +1 -1
- package/dist/src/execution/session/checkpoint-migrations.d.ts +4 -6
- package/dist/src/execution/session/checkpoint-migrations.js +1 -1
- package/dist/src/execution/session/control-delivery.d.ts +4 -0
- package/dist/src/execution/session/control-delivery.js +1 -0
- package/dist/src/execution/session/delivery-facts.d.ts +27 -0
- package/dist/src/execution/session/delivery-facts.js +1 -0
- package/dist/src/execution/session/end-sandbox-step.js +1 -1
- package/dist/src/execution/session/entry.js +1 -1
- package/dist/src/execution/session/finalization.d.ts +4 -0
- package/dist/src/execution/session/finalization.js +1 -1
- package/dist/src/execution/session/handoff-state.js +1 -1
- package/dist/src/execution/session/handoff-steps.d.ts +1 -8
- package/dist/src/execution/session/handoff-steps.js +1 -1
- package/dist/src/execution/session/handoff.d.ts +5 -3
- package/dist/src/execution/session/handoff.js +1 -1
- package/dist/src/execution/session/input-queue.d.ts +8 -2
- package/dist/src/execution/session/input-queue.js +1 -1
- package/dist/src/execution/session/interrupted-step.d.ts +64 -0
- package/dist/src/execution/session/interrupted-step.js +3 -0
- package/dist/src/execution/session/next-input.d.ts +7 -1
- package/dist/src/execution/session/next-input.js +1 -1
- package/dist/src/execution/session/pending-turn-state.d.ts +32 -12
- package/dist/src/execution/session/pending-turn-state.js +1 -1
- package/dist/src/execution/session/prewarm-step.d.ts +1 -1
- package/dist/src/execution/session/prewarm-step.js +1 -1
- package/dist/src/execution/session/program.js +1 -1
- package/dist/src/execution/session/settle-control-delivery-step.d.ts +8 -0
- package/dist/src/execution/session/settle-control-delivery-step.js +1 -0
- package/dist/src/execution/session/settle-duplicate-delivery-step.d.ts +8 -0
- package/dist/src/execution/session/settle-duplicate-delivery-step.js +1 -0
- package/dist/src/execution/session/state-delta.d.ts +2 -12
- package/dist/src/execution/session/state-delta.js +1 -1
- package/dist/src/execution/session/step-decision-check.d.ts +9 -0
- package/dist/src/execution/session/step-decision-check.js +1 -0
- package/dist/src/execution/session/step-state-delta.d.ts +16 -0
- package/dist/src/execution/session/step-state-delta.js +1 -0
- package/dist/src/execution/session/task-tool-tracing-step.d.ts +0 -3
- package/dist/src/execution/session/task-tool-tracing-step.js +1 -1
- package/dist/src/execution/session/turn-event-handler.d.ts +6 -16
- package/dist/src/execution/session/turn-event-handler.js +1 -1
- package/dist/src/execution/session/turn-step-result.d.ts +7 -2
- package/dist/src/execution/session/turn-step-result.js +1 -1
- package/dist/src/execution/session/turn-step-types.d.ts +35 -33
- package/dist/src/execution/session/turn-step.js +1 -1
- package/dist/src/execution/session/turn.d.ts +19 -32
- package/dist/src/execution/session/turn.js +1 -1
- package/dist/src/execution/session-callback-request.d.ts +7 -1
- package/dist/src/execution/session-callback-request.js +1 -1
- package/dist/src/execution/session-event-stream.d.ts +37 -16
- package/dist/src/execution/session-event-stream.js +1 -1
- package/dist/src/execution/session-inbox/end-stranded-session.d.ts +7 -1
- package/dist/src/execution/session-inbox/end-stranded-session.js +1 -1
- package/dist/src/execution/session-inbox/inbox.js +1 -1
- package/dist/src/execution/session-inbox/owner.d.ts +5 -2
- package/dist/src/execution/session-inbox/owner.js +1 -1
- package/dist/src/execution/session-inbox/pre-v27.d.ts +5 -0
- package/dist/src/execution/session-inbox/pre-v27.js +1 -0
- package/dist/src/execution/session-inbox/protocol.js +1 -1
- package/dist/src/execution/session-inbox/resume.js +1 -1
- package/dist/src/execution/session-inbox/stranded-replay-guard.js +1 -1
- package/dist/src/execution/session-workflow-tool-run.js +1 -1
- package/dist/src/execution/session.d.ts +3 -14
- package/dist/src/execution/session.js +2 -2
- package/dist/src/execution/settle-cancelled-turn-step.d.ts +3 -0
- package/dist/src/execution/settle-cancelled-turn-step.js +1 -1
- package/dist/src/execution/stop-runs.d.ts +35 -0
- package/dist/src/execution/stop-runs.js +1 -0
- package/dist/src/execution/tasks/model-step.d.ts +5 -9
- package/dist/src/execution/tasks/model-step.js +1 -1
- package/dist/src/execution/tasks/render.d.ts +5 -2
- package/dist/src/execution/tasks/render.js +1 -1
- package/dist/src/execution/tasks/session.d.ts +6 -3
- package/dist/src/execution/tasks/session.js +1 -1
- package/dist/src/execution/tasks/start.d.ts +9 -6
- package/dist/src/execution/tasks/start.js +1 -1
- package/dist/src/execution/tasks/steps.d.ts +11 -6
- package/dist/src/execution/tasks/steps.js +1 -1
- package/dist/src/execution/tasks/table.d.ts +18 -5
- package/dist/src/execution/tasks/table.js +1 -1
- package/dist/src/execution/tasks/task-id-input.js +1 -1
- package/dist/src/execution/terminal-session-completion-step.d.ts +11 -1
- package/dist/src/execution/terminal-session-completion-step.js +1 -1
- package/dist/src/execution/terminal-session-failure-step.d.ts +6 -1
- package/dist/src/execution/terminal-session-failure-step.js +1 -1
- package/dist/src/execution/terminate-child-sessions-step.d.ts +5 -1
- package/dist/src/execution/terminate-child-sessions-step.js +1 -1
- package/dist/src/execution/tools/agent-router-workflow.js +1 -1
- package/dist/src/execution/tools/workflow/answer.d.ts +4 -5
- package/dist/src/execution/tools/workflow/answer.js +1 -1
- package/dist/src/execution/tools/workflow/apply-run-messages-step.d.ts +1 -1
- package/dist/src/execution/tools/workflow/apply-run-messages-step.js +1 -1
- package/dist/src/execution/tools/workflow/ask.d.ts +3 -3
- package/dist/src/execution/tools/workflow/body.js +1 -1
- package/dist/src/execution/tools/workflow/harness-definition.js +1 -1
- package/dist/src/execution/tools/workflow/messages.d.ts +25 -33
- package/dist/src/execution/tools/workflow/messages.js +1 -1
- package/dist/src/execution/tools/workflow/owner-inbox.d.ts +9 -5
- package/dist/src/execution/tools/workflow/owner-inbox.js +1 -1
- package/dist/src/execution/tools/workflow/owner.d.ts +3 -3
- package/dist/src/execution/tools/workflow/owner.js +1 -1
- package/dist/src/execution/tools/workflow/serve.js +1 -1
- package/dist/src/execution/tools/workflow/step.js +1 -1
- package/dist/src/execution/tools/workflow/withdraw-step.d.ts +2 -2
- package/dist/src/execution/tools/workflow/withdraw-step.js +1 -1
- package/dist/src/execution/v26-history.d.ts +28 -0
- package/dist/src/execution/v26-history.fixtures.d.ts +4 -0
- package/dist/src/execution/v26-history.fixtures.js +2 -0
- package/dist/src/execution/v26-history.js +1 -0
- package/dist/src/execution/web-fetch/html.js +3 -4
- package/dist/src/execution/web-fetch/request.js +1 -1
- package/dist/src/execution/workflow-errors.d.ts +5 -0
- package/dist/src/execution/workflow-errors.js +1 -1
- package/dist/src/execution/workflow-runtime.js +1 -1
- package/dist/src/extensions/code/extension/extension.d.ts +1 -11
- package/dist/src/extensions/code/extension/extension.js +1 -1
- package/dist/src/extensions/code/extension/lib/prwatch-github.d.ts +5 -1
- package/dist/src/extensions/code/extension/lib/prwatch-github.js +1 -1
- package/dist/src/extensions/code/extension/lib/repository-root.js +1 -1
- package/dist/src/extensions/code/extension/lib/sandbox.d.ts +0 -4
- package/dist/src/extensions/code/extension/lib/sandbox.js +2 -2
- package/dist/src/extensions/code/extension/lib/tooling.d.ts +1 -1
- package/dist/src/extensions/code/extension/lib/tooling.js +1 -1
- package/dist/src/extensions/code/extension/lib/workspace-root.d.ts +1 -31
- package/dist/src/extensions/code/extension/lib/workspace-root.js +1 -1
- package/dist/src/extensions/code/extension/subagents/worker/agent.d.ts +1 -1
- package/dist/src/extensions/code/extension/subagents/worker/agent.js +1 -1
- package/dist/src/extensions/code/extension/tools/apply_patch.js +2 -2
- package/dist/src/extensions/code/extension/tools/grep.d.ts +1 -28
- package/dist/src/extensions/code/extension/tools/grep.js +1 -1
- package/dist/src/extensions/code/sandbox.d.ts +1 -0
- package/dist/src/extensions/code/sandbox.js +1 -0
- package/dist/src/extensions/code/tools.d.ts +1 -5
- package/dist/src/extensions/code/tools.js +1 -1
- package/dist/src/extensions/git/extension/extension.d.ts +3 -3
- package/dist/src/extensions/git/extension/instructions/github.d.ts +1 -1
- package/dist/src/extensions/git/extension/instructions/github.js +1 -1
- package/dist/src/extensions/git/extension/lib/gh-tool.d.ts +2 -11
- package/dist/src/extensions/git/extension/lib/gh-tool.js +1 -1
- package/dist/src/extensions/git/extension/lib/github-shell.d.ts +13 -3
- package/dist/src/extensions/git/extension/lib/sandbox.d.ts +0 -4
- package/dist/src/extensions/git/extension/lib/sandbox.js +1 -1
- package/dist/src/extensions/git/extension/skills/pr.d.ts +1 -4
- package/dist/src/extensions/git/extension/skills/pr.js +1 -1
- package/dist/src/extensions/git/extension/tools/gh.d.ts +1 -26
- package/dist/src/extensions/git/extension/tools/gh.js +1 -1
- package/dist/src/framework/sources/modules/schedule-collection-wrapper.js +1 -1
- package/dist/src/harness/action-presentation.d.ts +3 -5
- package/dist/src/harness/action-presentation.js +1 -1
- package/dist/src/harness/action-result-helpers.d.ts +2 -8
- package/dist/src/harness/action-result-helpers.js +1 -1
- package/dist/src/harness/approval-outcome.d.ts +32 -0
- package/dist/src/harness/approval-outcome.js +1 -0
- package/dist/src/harness/attachment-staging.js +1 -1
- package/dist/src/harness/authorization.d.ts +2 -3
- package/dist/src/harness/authorization.js +1 -1
- package/dist/src/harness/call-executor.d.ts +118 -0
- package/dist/src/harness/call-executor.js +1 -0
- package/dist/src/harness/call-facts.d.ts +31 -0
- package/dist/src/harness/call-facts.js +1 -0
- package/dist/src/harness/call-outcome.d.ts +6 -0
- package/dist/src/harness/call-outcome.js +1 -0
- package/dist/src/harness/compaction/engine.d.ts +11 -0
- package/dist/src/harness/compaction/engine.js +2 -2
- package/dist/src/harness/compaction/over-limit-error.d.ts +7 -0
- package/dist/src/harness/compaction/over-limit-error.js +1 -0
- package/dist/src/harness/compaction/prompt.js +1 -1
- package/dist/src/harness/compaction/step.d.ts +34 -5
- package/dist/src/harness/compaction/step.js +1 -1
- package/dist/src/harness/coordination.js +1 -1
- package/dist/src/harness/current-messages.d.ts +10 -0
- package/dist/src/harness/current-messages.js +1 -1
- package/dist/src/harness/emission.d.ts +9 -15
- package/dist/src/harness/emission.js +1 -1
- package/dist/src/harness/execute-call.d.ts +6 -23
- package/dist/src/harness/execute-call.js +1 -1
- package/dist/src/harness/execute-tool.d.ts +7 -3
- package/dist/src/harness/facts.d.ts +82 -0
- package/dist/src/harness/facts.js +1 -0
- package/dist/src/harness/finish-reason.d.ts +6 -1
- package/dist/src/harness/generation-steering.d.ts +4 -2
- package/dist/src/harness/generation-steering.js +1 -1
- package/dist/src/harness/hitl/approval-prompt.d.ts +3 -3
- package/dist/src/harness/hitl/approval-prompt.js +3 -3
- package/dist/src/harness/hitl/approvals.d.ts +66 -78
- package/dist/src/harness/hitl/approvals.js +2 -1
- package/dist/src/harness/hitl/approved-calls.d.ts +14 -36
- package/dist/src/harness/hitl/approved-calls.js +1 -1
- package/dist/src/harness/hitl/budget-request.d.ts +8 -46
- package/dist/src/harness/hitl/budget-request.js +1 -1
- package/dist/src/harness/hitl/budget.d.ts +9 -8
- package/dist/src/harness/hitl/budget.js +1 -1
- package/dist/src/harness/hitl/delivery.d.ts +16 -17
- package/dist/src/harness/hitl/delivery.js +1 -1
- package/dist/src/harness/hitl/index.d.ts +14 -19
- package/dist/src/harness/hitl/index.js +1 -1
- package/dist/src/harness/hitl/intake.d.ts +32 -43
- package/dist/src/harness/hitl/intake.js +1 -1
- package/dist/src/harness/hitl/relays.d.ts +7 -51
- package/dist/src/harness/hitl/relays.js +1 -1
- package/dist/src/harness/hitl/requests.d.ts +11 -53
- package/dist/src/harness/hitl/requests.js +1 -1
- package/dist/src/harness/hitl/responders.d.ts +50 -0
- package/dist/src/harness/hitl/responders.js +1 -0
- package/dist/src/harness/hitl/sign-ins.d.ts +7 -3
- package/dist/src/harness/hitl/sign-ins.js +1 -1
- package/dist/src/harness/hitl/stale-responses.d.ts +11 -11
- package/dist/src/harness/hitl/stale-responses.js +3 -3
- package/dist/src/harness/inline-tool-authorization.d.ts +8 -9
- package/dist/src/harness/inline-tool-authorization.js +1 -1
- package/dist/src/harness/interaction-facts.d.ts +36 -0
- package/dist/src/harness/interaction-facts.js +1 -0
- package/dist/src/harness/interaction-relay.d.ts +10 -0
- package/dist/src/harness/interaction-relay.js +1 -0
- package/dist/src/harness/interrupted-attempt.d.ts +19 -0
- package/dist/src/harness/interrupted-attempt.js +2 -0
- package/dist/src/harness/messages.d.ts +28 -15
- package/dist/src/harness/messages.js +1 -1
- package/dist/src/harness/model-call/call.d.ts +31 -13
- package/dist/src/harness/model-call/call.js +1 -1
- package/dist/src/harness/model-call/errors.js +1 -1
- package/dist/src/harness/model-call/failure.d.ts +10 -48
- package/dist/src/harness/model-call/failure.js +1 -1
- package/dist/src/harness/model-call/model.js +1 -1
- package/dist/src/harness/model-call/recovery.d.ts +4 -32
- package/dist/src/harness/model-call/recovery.js +1 -1
- package/dist/src/harness/model-call/request.d.ts +0 -1
- package/dist/src/harness/model-call/request.js +1 -1
- package/dist/src/harness/model-call/response.d.ts +22 -12
- package/dist/src/harness/model-call/response.js +1 -1
- package/dist/src/harness/model-call/retry.d.ts +23 -6
- package/dist/src/harness/model-call/retry.js +1 -1
- package/dist/src/harness/model-call/run.d.ts +4 -12
- package/dist/src/harness/model-call/run.js +1 -1
- package/dist/src/harness/model-call/tools.d.ts +0 -19
- package/dist/src/harness/model-call/tools.js +1 -1
- package/dist/src/harness/model-call/unique-call-ids.d.ts +13 -0
- package/dist/src/harness/model-call/unique-call-ids.js +1 -0
- package/dist/src/harness/model-call/usage.d.ts +7 -5
- package/dist/src/harness/model-call/usage.js +1 -1
- package/dist/src/harness/ordered-stream-emitter.d.ts +1 -0
- package/dist/src/harness/ordered-stream-emitter.js +1 -1
- package/dist/src/harness/provider-tool-history.js +1 -1
- package/dist/src/harness/publication.d.ts +4 -0
- package/dist/src/harness/publication.js +1 -0
- package/dist/src/harness/request-envelope.d.ts +0 -3
- package/dist/src/harness/request-envelope.js +1 -1
- package/dist/src/harness/running-work.d.ts +10 -0
- package/dist/src/harness/running-work.js +1 -0
- package/dist/src/harness/session-machine/cascade.d.ts +17 -0
- package/dist/src/harness/session-machine/cascade.js +1 -0
- package/dist/src/harness/session-machine/commit.d.ts +16 -16
- package/dist/src/harness/session-machine/commit.js +1 -1
- package/dist/src/harness/session-machine/current.d.ts +25 -9
- package/dist/src/harness/session-machine/current.js +1 -1
- package/dist/src/harness/session-machine/state.d.ts +43 -16
- package/dist/src/harness/session-machine/state.js +1 -1
- package/dist/src/harness/session-machine/suspended-steps.d.ts +22 -0
- package/dist/src/harness/session-machine/suspended-steps.js +1 -0
- package/dist/src/harness/session-machine/transitions.d.ts +144 -120
- package/dist/src/harness/session-machine/transitions.js +1 -1
- package/dist/src/harness/session-machine/view.d.ts +12 -8
- package/dist/src/harness/session-machine/view.js +1 -1
- package/dist/src/harness/session-machine/waiting.d.ts +16 -0
- package/dist/src/harness/session-machine/waiting.js +1 -0
- package/dist/src/harness/session-usage.d.ts +22 -0
- package/dist/src/harness/session-usage.js +1 -0
- package/dist/src/harness/step/after-model.d.ts +1 -4
- package/dist/src/harness/step/after-model.js +1 -1
- package/dist/src/harness/step/context.d.ts +21 -21
- package/dist/src/harness/step/context.js +1 -1
- package/dist/src/harness/step/intake.d.ts +7 -8
- package/dist/src/harness/step/intake.js +1 -1
- package/dist/src/harness/step/park.d.ts +19 -0
- package/dist/src/harness/step/park.js +1 -0
- package/dist/src/harness/step/prompt.d.ts +4 -5
- package/dist/src/harness/step/prompt.js +1 -1
- package/dist/src/harness/step-hooks.d.ts +24 -24
- package/dist/src/harness/step-hooks.js +1 -1
- package/dist/src/harness/stream-actions.d.ts +3 -9
- package/dist/src/harness/stream-actions.js +1 -1
- package/dist/src/harness/token-estimate.js +1 -1
- package/dist/src/harness/tool-history-repair.js +1 -1
- package/dist/src/harness/tool-loop.js +1 -1
- package/dist/src/harness/tools.d.ts +22 -38
- package/dist/src/harness/tools.js +1 -1
- package/dist/src/harness/types.d.ts +69 -67
- package/dist/src/harness/user-parts.d.ts +4 -0
- package/dist/src/harness/user-parts.js +1 -0
- package/dist/src/harness/workflow-tool-runs.d.ts +0 -1
- package/dist/src/harness/workflow-tool-runs.js +1 -1
- package/dist/src/instrumentation/ai-sdk-hook-bridge.d.ts +2 -2
- package/dist/src/instrumentation/ai-sdk-hook-bridge.js +1 -1
- package/dist/src/instrumentation/channel-delivery.d.ts +4 -23
- package/dist/src/instrumentation/channel-delivery.js +1 -1
- package/dist/src/instrumentation/content.d.ts +1 -7
- package/dist/src/instrumentation/content.js +1 -1
- package/dist/src/instrumentation/dispatch.js +1 -1
- package/dist/src/instrumentation/lifecycle.d.ts +135 -198
- package/dist/src/instrumentation/lifecycle.js +1 -1
- package/dist/src/instrumentation/memory.d.ts +4 -2
- package/dist/src/instrumentation/memory.js +1 -1
- package/dist/src/instrumentation/native-events.d.ts +17 -10
- package/dist/src/instrumentation/native-events.js +1 -1
- package/dist/src/instrumentation/prepare-trace-context.d.ts +3 -3
- package/dist/src/instrumentation/provider.d.ts +20 -28
- package/dist/src/instrumentation/providers.js +1 -1
- package/dist/src/instrumentation/runtime-context.d.ts +1 -0
- package/dist/src/instrumentation/runtime-context.js +1 -1
- package/dist/src/instrumentation/runtime.d.ts +9 -30
- package/dist/src/instrumentation/runtime.js +1 -1
- package/dist/src/instrumentation/scope.d.ts +6 -0
- package/dist/src/instrumentation/scope.js +1 -0
- package/dist/src/instrumentation/session-context.d.ts +1 -1
- package/dist/src/instrumentation/session-context.js +1 -1
- package/dist/src/instrumentation/session-init.js +1 -1
- package/dist/src/instrumentation/setup-context.d.ts +2 -2
- package/dist/src/instrumentation/setup-context.js +1 -1
- package/dist/src/instrumentation/state.d.ts +0 -21
- package/dist/src/instrumentation/state.js +1 -1
- package/dist/src/internal/application/dev-environment.d.ts +8 -2
- package/dist/src/internal/application/dev-environment.js +1 -1
- package/dist/src/internal/application/optional-package-install.js +1 -1
- package/dist/src/internal/application/stamped-package-version.js +1 -1
- package/dist/src/internal/authored-asset-import-plugin.d.ts +8 -7
- package/dist/src/internal/authored-asset-import-plugin.js +1 -1
- package/dist/src/internal/authored-definition/approval.d.ts +2 -4
- package/dist/src/internal/authored-definition/approval.js +1 -1
- package/dist/src/internal/authored-definition/connection.js +1 -1
- package/dist/src/internal/authored-definition/core.d.ts +1 -1
- package/dist/src/internal/authored-definition/core.js +1 -1
- package/dist/src/internal/authored-definition/memory.js +1 -1
- package/dist/src/internal/authored-definition/schema-backed.d.ts +0 -3
- package/dist/src/internal/authored-definition/schema-backed.js +1 -1
- package/dist/src/internal/authored-module-loader.d.ts +0 -1
- package/dist/src/internal/authored-module-loader.js +1 -1
- package/dist/src/internal/authored-package-boundary.js +1 -1
- package/dist/src/internal/git.d.ts +2 -0
- package/dist/src/internal/git.js +1 -0
- package/dist/src/internal/grep.d.ts +1 -0
- package/dist/src/internal/grep.js +1 -0
- package/dist/src/internal/helpers/markdown.js +1 -1
- package/dist/src/internal/invocation/agent-invocation.d.ts +16 -19
- package/dist/src/internal/invocation/metadata.d.ts +0 -2
- package/dist/src/internal/invocation/metadata.js +1 -1
- package/dist/src/internal/invocation/workflow-execution.d.ts +4 -4
- package/dist/src/internal/invocation/workflow-execution.js +1 -1
- package/dist/src/internal/legacy-events.d.ts +5 -0
- package/dist/src/internal/legacy-events.js +1 -0
- package/dist/src/internal/logging.d.ts +0 -12
- package/dist/src/internal/logging.js +1 -1
- package/dist/src/internal/mcp/protected-resource.js +1 -1
- package/dist/src/internal/mcp/published-tools.js +1 -1
- package/dist/src/internal/model-auth/api-key.js +1 -1
- package/dist/src/internal/model-auth/development-broker-client.js +1 -1
- package/dist/src/internal/model-auth/development-broker-server.js +1 -1
- package/dist/src/internal/model-auth/transport.js +1 -1
- package/dist/src/internal/nitro/dev-client-address.d.ts +12 -0
- package/dist/src/internal/nitro/dev-client-address.js +1 -1
- package/dist/src/internal/nitro/dev-runtime-artifacts.js +1 -1
- package/dist/src/internal/nitro/dev-runtime-generation-metadata.js +1 -1
- package/dist/src/internal/nitro/host/build-extension.js +2 -2
- package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
- package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
- package/dist/src/internal/nitro/host/dev-server-state.js +1 -1
- package/dist/src/internal/nitro/host/drained-nitro-dev-server.js +1 -1
- package/dist/src/internal/nitro/host/start-development-server.js +1 -1
- package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
- package/dist/src/internal/nitro/routes/channel-dispatch.js +1 -1
- package/dist/src/internal/nitro/routes/channel-request-instrumentation.d.ts +6 -3
- package/dist/src/internal/nitro/routes/channel-request-instrumentation.js +1 -1
- package/dist/src/internal/nitro/routes/channel-route-context.d.ts +8 -1
- package/dist/src/internal/nitro/routes/info.js +1 -1
- package/dist/src/internal/nitro/routes/schedule-task.js +1 -1
- package/dist/src/internal/scaffold.d.ts +5 -0
- package/dist/src/internal/scaffold.js +1 -0
- package/dist/src/internal/workflow/cancel-expired-development-run.js +1 -1
- package/dist/src/internal/workflow/development-world-client.js +1 -1
- package/dist/src/internal/workflow/development-world-server.js +1 -1
- package/dist/src/internal/workflow/local-world-data-directory.js +1 -1
- package/dist/src/internal/workspace.d.ts +1 -0
- package/dist/src/internal/workspace.js +1 -0
- package/dist/src/models/auto.d.ts +27 -14
- package/dist/src/models/auto.js +2 -2
- package/dist/src/protocol/delivery.d.ts +11 -0
- package/dist/src/protocol/delivery.js +1 -0
- package/dist/src/protocol/descendant-observation.d.ts +12 -0
- package/dist/src/protocol/descendant-observation.js +1 -0
- package/dist/src/protocol/interaction-json.d.ts +66 -0
- package/dist/src/protocol/interaction-json.js +1 -0
- package/dist/src/protocol/interaction-options.d.ts +4 -0
- package/dist/src/protocol/interaction-options.js +1 -0
- package/dist/src/protocol/remote-agent-protocol.d.ts +28 -1
- package/dist/src/protocol/remote-agent-protocol.js +1 -1
- package/dist/src/protocol/routes.d.ts +3 -2
- package/dist/src/protocol/routes.js +1 -1
- package/dist/src/protocol/session-event.d.ts +22 -0
- package/dist/src/protocol/session-event.js +1 -0
- package/dist/src/protocol/session-events/authoring.d.ts +2 -0
- package/dist/src/protocol/session-events/authoring.js +1 -0
- package/dist/src/protocol/session-events/catalog.d.ts +50 -0
- package/dist/src/protocol/session-events/catalog.js +1 -0
- package/dist/src/protocol/session-events/checker.d.ts +23 -0
- package/dist/src/protocol/session-events/checker.js +1 -0
- package/dist/src/protocol/session-events/common.d.ts +105 -0
- package/dist/src/protocol/session-events/common.js +1 -0
- package/dist/src/protocol/session-events/envelope.d.ts +174 -0
- package/dist/src/protocol/session-events/envelope.js +1 -0
- package/dist/src/protocol/session-events/facts.d.ts +24 -0
- package/dist/src/protocol/session-events/facts.js +1 -0
- package/dist/src/protocol/session-events/families/call.d.ts +142 -0
- package/dist/src/protocol/session-events/families/call.js +1 -0
- package/dist/src/protocol/session-events/families/child.d.ts +51 -0
- package/dist/src/protocol/session-events/families/child.js +1 -0
- package/dist/src/protocol/session-events/families/content.d.ts +56 -0
- package/dist/src/protocol/session-events/families/content.js +1 -0
- package/dist/src/protocol/session-events/families/context.d.ts +55 -0
- package/dist/src/protocol/session-events/families/context.js +1 -0
- package/dist/src/protocol/session-events/families/delivery.d.ts +86 -0
- package/dist/src/protocol/session-events/families/delivery.js +1 -0
- package/dist/src/protocol/session-events/families/interaction.d.ts +163 -0
- package/dist/src/protocol/session-events/families/interaction.js +1 -0
- package/dist/src/protocol/session-events/families/model.d.ts +88 -0
- package/dist/src/protocol/session-events/families/model.js +1 -0
- package/dist/src/protocol/session-events/families/response.d.ts +66 -0
- package/dist/src/protocol/session-events/families/response.js +1 -0
- package/dist/src/protocol/session-events/families/session.d.ts +73 -0
- package/dist/src/protocol/session-events/families/session.js +1 -0
- package/dist/src/protocol/session-events/families/task.d.ts +46 -0
- package/dist/src/protocol/session-events/families/task.js +1 -0
- package/dist/src/protocol/session-events/families/turn.d.ts +68 -0
- package/dist/src/protocol/session-events/families/turn.js +1 -0
- package/dist/src/protocol/session-events/families/usage.d.ts +30 -0
- package/dist/src/protocol/session-events/families/usage.js +1 -0
- package/dist/src/protocol/session-events/guards.d.ts +11 -0
- package/dist/src/protocol/session-events/guards.js +1 -0
- package/dist/src/protocol/session-events/index.d.ts +16 -0
- package/dist/src/protocol/session-events/index.js +1 -0
- package/dist/src/protocol/session-events/json.d.ts +20 -0
- package/dist/src/protocol/session-events/json.js +1 -0
- package/dist/src/protocol/session-events/schemas.d.ts +320 -0
- package/dist/src/protocol/session-events/schemas.js +1 -0
- package/dist/src/protocol/session-http.d.ts +7 -0
- package/dist/src/protocol/session-http.js +1 -0
- package/dist/src/protocol/session-lines.d.ts +19 -0
- package/dist/src/protocol/session-lines.js +1 -0
- package/dist/src/protocol/session-projection/fold.d.ts +75 -0
- package/dist/src/protocol/session-projection/fold.js +1 -0
- package/dist/src/protocol/session-projection/index.d.ts +4 -0
- package/dist/src/protocol/session-projection/index.js +1 -0
- package/dist/src/protocol/session-projection/observations.d.ts +150 -0
- package/dist/src/protocol/session-projection/observations.js +1 -0
- package/dist/src/protocol/session-projection/public-view.d.ts +74 -0
- package/dist/src/protocol/session-projection/public-view.js +1 -0
- package/dist/src/protocol/session-projection/reader.d.ts +62 -0
- package/dist/src/protocol/session-projection/reader.js +1 -0
- package/dist/src/protocol/session-projection/request-status.d.ts +7 -0
- package/dist/src/protocol/session-projection/request-status.js +1 -0
- package/dist/src/protocol/session-projection/selectors.d.ts +169 -0
- package/dist/src/protocol/session-projection/selectors.js +2 -0
- package/dist/src/protocol/session-projection/session-view.d.ts +18 -0
- package/dist/src/protocol/session-projection/session-view.js +1 -0
- package/dist/src/protocol/session-projection/tables.d.ts +237 -0
- package/dist/src/protocol/session-projection/tables.js +1 -0
- package/dist/src/protocol/session-projection/tree.d.ts +72 -0
- package/dist/src/protocol/session-projection/tree.js +1 -0
- package/dist/src/protocol/session-projection.d.ts +38 -157
- package/dist/src/protocol/session-projection.js +1 -1
- package/dist/src/protocol/task-tools.d.ts +8 -6
- package/dist/src/protocol/task-tools.js +1 -1
- package/dist/src/protocol/v26-interactions.d.ts +11 -0
- package/dist/src/protocol/v26-interactions.js +1 -0
- package/dist/src/protocol/v26-lines.d.ts +5 -0
- package/dist/src/protocol/v26-lines.js +1 -0
- package/dist/src/public/agents/auth.d.ts +2 -2
- package/dist/src/public/agents/auth.js +1 -1
- package/dist/src/public/ai/index.d.ts +1 -0
- package/dist/src/public/channels/auth.d.ts +2 -518
- package/dist/src/public/channels/auth.js +1 -1
- package/dist/src/public/channels/chat-sdk/authorization.d.ts +5 -2
- package/dist/src/public/channels/chat-sdk/authorization.js +1 -3
- package/dist/src/public/channels/chat-sdk/chatSdkChannel.d.ts +16 -11
- package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +1 -3
- package/dist/src/public/channels/chat-sdk/index.d.ts +1 -1
- package/dist/src/public/channels/chat-sdk/index.js +1 -1
- package/dist/src/public/channels/chat-sdk/input-actions.d.ts +4 -4
- package/dist/src/public/channels/chat-sdk/input-actions.js +3 -3
- package/dist/src/public/channels/chat-sdk/{messageToUserContent.d.ts → message-content.d.ts} +3 -3
- package/dist/src/public/channels/chat-sdk/message-content.js +1 -0
- package/dist/src/public/channels/discord/api.d.ts +8 -11
- package/dist/src/public/channels/discord/api.js +1 -1
- package/dist/src/public/channels/discord/attachments.d.ts +2 -2
- package/dist/src/public/channels/discord/authorization.d.ts +3 -13
- package/dist/src/public/channels/discord/authorization.js +2 -2
- package/dist/src/public/channels/discord/credentials.d.ts +11 -0
- package/dist/src/public/channels/discord/credentials.js +1 -0
- package/dist/src/public/channels/discord/defaults.d.ts +7 -1
- package/dist/src/public/channels/discord/defaults.js +1 -3
- package/dist/src/public/channels/discord/discordChannel.d.ts +36 -48
- package/dist/src/public/channels/discord/discordChannel.js +1 -1
- package/dist/src/public/channels/discord/hitl.d.ts +5 -4
- package/dist/src/public/channels/discord/hitl.js +1 -1
- package/dist/src/public/channels/discord/index.d.ts +4 -12
- package/dist/src/public/channels/discord/index.js +1 -1
- package/dist/src/public/channels/discord/messages.js +1 -1
- package/dist/src/public/channels/github/defaults.js +2 -4
- package/dist/src/public/channels/github/githubChannel.d.ts +23 -36
- package/dist/src/public/channels/github/githubChannel.js +1 -1
- package/dist/src/public/channels/github/index.d.ts +3 -2
- package/dist/src/public/channels/github/index.js +1 -1
- package/dist/src/public/channels/github/state.d.ts +2 -0
- package/dist/src/public/channels/imessage-tapbacks.d.ts +1 -1
- package/dist/src/public/channels/index.d.ts +16 -37
- package/dist/src/public/channels/index.js +1 -1
- package/dist/src/public/channels/linear/defaults.js +2 -4
- package/dist/src/public/channels/linear/hitl.d.ts +3 -3
- package/dist/src/public/channels/linear/hitl.js +2 -2
- package/dist/src/public/channels/linear/inbound-uploads.d.ts +3 -3
- package/dist/src/public/channels/linear/inbound-uploads.js +1 -1
- package/dist/src/public/channels/linear/inbound.d.ts +5 -3
- package/dist/src/public/channels/linear/inbound.js +1 -1
- package/dist/src/public/channels/linear/index.d.ts +4 -6
- package/dist/src/public/channels/linear/index.js +1 -1
- package/dist/src/public/channels/linear/linearChannel.d.ts +19 -30
- package/dist/src/public/channels/linear/linearChannel.js +1 -1
- package/dist/src/public/channels/linq/inboundContent.d.ts +2 -2
- package/dist/src/public/channels/linq/inboundContent.js +1 -1
- package/dist/src/public/channels/linq/index.d.ts +1 -1
- package/dist/src/public/channels/linq/linqChannel.d.ts +1 -2
- package/dist/src/public/channels/mcp.d.ts +2 -2
- package/dist/src/public/channels/mcp.js +1 -1
- package/dist/src/public/channels/photon/inboundContent.d.ts +2 -2
- package/dist/src/public/channels/photon/inboundContent.js +1 -1
- package/dist/src/public/channels/photon/index.d.ts +1 -1
- package/dist/src/public/channels/photon/photonIMessageChannel.d.ts +1 -2
- package/dist/src/public/channels/reply.d.ts +22 -0
- package/dist/src/public/channels/reply.js +3 -0
- package/dist/src/public/channels/slack/action-status.js +1 -1
- package/dist/src/public/channels/slack/{input-response.d.ts → answers.d.ts} +5 -5
- package/dist/src/public/channels/slack/answers.js +1 -0
- package/dist/src/public/channels/slack/api.d.ts +5 -2
- package/dist/src/public/channels/slack/api.js +1 -1
- package/dist/src/public/channels/slack/approval-cards.d.ts +15 -5
- package/dist/src/public/channels/slack/approval-cards.js +2 -2
- package/dist/src/public/channels/slack/attachments.d.ts +6 -6
- package/dist/src/public/channels/slack/attachments.js +1 -1
- package/dist/src/public/channels/slack/blocks.d.ts +1 -1
- package/dist/src/public/channels/slack/blocks.js +1 -1
- package/dist/src/public/channels/slack/cards.d.ts +576 -0
- package/dist/src/public/channels/slack/cards.js +1 -0
- package/dist/src/public/channels/slack/connections.d.ts +4 -22
- package/dist/src/public/channels/slack/connections.js +1 -1
- package/dist/src/public/channels/slack/defaults.d.ts +13 -2
- package/dist/src/public/channels/slack/defaults.js +5 -5
- package/dist/src/public/channels/slack/hitl.d.ts +20 -19
- package/dist/src/public/channels/slack/hitl.js +3 -3
- package/dist/src/public/channels/slack/index.d.ts +7 -16
- package/dist/src/public/channels/slack/index.js +1 -1
- package/dist/src/public/channels/slack/interaction-cards.js +1 -1
- package/dist/src/public/channels/slack/interactions.d.ts +2 -2
- package/dist/src/public/channels/slack/interactions.js +1 -1
- package/dist/src/public/channels/slack/limits.js +1 -1
- package/dist/src/public/channels/slack/private-approval-delivery.d.ts +3 -3
- package/dist/src/public/channels/slack/private-approval-delivery.js +1 -1
- package/dist/src/public/channels/slack/renderers.d.ts +21 -27
- package/dist/src/public/channels/slack/renderers.js +1 -1
- package/dist/src/public/channels/slack/reply-delivery.d.ts +5 -11
- package/dist/src/public/channels/slack/reply-delivery.js +1 -1
- package/dist/src/public/channels/slack/session-operations.d.ts +4 -4
- package/dist/src/public/channels/slack/sign-in-cancel.js +1 -1
- package/dist/src/public/channels/slack/slackChannel.d.ts +32 -43
- package/dist/src/public/channels/slack/slackChannel.js +1 -1
- package/dist/src/public/channels/slack/task-card.d.ts +9 -9
- package/dist/src/public/channels/slack/task-card.js +1 -1
- package/dist/src/public/channels/teams/api.d.ts +3 -7
- package/dist/src/public/channels/teams/attachments.d.ts +4 -4
- package/dist/src/public/channels/teams/authorization.d.ts +5 -9
- package/dist/src/public/channels/teams/authorization.js +1 -1
- package/dist/src/public/channels/teams/credentials.d.ts +13 -0
- package/dist/src/public/channels/teams/credentials.js +1 -0
- package/dist/src/public/channels/teams/defaults.d.ts +2 -6
- package/dist/src/public/channels/teams/defaults.js +1 -3
- package/dist/src/public/channels/teams/hitl.d.ts +8 -7
- package/dist/src/public/channels/teams/hitl.js +1 -1
- package/dist/src/public/channels/teams/index.d.ts +6 -8
- package/dist/src/public/channels/teams/index.js +1 -1
- package/dist/src/public/channels/teams/teamsChannel.d.ts +25 -44
- package/dist/src/public/channels/teams/teamsChannel.js +1 -1
- package/dist/src/public/channels/telegram/api.d.ts +3 -4
- package/dist/src/public/channels/telegram/attachments.d.ts +5 -5
- package/dist/src/public/channels/telegram/authorization-callback.js +1 -1
- package/dist/src/public/channels/telegram/authorization.d.ts +4 -8
- package/dist/src/public/channels/telegram/authorization.js +2 -2
- package/dist/src/public/channels/telegram/credentials.d.ts +9 -0
- package/dist/src/public/channels/telegram/credentials.js +1 -0
- package/dist/src/public/channels/telegram/defaults.js +1 -3
- package/dist/src/public/channels/telegram/hitl.d.ts +22 -20
- package/dist/src/public/channels/telegram/hitl.js +2 -2
- package/dist/src/public/channels/telegram/index.d.ts +5 -7
- package/dist/src/public/channels/telegram/index.js +1 -1
- package/dist/src/public/channels/telegram/telegramChannel.d.ts +23 -36
- package/dist/src/public/channels/telegram/telegramChannel.js +1 -1
- package/dist/src/public/channels/text.d.ts +4 -0
- package/dist/src/public/channels/text.js +1 -0
- package/dist/src/public/channels/twilio/api.d.ts +8 -8
- package/dist/src/public/channels/twilio/api.js +1 -1
- package/dist/src/public/channels/twilio/credentials.d.ts +7 -0
- package/dist/src/public/channels/twilio/credentials.js +1 -0
- package/dist/src/public/channels/twilio/defaults.d.ts +0 -1
- package/dist/src/public/channels/twilio/defaults.js +1 -5
- package/dist/src/public/channels/twilio/inbound.d.ts +2 -2
- package/dist/src/public/channels/twilio/index.d.ts +4 -4
- package/dist/src/public/channels/twilio/index.js +1 -1
- package/dist/src/public/channels/twilio/twilioChannel.d.ts +24 -37
- package/dist/src/public/channels/twilio/twilioChannel.js +1 -1
- package/dist/src/public/channels/twilio/verify.d.ts +6 -4
- package/dist/src/public/channels/undelivered-reply.d.ts +30 -0
- package/dist/src/public/channels/undelivered-reply.js +1 -0
- package/dist/src/public/channels/upload-policy.d.ts +7 -7
- package/dist/src/public/connections/index.d.ts +3 -5
- package/dist/src/public/context/index.d.ts +3 -2
- package/dist/src/public/definitions/agent.d.ts +18 -18
- package/dist/src/public/definitions/agent.js +1 -1
- package/dist/src/public/definitions/approval.d.ts +1 -1
- package/dist/src/public/definitions/channel.d.ts +57 -60
- package/dist/src/public/definitions/channel.js +1 -1
- package/dist/src/public/definitions/connections/dynamic.d.ts +3 -15
- package/dist/src/public/definitions/connections/dynamic.js +1 -1
- package/dist/src/public/definitions/connections/events.d.ts +9 -9
- package/dist/src/public/definitions/connections/mcp.d.ts +5 -3
- package/dist/src/public/definitions/connections/openapi.d.ts +1 -1
- package/dist/src/public/definitions/extension.d.ts +2 -4
- package/dist/src/public/definitions/extension.js +1 -1
- package/dist/src/public/definitions/hook.d.ts +63 -85
- package/dist/src/public/definitions/hook.js +1 -1
- package/dist/src/public/definitions/instructions.d.ts +3 -10
- package/dist/src/public/definitions/instructions.js +1 -1
- package/dist/src/public/definitions/model.d.ts +21 -0
- package/dist/src/public/definitions/model.js +1 -0
- package/dist/src/public/definitions/removed-event-keys.d.ts +2 -0
- package/dist/src/public/definitions/removed-event-keys.js +1 -0
- package/dist/src/public/definitions/sandbox.d.ts +1 -1
- package/dist/src/public/definitions/schedule.d.ts +4 -4
- package/dist/src/public/definitions/skill.d.ts +5 -0
- package/dist/src/public/definitions/skill.js +1 -1
- package/dist/src/public/events/index.d.ts +27 -0
- package/dist/src/public/events/index.js +1 -0
- package/dist/src/public/experimental/connections/index.d.ts +1 -0
- package/dist/src/public/experimental/connections/index.js +1 -0
- package/dist/src/public/experimental/schedules/client.js +1 -1
- package/dist/src/public/hooks/index.d.ts +4 -3
- package/dist/src/public/index.d.ts +3 -2
- package/dist/src/public/instructions/index.d.ts +2 -2
- package/dist/src/public/instrumentation/index.d.ts +9 -28
- package/dist/src/public/instrumentation/index.js +1 -1
- package/dist/src/public/instrumentation/otel.d.ts +1 -1
- package/dist/src/public/instrumentation/otel.js +1 -1
- package/dist/src/public/instrumentation/provider.d.ts +1 -1
- package/dist/src/public/instrumentation/provider.js +1 -1
- package/dist/src/public/local-dev.d.ts +3 -1
- package/dist/src/public/memory/file/backend.d.ts +1 -1
- package/dist/src/public/memory/file/backends/in-memory.js +1 -1
- package/dist/src/public/memory/file/backends/vercel-blob.js +1 -1
- package/dist/src/public/memory/file/provider.js +1 -1
- package/dist/src/public/memory/index.d.ts +14 -20
- package/dist/src/public/models/index.d.ts +3 -0
- package/dist/src/public/models/index.js +1 -1
- package/dist/src/public/models/openai/index.d.ts +0 -2
- package/dist/src/public/models/openai/index.js +1 -1
- package/dist/src/public/next/index.d.ts +5 -36
- package/dist/src/public/next/index.js +1 -1
- package/dist/src/public/nuxt/index.d.ts +1 -1
- package/dist/src/public/nuxt/module.d.ts +5 -2
- package/dist/src/public/sandbox/index.d.ts +1 -1
- package/dist/src/public/sandbox/vercel-sandbox.d.ts +52 -12
- package/dist/src/public/sandbox/vercel.d.ts +1 -1
- package/dist/src/public/schedules/subscription.d.ts +5 -8
- package/dist/src/public/server/index.d.ts +2 -14
- package/dist/src/public/server/index.js +1 -1
- package/dist/src/public/sessions/index.d.ts +6 -0
- package/dist/src/public/sessions/index.js +1 -0
- package/dist/src/public/skills/index.d.ts +2 -2
- package/dist/src/public/skills/index.js +1 -1
- package/dist/src/public/sveltekit/routing.d.ts +0 -4
- package/dist/src/public/sveltekit/routing.js +1 -1
- package/dist/src/public/tools/approval/index.d.ts +1 -1
- package/dist/src/public/tools/bash.d.ts +1 -1
- package/dist/src/public/tools/bash.js +1 -1
- package/dist/src/public/tools/glob.d.ts +1 -1
- package/dist/src/public/tools/glob.js +1 -1
- package/dist/src/public/tools/grep.d.ts +1 -1
- package/dist/src/public/tools/grep.js +1 -1
- package/dist/src/public/tools/index.d.ts +5 -9
- package/dist/src/public/tools/index.js +1 -1
- package/dist/src/public/tools/read-file.d.ts +1 -1
- package/dist/src/public/tools/read-file.js +1 -1
- package/dist/src/public/tools/result.d.ts +17 -9
- package/dist/src/public/tools/result.js +1 -1
- package/dist/src/public/tools/web-fetch.d.ts +1 -1
- package/dist/src/public/tools/web-fetch.js +1 -1
- package/dist/src/public/tools/web-search.d.ts +1 -3
- package/dist/src/public/tools/web-search.js +1 -1
- package/dist/src/public/tools/write-file.d.ts +1 -1
- package/dist/src/public/tools/write-file.js +1 -1
- package/dist/src/public/workflow-modules.d.ts +8 -2
- package/dist/src/react/index.d.ts +4 -7
- package/dist/src/react/index.js +1 -1
- package/dist/src/react/use-eve-agent.d.ts +68 -50
- package/dist/src/react/use-eve-agent.js +1 -1
- package/dist/src/reactions/bundle.d.ts +4 -0
- package/dist/src/reactions/bundle.js +1 -0
- package/dist/src/reactions/frame.d.ts +13 -0
- package/dist/src/reactions/frame.js +1 -0
- package/dist/src/reactions/intents.d.ts +22 -0
- package/dist/src/reactions/intents.js +1 -0
- package/dist/src/reactions/kinds/connection.d.ts +18 -0
- package/dist/src/reactions/kinds/connection.js +1 -0
- package/dist/src/reactions/kinds/hook.d.ts +8 -0
- package/dist/src/reactions/kinds/hook.js +1 -0
- package/dist/src/reactions/kinds/instructions.d.ts +21 -0
- package/dist/src/reactions/kinds/instructions.js +1 -0
- package/dist/src/reactions/kinds/memory.d.ts +72 -0
- package/dist/src/reactions/kinds/memory.js +1 -0
- package/dist/src/reactions/kinds/model.d.ts +21 -0
- package/dist/src/reactions/kinds/model.js +1 -0
- package/dist/src/reactions/kinds/skill.d.ts +27 -0
- package/dist/src/reactions/kinds/skill.js +1 -0
- package/dist/src/reactions/kinds/subagent.d.ts +16 -0
- package/dist/src/reactions/kinds/subagent.js +1 -0
- package/dist/src/reactions/kinds/tool.d.ts +16 -0
- package/dist/src/reactions/kinds/tool.js +1 -0
- package/dist/src/reactions/policy.d.ts +13 -0
- package/dist/src/reactions/policy.js +1 -0
- package/dist/src/reactions/reaction.d.ts +83 -0
- package/dist/src/reactions/reaction.js +1 -0
- package/dist/src/reactions/records.d.ts +40 -0
- package/dist/src/reactions/records.js +1 -0
- package/dist/src/reactions/remote.d.ts +25 -0
- package/dist/src/reactions/remote.js +1 -0
- package/dist/src/reactions/runner.d.ts +45 -0
- package/dist/src/reactions/runner.js +1 -0
- package/dist/src/reactions/state.d.ts +102 -0
- package/dist/src/reactions/state.js +1 -0
- package/dist/src/reactions/turn.d.ts +12 -0
- package/dist/src/reactions/turn.js +2 -0
- package/dist/src/runtime/agent/bootstrap.d.ts +1 -3
- package/dist/src/runtime/agent/mock-model-adapter.js +1 -1
- package/dist/src/runtime/agent/resolve-model.js +1 -1
- package/dist/src/runtime/connections/mcp-client.d.ts +5 -2
- package/dist/src/runtime/connections/mcp-client.js +1 -1
- package/dist/src/runtime/connections/openapi-client.js +1 -1
- package/dist/src/runtime/connections/openapi-operations.d.ts +4 -0
- package/dist/src/runtime/connections/openapi-operations.js +1 -1
- package/dist/src/runtime/connections/openapi-schema.d.ts +19 -14
- package/dist/src/runtime/connections/openapi-schema.js +1 -1
- package/dist/src/runtime/connections/principal.d.ts +2 -0
- package/dist/src/runtime/connections/principal.js +1 -1
- package/dist/src/runtime/connections/registry.d.ts +2 -2
- package/dist/src/runtime/connections/registry.js +1 -1
- package/dist/src/runtime/connections/scoped-authorization.d.ts +8 -1
- package/dist/src/runtime/connections/scoped-authorization.js +1 -1
- package/dist/src/runtime/graph.d.ts +0 -6
- package/dist/src/runtime/local-dev-capability.d.ts +4 -5
- package/dist/src/runtime/local-dev-capability.js +1 -1
- package/dist/src/runtime/resolve-agent-graph.js +1 -1
- package/dist/src/runtime/resolve-agent.js +1 -1
- package/dist/src/runtime/resolve-connection.js +1 -1
- package/dist/src/runtime/resolve-dynamic.d.ts +9 -0
- package/dist/src/runtime/resolve-dynamic.js +1 -0
- package/dist/src/runtime/resolve-hook.js +1 -1
- package/dist/src/runtime/resolve-memory.js +1 -1
- package/dist/src/runtime/resolve-tool.js +1 -1
- package/dist/src/runtime/schedules/collection-client.js +1 -1
- package/dist/src/runtime/schedules/dispatch-occurrence.js +1 -1
- package/dist/src/runtime/sessions/compiled-agent-cache.d.ts +0 -2
- package/dist/src/runtime/sessions/compiled-agent-cache.js +1 -1
- package/dist/src/runtime/subagents/dynamic-agent-config.js +1 -1
- package/dist/src/runtime/subagents/dynamic-remote-agent-config.d.ts +16 -3
- package/dist/src/runtime/subagents/dynamic-remote-agent-config.js +1 -1
- package/dist/src/runtime/subagents/workflow.js +1 -1
- package/dist/src/runtime/types.d.ts +22 -39
- package/dist/src/sandbox/provider.d.ts +3 -3
- package/dist/src/sandbox/providers/default.d.ts +4 -2
- package/dist/src/sandbox/providers/default.js +1 -1
- package/dist/src/self-modification/agent.d.ts +3 -3
- package/dist/src/self-modification/agent.js +1 -1
- package/dist/src/self-modification/config.d.ts +1 -1
- package/dist/src/self-modification/config.js +1 -1
- package/dist/src/self-modification/deployed-sandbox.js +1 -1
- package/dist/src/self-modification/extension/extension.d.ts +1 -0
- package/dist/src/self-modification/extension/local-only.d.ts +1 -1
- package/dist/src/self-modification/extension/local-only.js +1 -1
- package/dist/src/self-modification/extension/subagents/agent/agent.d.ts +15 -4
- package/dist/src/self-modification/extension/subagents/agent/agent.js +1 -1
- package/dist/src/self-modification/extension/subagents/agent/instructions.d.ts +1 -1
- package/dist/src/self-modification/extension/subagents/agent/instructions.js +2 -2
- package/dist/src/self-modification/extension/subagents/agent/sandbox.d.ts +2 -2
- package/dist/src/self-modification/extension/subagents/agent/sandbox.js +1 -1
- package/dist/src/self-modification/extension/subagents/agent/skills/trace_analysis.d.ts +3 -3
- package/dist/src/self-modification/extension/subagents/agent/skills/trace_analysis.js +1 -1
- package/dist/src/self-modification/extension/subagents/agent/tools/inspect_trace.d.ts +1 -1
- package/dist/src/self-modification/extension/subagents/agent/tools/inspect_trace_spans.d.ts +1 -1
- package/dist/src/self-modification/extension/subagents/agent/tools/registry_add.d.ts +1 -1
- package/dist/src/self-modification/extension/subagents/agent/tools/search_traces.d.ts +1 -1
- package/dist/src/self-modification/mode.d.ts +8 -0
- package/dist/src/self-modification/mode.js +1 -1
- package/dist/src/self-modification/remote/config.d.ts +3 -6
- package/dist/src/self-modification/remote/extension.d.ts +1 -0
- package/dist/src/self-modification/remote/production-registry-add.js +1 -1
- package/dist/src/self-modification/remote/subagents/agent/agent.d.ts +6 -3
- package/dist/src/self-modification/remote/subagents/agent/agent.js +1 -1
- package/dist/src/self-modification/remote/subagents/agent/instructions.d.ts +1 -1
- package/dist/src/self-modification/remote/subagents/agent/instructions.js +2 -2
- package/dist/src/self-modification/remote/subagents/agent/tools/publish.d.ts +1 -3
- package/dist/src/self-modification/remote/subagents/agent/tools/publish.js +1 -1
- package/dist/src/self-modification/remote/subagents/agent/tools/registry_add.d.ts +1 -3
- package/dist/src/self-modification/remote/subagents/agent/tools/registry_add.js +1 -1
- package/dist/src/self-modification/scaffold.js +1 -1
- package/dist/src/self-modification/setup.js +3 -6
- package/dist/src/services/dev-client/client-options.js +1 -1
- package/dist/src/services/dev-client.d.ts +4 -4
- package/dist/src/services/dev-client.js +1 -1
- package/dist/src/setup/integrations/self-modification/setup.d.ts +1 -4
- package/dist/src/setup/integrations/self-modification/setup.js +1 -1
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/setup/scaffold/create/web-template.d.ts +9 -18
- package/dist/src/setup/scaffold/create/web-template.js +1015 -2537
- package/dist/src/setup/verified-remote-agent.js +1 -1
- package/dist/src/shared/action-label.d.ts +5 -3
- package/dist/src/shared/action-label.js +1 -1
- package/dist/src/shared/action-types.d.ts +5 -0
- package/dist/src/shared/action-types.js +1 -1
- package/dist/src/shared/agent-definition.d.ts +14 -9
- package/dist/src/shared/answers-delivery-id.d.ts +1 -0
- package/dist/src/shared/answers-delivery-id.js +1 -0
- package/dist/src/shared/channel-context.d.ts +12 -0
- package/dist/src/shared/channel-context.js +1 -0
- package/dist/src/shared/channel-definition.d.ts +19 -26
- package/dist/src/shared/channel-delivery.d.ts +16 -0
- package/dist/src/shared/channel-delivery.js +1 -0
- package/dist/src/shared/connection-events.d.ts +2 -2
- package/dist/src/shared/connection-types.d.ts +12 -32
- package/dist/src/shared/conversation-context.d.ts +4 -13
- package/dist/src/shared/delivery.d.ts +38 -0
- package/dist/src/shared/delivery.js +1 -0
- package/dist/src/shared/history-message.d.ts +190 -0
- package/dist/src/shared/history-message.js +1 -0
- package/dist/src/shared/input.d.ts +23 -97
- package/dist/src/shared/input.js +1 -1
- package/dist/src/shared/instructions-definition.d.ts +2 -8
- package/dist/src/shared/instrumentation-channel-kind.d.ts +1 -1
- package/dist/src/shared/instrumentation-channel.d.ts +12 -0
- package/dist/src/shared/instrumentation-channel.js +1 -0
- package/dist/src/shared/json.d.ts +2 -18
- package/dist/src/shared/memory-state.d.ts +4 -40
- package/dist/src/shared/memory-state.js +1 -1
- package/dist/src/shared/message-content.d.ts +19 -0
- package/dist/src/shared/message-content.js +1 -0
- package/dist/src/shared/network-address.d.ts +9 -0
- package/dist/src/shared/network-address.js +1 -1
- package/dist/src/shared/sandbox-environment.d.ts +2 -2
- package/dist/src/shared/sandbox-provider.d.ts +1 -1
- package/dist/src/shared/sandbox-session.d.ts +60 -85
- package/dist/src/shared/schedule-definition.d.ts +5 -5
- package/dist/src/shared/serialized-observability-state.d.ts +0 -2
- package/dist/src/shared/serialized-observability-state.js +1 -1
- package/dist/src/shared/session-history.d.ts +2 -2
- package/dist/src/shared/session.d.ts +22 -0
- package/dist/src/shared/session.js +1 -0
- package/dist/src/shared/skill-definition.d.ts +1 -1
- package/dist/src/shared/skill-package.d.ts +2 -2
- package/dist/src/shared/skill-package.js +1 -1
- package/dist/src/shared/token-usage-math.d.ts +5 -0
- package/dist/src/shared/token-usage-math.js +1 -0
- package/dist/src/shared/token-usage.d.ts +0 -2
- package/dist/src/shared/token-usage.js +1 -1
- package/dist/src/shared/validate-authorization.js +1 -1
- package/dist/src/shared/wait-with-signal.d.ts +2 -0
- package/dist/src/shared/wait-with-signal.js +1 -0
- package/dist/src/subagents/adapter.d.ts +3 -5
- package/dist/src/subagents/adapter.js +1 -1
- package/dist/src/subagents/callback-route.js +1 -1
- package/dist/src/subagents/event-proxy-step.d.ts +6 -9
- package/dist/src/subagents/event-proxy-step.js +1 -1
- package/dist/src/subagents/hitl-proxy.d.ts +11 -23
- package/dist/src/subagents/hitl-proxy.js +1 -1
- package/dist/src/subagents/invocation.d.ts +8 -8
- package/dist/src/subagents/invocation.js +2 -2
- package/dist/src/subagents/parent-notification.d.ts +5 -0
- package/dist/src/subagents/parent-notification.js +1 -1
- package/dist/src/subagents/protocol-two-callback.d.ts +27 -0
- package/dist/src/subagents/protocol-two-callback.js +1 -0
- package/dist/src/svelte/index.d.ts +3 -6
- package/dist/src/svelte/index.js +2 -39
- package/dist/src/svelte/use-eve-agent.d.ts +67 -56
- package/dist/src/svelte/use-eve-agent.js +1 -1
- package/dist/src/tool-stubs/rules.js +1 -1
- package/dist/src/tools/approval/policies.d.ts +4 -16
- package/dist/src/tools/approval/policies.js +1 -1
- package/dist/src/tools/auth.d.ts +3 -3
- package/dist/src/tools/definition.d.ts +13 -35
- package/dist/src/tools/definition.js +1 -1
- package/dist/src/tools/dynamic.d.ts +13 -72
- package/dist/src/tools/dynamic.js +1 -1
- package/dist/src/tools/framework/agent.js +1 -1
- package/dist/src/tools/provided/ask-question-workflow.d.ts +3 -3
- package/dist/src/tools/provided/ask-question-workflow.js +1 -1
- package/dist/src/tools/provided/ask-question.d.ts +2 -2
- package/dist/src/tools/provided/ask-question.js +1 -1
- package/dist/src/tools/provided/grep.d.ts +2 -15
- package/dist/src/tools/provided/grep.js +1 -2
- package/dist/src/tools/provided/no-reply.d.ts +2 -2
- package/dist/src/tools/provided/no-reply.js +1 -1
- package/dist/src/tools/provided/sleep-workflow.js +1 -1
- package/dist/src/tools/provided/sleep.d.ts +2 -2
- package/dist/src/tools/provided/sleep.js +1 -1
- package/dist/src/tools/provided/workflow.js +1 -1
- package/dist/src/tools/schema.d.ts +2 -0
- package/dist/src/tools/schema.js +1 -1
- package/dist/src/tools/signature.js +1 -1
- package/dist/src/tools/workflow-definition.d.ts +17 -15
- package/dist/src/tracing/eve/agent-approval-instrumentation.d.ts +1 -1
- package/dist/src/tracing/eve/agent-approval-instrumentation.js +1 -1
- package/dist/src/tracing/eve/agent-channel-delivery-instrumentation.d.ts +2 -2
- package/dist/src/tracing/eve/agent-channel-delivery-instrumentation.js +1 -1
- package/dist/src/tracing/eve/agent-invocation-coordinator.d.ts +2 -2
- package/dist/src/tracing/eve/agent-otel-provider.js +1 -1
- package/dist/src/tracing/eve/agent-tool-instrumentation.d.ts +6 -7
- package/dist/src/tracing/eve/agent-tool-instrumentation.js +1 -1
- package/dist/src/tracing/eve/agent-trace-context-store.d.ts +3 -3
- package/dist/src/tracing/eve/agent-trace-state.d.ts +1 -6
- package/dist/src/tracing/eve/delegation.d.ts +4 -4
- package/dist/src/tracing/eve/install-instrumentation-runtime.js +1 -1
- package/dist/src/tracing/eve/invoke-tool-span.d.ts +3 -2
- package/dist/src/tracing/eve/invoke-tool-span.js +1 -1
- package/dist/src/tracing/eve/otel-declaration.d.ts +9 -10
- package/dist/src/tracing/eve/otel-declaration.js +1 -1
- package/dist/src/tracing/eve/policy.d.ts +2 -2
- package/dist/src/tracing/eve/policy.js +1 -1
- package/dist/src/tracing/eve/session.d.ts +4 -3
- package/dist/src/tracing/eve/session.js +1 -1
- package/dist/src/vue/index.d.ts +3 -6
- package/dist/src/vue/index.js +2 -39
- package/dist/src/vue/use-eve-agent.d.ts +70 -59
- package/dist/src/vue/use-eve-agent.js +1 -1
- package/docs/agent-config.md +40 -44
- package/docs/channels/chat-sdk.mdx +19 -13
- package/docs/channels/custom.mdx +106 -85
- package/docs/channels/discord.mdx +12 -12
- package/docs/channels/eve.mdx +48 -15
- package/docs/channels/github.mdx +2 -2
- package/docs/channels/linear.mdx +8 -8
- package/docs/channels/linq.mdx +1 -1
- package/docs/channels/mcp.mdx +2 -2
- package/docs/channels/overview.mdx +11 -1
- package/docs/channels/photon.mdx +1 -1
- package/docs/channels/slack.mdx +65 -58
- package/docs/channels/teams.mdx +4 -4
- package/docs/channels/telegram.mdx +1 -1
- package/docs/channels/twilio.mdx +2 -2
- package/docs/code-extension.mdx +19 -7
- package/docs/concepts/built-in-tools.md +21 -9
- package/docs/concepts/context-control.md +5 -8
- package/docs/concepts/default-harness.md +8 -9
- package/docs/concepts/execution-model-and-durability.mdx +119 -12
- package/docs/concepts/meta.json +1 -0
- package/docs/concepts/sessions-runs-and-streaming.md +244 -138
- package/docs/concepts/state.md +1 -1
- package/docs/concepts/upgrade-to-v27-events.md +128 -0
- package/docs/connections/mcp.mdx +38 -34
- package/docs/connections/openapi.mdx +24 -3
- package/docs/connections/overview.mdx +66 -57
- package/docs/evals/assertions.mdx +30 -24
- package/docs/evals/cases.mdx +19 -24
- package/docs/evals/judge.mdx +2 -2
- package/docs/evals/overview.mdx +7 -7
- package/docs/evals/reporters.mdx +15 -11
- package/docs/evals/targets.mdx +5 -3
- package/docs/evals/tool-stubs.mdx +2 -2
- package/docs/extensions.md +6 -3
- package/docs/guides/auth-and-route-protection.md +4 -0
- package/docs/guides/client/continuations.mdx +10 -10
- package/docs/guides/client/messages.mdx +50 -48
- package/docs/guides/client/output-schema.mdx +13 -13
- package/docs/guides/client/overview.mdx +12 -12
- package/docs/guides/client/streaming.mdx +160 -123
- package/docs/guides/decide.md +15 -9
- package/docs/guides/deployment/self-hosting.md +5 -40
- package/docs/guides/dynamic-capabilities.md +151 -406
- package/docs/guides/frontend/nextjs.mdx +1 -1
- package/docs/guides/frontend/nuxt.mdx +2 -2
- package/docs/guides/frontend/overview.mdx +257 -181
- package/docs/guides/frontend/sveltekit.mdx +4 -4
- package/docs/guides/frontend/tanstack.mdx +5 -5
- package/docs/guides/frontend/use-eve-agent-svelte.mdx +30 -38
- package/docs/guides/frontend/use-eve-agent-vue.mdx +35 -36
- package/docs/guides/hooks.md +67 -55
- package/docs/guides/instrumentation/instrumentation.mdx +33 -27
- package/docs/guides/instrumentation/otel.mdx +4 -2
- package/docs/guides/remote-agents.md +116 -50
- package/docs/guides/self-modification.md +11 -7
- package/docs/instructions.mdx +4 -6
- package/docs/memory/custom-provider.md +63 -56
- package/docs/memory/file.md +1 -1
- package/docs/memory/overview.mdx +10 -18
- package/docs/patterns/durable-cross-channel-notifications.md +4 -3
- package/docs/patterns/multi-tenant-approvals.md +3 -3
- package/docs/patterns/multi-tenant-auth.md +3 -3
- package/docs/patterns/multi-tenant-memory.md +6 -7
- package/docs/patterns/voice-notes.md +1 -1
- package/docs/reference/cli.md +11 -25
- package/docs/reference/typescript-api.md +88 -61
- package/docs/sandbox/custom-providers.mdx +13 -14
- package/docs/sandbox/default.mdx +1 -1
- package/docs/sandbox/docker.mdx +10 -0
- package/docs/sandbox/index.mdx +4 -0
- package/docs/sandbox/vercel.mdx +6 -6
- package/docs/schedules.mdx +4 -4
- package/docs/skills.mdx +6 -6
- package/docs/subagents/index.mdx +25 -34
- package/docs/tools/human-in-the-loop.md +42 -34
- package/docs/tools/overview.mdx +14 -12
- package/docs/tools/tasks-upgrade.md +13 -1
- package/docs/tools/tasks.md +58 -89
- package/docs/tools/workflows.mdx +44 -33
- package/docs/tutorial/guard-the-spend.mdx +1 -1
- package/docs/tutorial/run-analysis.mdx +15 -12
- package/docs/tutorial/team-playbooks.mdx +19 -23
- package/package.json +148 -93
- package/dist/src/chunks/use-eve-agent-DnbG9c7c.js +0 -4921
- package/dist/src/chunks/use-eve-agent-ZY7NQ2VW.js +0 -4963
- package/dist/src/cli/invoke/command.d.ts +0 -19
- package/dist/src/cli/invoke/command.js +0 -1
- package/dist/src/cli/invoke/invoke.d.ts +0 -27
- package/dist/src/cli/invoke/invoke.js +0 -1
- package/dist/src/cli/invoke/result.d.ts +0 -137
- package/dist/src/cli/invoke/result.js +0 -1
- package/dist/src/client/agent-host.d.ts +0 -4
- package/dist/src/client/agent-host.js +0 -1
- package/dist/src/client/authorization-message-parts.d.ts +0 -4
- package/dist/src/client/authorization-message-parts.js +0 -1
- package/dist/src/client/conversation-projection.d.ts +0 -4
- package/dist/src/client/conversation-projection.js +0 -1
- package/dist/src/client/conversation-reducer.d.ts +0 -29
- package/dist/src/client/conversation-reducer.js +0 -1
- package/dist/src/client/eve-agent-projection.d.ts +0 -28
- package/dist/src/client/eve-agent-projection.js +0 -1
- package/dist/src/client/eve-agent-store-helpers.d.ts +0 -34
- package/dist/src/client/eve-agent-store-helpers.js +0 -2
- package/dist/src/client/eve-agent-store-state.d.ts +0 -96
- package/dist/src/client/eve-agent-store.d.ts +0 -45
- package/dist/src/client/eve-agent-store.js +0 -1
- package/dist/src/client/message-action-parts.d.ts +0 -37
- package/dist/src/client/message-action-parts.js +0 -1
- package/dist/src/client/message-reducer-primitives.d.ts +0 -6
- package/dist/src/client/message-reducer-primitives.js +0 -1
- package/dist/src/client/message-reducer-types.d.ts +0 -244
- package/dist/src/client/message-reducer.d.ts +0 -14
- package/dist/src/client/message-reducer.js +0 -1
- package/dist/src/client/message-response.d.ts +0 -74
- package/dist/src/client/message-response.js +0 -1
- package/dist/src/client/message-run-parts.d.ts +0 -22
- package/dist/src/client/message-run-parts.js +0 -1
- package/dist/src/client/output-schema.d.ts +0 -5
- package/dist/src/client/output-schema.js +0 -1
- package/dist/src/client/reducer.d.ts +0 -67
- package/dist/src/client/session-turn-dispatch.d.ts +0 -15
- package/dist/src/client/session-turn-dispatch.js +0 -1
- package/dist/src/client/tool-call-state.d.ts +0 -23
- package/dist/src/client/tool-call-state.js +0 -1
- package/dist/src/client/tool-part-state.d.ts +0 -7
- package/dist/src/client/tool-part-state.js +0 -1
- package/dist/src/client/transcript-reducer.d.ts +0 -49
- package/dist/src/client/transcript-reducer.js +0 -2
- package/dist/src/context/build-dynamic-tools.d.ts +0 -10
- package/dist/src/context/build-dynamic-tools.js +0 -1
- package/dist/src/context/dynamic-connection-lifecycle.d.ts +0 -15
- package/dist/src/context/dynamic-connection-lifecycle.js +0 -1
- package/dist/src/context/dynamic-instruction-lifecycle.d.ts +0 -31
- package/dist/src/context/dynamic-instruction-lifecycle.js +0 -1
- package/dist/src/context/dynamic-model-lifecycle.d.ts +0 -19
- package/dist/src/context/dynamic-model-lifecycle.js +0 -1
- package/dist/src/context/dynamic-resolve-context.d.ts +0 -12
- package/dist/src/context/dynamic-resolve-context.js +0 -1
- package/dist/src/context/dynamic-skill-lifecycle.d.ts +0 -15
- package/dist/src/context/dynamic-skill-lifecycle.js +0 -1
- package/dist/src/context/dynamic-subagent-lifecycle.d.ts +0 -27
- package/dist/src/context/dynamic-subagent-lifecycle.js +0 -1
- package/dist/src/context/dynamic-tool-lifecycle.d.ts +0 -46
- package/dist/src/context/dynamic-tool-lifecycle.js +0 -1
- package/dist/src/context/dynamic-tool-metadata.d.ts +0 -47
- package/dist/src/context/dynamic-tool-metadata.js +0 -1
- package/dist/src/context/effective-model.d.ts +0 -5
- package/dist/src/context/effective-model.js +0 -1
- package/dist/src/context/hook-lifecycle.d.ts +0 -15
- package/dist/src/context/hook-lifecycle.js +0 -1
- package/dist/src/context/memory-event-lifecycle.d.ts +0 -15
- package/dist/src/context/memory-event-lifecycle.js +0 -1
- package/dist/src/context/memory-lifecycle.d.ts +0 -47
- package/dist/src/context/memory-lifecycle.js +0 -1
- package/dist/src/context/serialized-dynamic-model-selection.d.ts +0 -2
- package/dist/src/context/serialized-dynamic-model-selection.js +0 -1
- package/dist/src/execution/cancel-descendant-turns-step.d.ts +0 -6
- package/dist/src/execution/cancel-descendant-turns-step.js +0 -1
- package/dist/src/execution/dynamic-connection-recovery.d.ts +0 -14
- package/dist/src/execution/dynamic-connection-recovery.js +0 -1
- package/dist/src/execution/dynamic-connections.d.ts +0 -12
- package/dist/src/execution/dynamic-connections.js +0 -1
- package/dist/src/execution/history-view.d.ts +0 -10
- package/dist/src/execution/history-view.js +0 -1
- package/dist/src/execution/legacy-remote-agent/protocol.d.ts +0 -49
- package/dist/src/execution/legacy-remote-agent/protocol.js +0 -1
- package/dist/src/execution/runtime-errors.d.ts +0 -13
- package/dist/src/execution/runtime-errors.js +0 -1
- package/dist/src/execution/sandbox/grep-tool.d.ts +0 -26
- package/dist/src/execution/sandbox/grep-tool.js +0 -3
- package/dist/src/execution/session/turn-waiting-step.d.ts +0 -4
- package/dist/src/execution/session/turn-waiting-step.js +0 -1
- package/dist/src/execution/tools/workflow/cancel.d.ts +0 -13
- package/dist/src/execution/tools/workflow/cancel.js +0 -1
- package/dist/src/execution/workflow-trace-context.d.ts +0 -8
- package/dist/src/execution/workflow-trace-context.js +0 -1
- package/dist/src/extensions/code/extension/instructions/github.d.ts +0 -3
- package/dist/src/extensions/code/extension/instructions/github.js +0 -1
- package/dist/src/extensions/code/extension/lib/github-compat.d.ts +0 -28
- package/dist/src/extensions/code/extension/lib/github-compat.js +0 -1
- package/dist/src/extensions/code/extension/lib/grep-search.js +0 -6
- package/dist/src/extensions/code/extension/skills/pr.d.ts +0 -6
- package/dist/src/extensions/code/extension/skills/pr.js +0 -1
- package/dist/src/extensions/code/extension/tools/gh.d.ts +0 -28
- package/dist/src/extensions/code/extension/tools/gh.js +0 -1
- package/dist/src/harness/approval-recheck.d.ts +0 -7
- package/dist/src/harness/approval-recheck.js +0 -1
- package/dist/src/harness/authorization-event-fields.d.ts +0 -16
- package/dist/src/harness/authorization-event-fields.js +0 -1
- package/dist/src/harness/hitl/candidates.d.ts +0 -139
- package/dist/src/harness/hitl/candidates.js +0 -1
- package/dist/src/harness/hitl/coordinator.d.ts +0 -35
- package/dist/src/harness/hitl/coordinator.js +0 -1
- package/dist/src/harness/input-extraction.d.ts +0 -13
- package/dist/src/harness/input-extraction.js +0 -1
- package/dist/src/harness/input-request-class.d.ts +0 -3
- package/dist/src/harness/input-request-class.js +0 -1
- package/dist/src/harness/input-request-resolution.d.ts +0 -39
- package/dist/src/harness/input-request-resolution.js +0 -1
- package/dist/src/harness/open-input-request.d.ts +0 -8
- package/dist/src/harness/open-input-request.js +0 -1
- package/dist/src/harness/session-machine/events.d.ts +0 -6
- package/dist/src/harness/session-machine/events.js +0 -1
- package/dist/src/harness/session-machine/resolver-events.d.ts +0 -12
- package/dist/src/harness/session-machine/resolver-events.js +0 -1
- package/dist/src/harness/tool-call-action.d.ts +0 -9
- package/dist/src/harness/tool-call-action.js +0 -1
- package/dist/src/harness/tool-interrupts.d.ts +0 -22
- package/dist/src/harness/tool-interrupts.js +0 -1
- package/dist/src/harness/tool-presentation.d.ts +0 -5
- package/dist/src/harness/tool-presentation.js +0 -1
- package/dist/src/harness/turn-tag-state.d.ts +0 -115
- package/dist/src/harness/turn-tag-state.js +0 -1
- package/dist/src/internal/dynamic-tool-rebind.d.ts +0 -3
- package/dist/src/internal/dynamic-tool-rebind.js +0 -1
- package/dist/src/internal/nitro/host/extension-capability-requirements.d.ts +0 -14
- package/dist/src/internal/nitro/host/extension-capability-requirements.js +0 -1
- package/dist/src/internal/workflow-bundle/dynamic-capability-transform-plugin.d.ts +0 -12
- package/dist/src/internal/workflow-bundle/dynamic-capability-transform-plugin.js +0 -1
- package/dist/src/internal/workflow-bundle/dynamic-remote-agent-transform.d.ts +0 -7
- package/dist/src/internal/workflow-bundle/dynamic-remote-agent-transform.js +0 -3
- package/dist/src/internal/workflow-bundle/dynamic-tool-ast-references.d.ts +0 -79
- package/dist/src/internal/workflow-bundle/dynamic-tool-ast-references.js +0 -1
- package/dist/src/internal/workflow-bundle/dynamic-tool-transform.d.ts +0 -14
- package/dist/src/internal/workflow-bundle/dynamic-tool-transform.js +0 -3
- package/dist/src/protocol/event-dedupe.d.ts +0 -26
- package/dist/src/protocol/event-dedupe.js +0 -1
- package/dist/src/protocol/event-id.d.ts +0 -10
- package/dist/src/protocol/event-id.js +0 -1
- package/dist/src/protocol/message-version.d.ts +0 -53
- package/dist/src/protocol/message-version.js +0 -1
- package/dist/src/protocol/message.d.ts +0 -1198
- package/dist/src/protocol/message.js +0 -2
- package/dist/src/public/channels/chat-sdk/messageToUserContent.js +0 -1
- package/dist/src/public/channels/slack/input-response.js +0 -1
- package/dist/src/runtime/hooks/registry.d.ts +0 -34
- package/dist/src/runtime/hooks/registry.js +0 -1
- package/dist/src/runtime/resolve-dynamic-connection.d.ts +0 -5
- package/dist/src/runtime/resolve-dynamic-connection.js +0 -1
- package/dist/src/runtime/resolve-dynamic-instructions.d.ts +0 -4
- package/dist/src/runtime/resolve-dynamic-instructions.js +0 -1
- package/dist/src/runtime/resolve-dynamic-skill.d.ts +0 -8
- package/dist/src/runtime/resolve-dynamic-skill.js +0 -1
- package/dist/src/runtime/resolve-dynamic-subagent.d.ts +0 -9
- package/dist/src/runtime/resolve-dynamic-subagent.js +0 -1
- package/dist/src/runtime/resolve-dynamic-tool.d.ts +0 -12
- package/dist/src/runtime/resolve-dynamic-tool.js +0 -1
- package/dist/src/self-modification/migration.d.ts +0 -9
- package/dist/src/self-modification/migration.js +0 -28
- package/dist/src/shared/history-view.d.ts +0 -22
- package/dist/src/shared/history-view.js +0 -1
- package/dist/src/shared/package-version.d.ts +0 -2
- package/dist/src/shared/package-version.js +0 -1
- package/dist/src/tools/durable-callbacks.d.ts +0 -118
- package/dist/src/tools/durable-callbacks.js +0 -1
- package/dist/src/tools/durable-schema.d.ts +0 -16
- package/dist/src/tools/durable-schema.js +0 -1
- /package/dist/src/{client/eve-agent-store-state.js → ai/decision-types.js} +0 -0
- /package/dist/src/client/{message-reducer-types.js → agent-info-types.js} +0 -0
- /package/dist/src/client/{reducer.js → health-types.js} +0 -0
- /package/dist/src/{shared → protocol/session-projection}/display-name.d.ts +0 -0
- /package/dist/src/{shared → protocol/session-projection}/display-name.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createHook,getWorkflowMetadata}from"#compiled/@workflow/core/index.js";import{disposeHook}from"#execution/hook-ownership.js";import{
|
|
1
|
+
import{createHook,getWorkflowMetadata}from"#compiled/@workflow/core/index.js";import{disposeHook}from"#execution/hook-ownership.js";import{findWorkflowToolRunContext}from"#execution/tools/workflow/ask.js";import{signInInteractionId,signInOpened}from"#harness/interaction-facts.js";function workflowToolStep(e,t){return new Proxy(e,{apply(e,n,r){let i=findWorkflowContextArgument(r);return i===void 0?Reflect.apply(e,n,r):executeAuthorizedStep(t,n,r,i)}})}function findWorkflowContextArgument(e){for(let t of e){let e=findWorkflowToolRunContext(t);if(e!==void 0)return{ctx:t,run:e}}}async function executeAuthorizedStep(e,t,n,r){let{ctx:i,run:a}=r,o=[],s=new Map;for(;;){let r=createHook();try{let c;try{c=await invokeAuthorizedStep({args:n,authorizationResults:o,callbackToken:r.token,ctx:i,execute:e,receiver:t,run:a})}catch(e){throw i.abortSignal.aborted||await reportPendingAsFailed(a,i.abortSignal,s),e}if(await reconcileCompletedAuthorizations(a,i.abortSignal,s,o,c.authorized),c.kind===`result`)return await reportPendingAsFailed(a,i.abortSignal,s),c.output;await collectAuthorizationCallbacks({authorizationResults:o,callback:r,challenges:c.signal.challenges,ctx:i,pending:s,run:a})}finally{await disposeHook(r)}}}async function invokeAuthorizedStep(e){let{args:t,authorizationResults:n,callbackToken:r,ctx:i,execute:a,receiver:o,run:s}=e,c={callId:i.callId,toolName:i.toolName,session:i.session,abortSignal:i.abortSignal,baseUrl:getWorkflowMetadata().url,token:r,authorizationResults:n,sandbox:{bundle:s.agentContext.bundle,sessionId:s.agentContext.sandbox.sessionId,state:s.agentContext.sandbox.state}},l={args:t.map(e=>e===i?null:e),context:c,contextIndexes:t.flatMap((e,t)=>e===i?[t]:[])};return await a.call(o,l)}async function reconcileCompletedAuthorizations(e,t,n,r,i){let a=new Set(i);for(let r of a){let i=n.get(r);i!==void 0&&await reportAuthorization(e,t,i,`accepted`),n.delete(r)}for(let e=r.length-1;e>=0;e--){let t=r[e];t!==void 0&&a.has(t.attemptId)&&r.splice(e,1)}}async function collectAuthorizationCallbacks(e){let{authorizationResults:t,callback:n,challenges:r,ctx:i,pending:a,run:o}=e;for(let e of r){let r=requireAttemptId(e);a.set(r.attemptId,r),await reportAuthorization(o,i.abortSignal,r);try{let e=await waitForCallback(n,r,i.abortSignal);t.push({name:r.name,instanceId:r.instanceId,attemptId:r.attemptId,hookUrl:r.hookUrl,principal:r.principal,resume:r.resume,callback:e})}catch(e){throw i.abortSignal.aborted||await reportAuthorization(o,i.abortSignal,r,`failed`),e}}}function requireAttemptId(e){if(e.attemptId===void 0)throw Error(`Workflow authorization challenge "${e.name}" has no attempt id.`);return e}async function reportPendingAsFailed(e,t,n){for(let r of n.values())await reportAuthorization(e,t,r,`failed`)}async function reportAuthorization(e,t,n,r){let i=runSignIn(e.from,n,r),a=createHook();try{await a.getConflict(),await withAbort(e.owner.send({kind:`request`,from:e.from,replyTo:a.token,request:{kind:`relay`,event:{kind:`subagent-interaction`,callId:e.from.callId,childSessionId:e.from.runId,subagentName:e.from.toolName,events:[i]}}}),t),await withAbort(a,t)}finally{await disposeHook(a)}}async function waitForCallback(e,t,n){let r=e[Symbol.asyncIterator]();for(;;){let e=await withAbort(r.next(),n);if(e.done)throw Error(`Authorization callback closed before sign-in completed.`);let i=readCallback(e.value,t);if(i!==void 0)return i}}async function withAbort(e,t){let abort,n=new Promise((e,n)=>{abort=()=>n(t.reason??Error(`Workflow authorization cancelled.`)),t.addEventListener(`abort`,abort,{once:!0}),t.aborted&&abort()});try{return await Promise.race([e,n])}finally{t.removeEventListener(`abort`,abort)}}function readCallback(e,t){if(typeof e==`object`&&e&&`payloads`in e&&Array.isArray(e.payloads))for(let n of e.payloads){let e=n?.authorizationCallback;if(e?.attemptId!==t.attemptId||e?.connectionName!==t.name)continue;let r=e.callback;if(!(typeof r?.method!=`string`||typeof r.params!=`object`||r.params===null||Array.isArray(r.params))&&Object.values(r.params).every(e=>typeof e==`string`)&&(r.body===void 0||typeof r.body==`string`))return r}}function runSignIn(e,t,n){return n===void 0?{data:signInOpened(t,{prompt:`Sign in to ${t.name} to continue.`,subject:e.taskId===void 0?{turnId:e.turnId}:{taskId:e.taskId}}).data,type:`interaction.opened`}:{data:{interactionId:signInInteractionId(t),outcome:n},type:`interaction.settled`}}export{workflowToolStep};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { PublishedSessionEvents, SessionStepState } from "#execution/publish-session-events.js";
|
|
2
2
|
import { type SessionStateTransition } from "#execution/session/state-delta.js";
|
|
3
|
-
import type {
|
|
3
|
+
import type { Relay } from "#harness/hitl/relays.js";
|
|
4
4
|
/**
|
|
5
5
|
* Decides a run's request to withdraw a question. A question the session
|
|
6
6
|
* still offers is withdrawn, so channels stop offering it. One it no longer
|
|
@@ -25,5 +25,5 @@ export declare function withdrawFinishedRunQuestionsStep(input: SessionStepState
|
|
|
25
25
|
* Withdraws the relayed requests `select` picks through the machine's `finishRun`, for a step
|
|
26
26
|
* that owns the session. Their routes drop with the save, once the projection shows them closed.
|
|
27
27
|
*/
|
|
28
|
-
export declare function relayWithdrawnRequests(input: SessionStepState, select: (requestId: string, route:
|
|
28
|
+
export declare function relayWithdrawnRequests(input: SessionStepState, select: (requestId: string, route: Relay) => boolean): Promise<PublishedSessionEvents>;
|
|
29
29
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{resumeHook}from"#internal/workflow/runtime.js";import{readDurableSession}from"#execution/durable-session-store.js";import{readHitlState}from"#harness/hitl/index.js";import{commitSessionStep}from"#execution/publish-session-events.js";import{withSessionStateDelta}from"#execution/session/state-delta.js";import{finishRun}from"#harness/session-machine/transitions.js";import{ignoreGoneTarget}from"#execution/tasks/workflow-target.js";async function withdrawWorkflowToolRunQuestionStep(e){"use step";return await withSessionStateDelta(e,withdrawWorkflowToolRunQuestion)}async function withdrawWorkflowToolRunQuestion(e){let t={kind:`withdrawn`,requestId:e.requestId};return await ignoreGoneTarget(resumeHook(e.control,t)),await relayWithdrawnRequests(e,(t,n)=>t===e.requestId&&n.workflowAsk!==void 0&&n.runId===e.runId)}async function withdrawFinishedRunQuestionsStep(e){"use step";return await withSessionStateDelta(e,e=>relayWithdrawnRequests(e,(t,n)=>n.runId===e.runId))}async function relayWithdrawnRequests(e,t){let{state:n}=readDurableSession(e.sessionState),r=[...readHitlState(n).relays].filter(([e,n])=>t(e,n)).map(([e])=>e);return await commitSessionStep(e,e=>[finishRun(e,{requestIds:r})],{origin:`relayed`})}export{relayWithdrawnRequests,withdrawFinishedRunQuestionsStep,withdrawWorkflowToolRunQuestionStep};
|
|
1
|
+
import{resumeHook}from"#internal/workflow/runtime.js";import{readDurableSession}from"#execution/durable-session-store.js";import{readHitlState}from"#harness/hitl/index.js";import{commitSessionStep}from"#execution/publish-session-events.js";import"#execution/session/state-delta.js";import{withSessionStateDelta}from"#execution/session/step-state-delta.js";import{finishRun}from"#harness/session-machine/transitions.js";import{ignoreGoneTarget}from"#execution/tasks/workflow-target.js";async function withdrawWorkflowToolRunQuestionStep(e){"use step";return await withSessionStateDelta(e,withdrawWorkflowToolRunQuestion)}async function withdrawWorkflowToolRunQuestion(e){let t={kind:`withdrawn`,requestId:e.requestId};return await ignoreGoneTarget(resumeHook(e.control,t)),await relayWithdrawnRequests(e,(t,n)=>t===e.requestId&&n.workflowAsk!==void 0&&n.runId===e.runId)}async function withdrawFinishedRunQuestionsStep(e){"use step";return await withSessionStateDelta(e,e=>relayWithdrawnRequests(e,(t,n)=>n.runId===e.runId))}async function relayWithdrawnRequests(e,t){let{state:n}=readDurableSession(e.sessionState),r=[...readHitlState(n).relays].filter(([e,n])=>t(e,n)).map(([e])=>e);return await commitSessionStep(e,e=>[finishRun(e,{requestIds:r})],{origin:`relayed`})}export{relayWithdrawnRequests,withdrawFinishedRunQuestionsStep,withdrawWorkflowToolRunQuestionStep};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { SessionEvent, SessionStreamEvent } from "#protocol/session-event.js";
|
|
2
|
+
import { type StoredLine } from "#protocol/session-events/envelope.js";
|
|
3
|
+
/** Reads consecutive stored lines of one session an eve before v27 started, from its first. */
|
|
4
|
+
export interface V26HistoryReader {
|
|
5
|
+
/**
|
|
6
|
+
* The v27 line the record at `position` reads as, or `undefined` when it records nothing a v27
|
|
7
|
+
* reader folds, such as a streamed delta. A v27 line reads as itself: a v27 deployment that
|
|
8
|
+
* ends a stranded v26 session appends its end as one.
|
|
9
|
+
*/
|
|
10
|
+
read(record: unknown, position: number): StoredLine<SessionEvent> | undefined;
|
|
11
|
+
}
|
|
12
|
+
/** A reader for one session's stored v26 lines. Read them in order, from position 0. */
|
|
13
|
+
export declare function createV26HistoryReader(): V26HistoryReader;
|
|
14
|
+
/**
|
|
15
|
+
* The v27 lines a v26 session's stored records read as, from position `from` on: one output per
|
|
16
|
+
* record, a `position` marker for a record that reads as none, so cursors keep counting stored
|
|
17
|
+
* lines. `records` must start at position 0: each record reads in light of those before it.
|
|
18
|
+
*/
|
|
19
|
+
export declare function v26LineStream(records: ReadableStream<unknown>, from: number): ReadableStream<unknown>;
|
|
20
|
+
/**
|
|
21
|
+
* The events one session's saved v26 events read as, for an application that kept them: the
|
|
22
|
+
* events a v27 reader of the session's stream would read from them, at the same positions. They
|
|
23
|
+
* must be the session's events from its first, one per stored line, in order, as a v26 client
|
|
24
|
+
* read them from position 0; the next stored line is then at `records.length`. If trailing
|
|
25
|
+
* records emit nothing, the last event's `meta.next` retains that source coverage without
|
|
26
|
+
* changing any event's original position. Save the returned reader metadata unchanged.
|
|
27
|
+
*/
|
|
28
|
+
export declare function convertLegacyEvents(records: readonly unknown[]): SessionStreamEvent[];
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const KITCHEN_SINK=[{data:{runtime:{agentId:`v26-spike`,agentName:`v26-spike`,eveVersion:`0.82.0`}},meta:{at:`2026-10-22T21:36:06.909Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`session.started`},{data:{sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:06.912Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`turn.started`},{data:{message:`hello there`,parts:[{text:`hello there`,type:`text`}],sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:06.912Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:06.914Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:06.939Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`Echo: hello there`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:06.942Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:0,stepIndex:0,turnId:`turn_0`,usage:{inputTokens:316,outputTokens:5,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:06.944Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`step.completed`},{data:{sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:06.959Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:316,outputTokens:5},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:06.960Z`,deliveryIds:[`f369f304-02f5-4ee8-9e55-6db429738ac3`]},type:`session.waiting`},{data:{sequence:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.146Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`turn.started`},{data:{message:`what is the weather`,parts:[{text:`what is the weather`,type:`text`}],sequence:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.146Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:1,stepIndex:0,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.146Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:1,stepIndex:0,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.160Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,message:`Let me check the weather.`,sequence:1,stepIndex:0,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.164Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`message.completed`},{data:{actions:[{callId:`mock-tool-call-2-0-1`,input:{city:`Paris`},kind:`tool-call`,toolName:`get_weather`}],sequence:1,stepIndex:0,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.165Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`actions.requested`},{data:{result:{callId:`mock-tool-call-2-0-1`,kind:`tool-result`,output:{city:`Paris`,forecast:`sunny`,temperatureC:21},toolName:`get_weather`},sequence:1,status:`completed`,stepIndex:0,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.165Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`action.result`},{data:{finishReason:`tool-calls`,sequence:1,stepIndex:0,turnId:`turn_1`,usage:{inputTokens:330,outputTokens:11,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:07.167Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`step.completed`},{data:{modelId:`eve-mock/spike-mock`,sequence:1,stepIndex:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.185Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:1,stepIndex:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.193Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`get_weather said: {"city":"Paris","forecast":"sunny","temperatureC":21}`,sequence:1,stepIndex:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.193Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:1,stepIndex:1,turnId:`turn_1`,usage:{inputTokens:354,outputTokens:18,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:07.194Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`step.completed`},{data:{sequence:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:07.199Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:1e3,outputTokens:34},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:07.199Z`,deliveryIds:[`e1db1ef9-dcd0-48b9-a0d7-460795f4c8e4`]},type:`session.waiting`},{data:{sequence:2,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.461Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`turn.started`},{data:{message:`please run the gate`,parts:[{text:`please run the gate`,type:`text`}],sequence:2,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.462Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:2,stepIndex:0,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.462Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-3-1-1`,input:{marker:`M1`},kind:`tool-call`,toolName:`gate`}],sequence:2,stepIndex:0,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.469Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`actions.requested`},{data:{reasoning:`Thinking it over.`,sequence:2,stepIndex:0,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.469Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:2,stepIndex:0,turnId:`turn_2`,usage:{inputTokens:381,outputTokens:4,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:07.470Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`step.completed`},{data:{requests:[{action:{callId:`mock-tool-call-3-1-1`,input:{marker:`M1`},kind:`tool-call`,toolName:`gate`},allowFreeform:!1,display:`confirmation`,kind:`tool-approval`,options:[{id:`approve`,label:`Approve`},{id:`cancel`,label:`Cancel`}],prompt:`Approve Gate?`,requestId:`aitxt-3AWSk88AOGAwJJf09k9k53UD`}],sequence:2,stepIndex:0,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.473Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`input.requested`},{data:{on:`input`,sequence:2,turnId:`turn_2`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:1381,outputTokens:38}},meta:{at:`2026-10-22T21:36:07.474Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`turn.waiting`},{data:{outcome:`approved`,requestId:`aitxt-3AWSk88AOGAwJJf09k9k53UD`,responderPrincipalId:`alice`,sequence:2,stepIndex:0,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.786Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`approval.settled`},{data:{resolutions:[{kind:`tool-approval`,outcome:`approved`,requestId:`aitxt-3AWSk88AOGAwJJf09k9k53UD`,response:{optionId:`approve`,requestId:`aitxt-3AWSk88AOGAwJJf09k9k53UD`}}],sequence:2,stepIndex:0,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.786Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`input.resolved`},{data:{modelId:`eve-mock/spike-mock`,sequence:2,stepIndex:1,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.787Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`step.started`},{data:{result:{callId:`mock-tool-call-3-1-1`,kind:`tool-result`,output:{executed:!0,marker:`M1`},toolName:`gate`},sequence:2,status:`completed`,stepIndex:1,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.788Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`action.result`},{data:{reasoning:`Thinking it over.`,sequence:2,stepIndex:1,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.795Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`gate said: {"executed":true,"marker":"M1"}`,sequence:2,stepIndex:1,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.795Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:2,stepIndex:1,turnId:`turn_2`,usage:{inputTokens:432,outputTokens:11,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:07.796Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`step.completed`},{data:{sequence:2,turnId:`turn_2`},meta:{at:`2026-10-22T21:36:07.799Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:1813,outputTokens:49},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:07.799Z`,deliveryIds:[`01ae5dd5-5093-43d8-bed1-9f5a8280e379`]},type:`session.waiting`},{data:{sequence:3,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.108Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`turn.started`},{data:{message:`run the gate again`,parts:[{text:`run the gate again`,type:`text`}],sequence:3,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.108Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:3,stepIndex:0,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.108Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-5-2-1`,input:{marker:`M1`},kind:`tool-call`,toolName:`gate`}],sequence:3,stepIndex:0,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.114Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`actions.requested`},{data:{reasoning:`Thinking it over.`,sequence:3,stepIndex:0,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.115Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:3,stepIndex:0,turnId:`turn_3`,usage:{inputTokens:452,outputTokens:4,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:08.115Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`step.completed`},{data:{requests:[{action:{callId:`mock-tool-call-5-2-1`,input:{marker:`M1`},kind:`tool-call`,toolName:`gate`},allowFreeform:!1,display:`confirmation`,kind:`tool-approval`,options:[{id:`approve`,label:`Approve`},{id:`cancel`,label:`Cancel`}],prompt:`Approve Gate?`,requestId:`aitxt-63W6rvQYVV46U5gL4HLLfk6b`}],sequence:3,stepIndex:0,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.118Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`input.requested`},{data:{on:`input`,sequence:3,turnId:`turn_3`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:2265,outputTokens:53}},meta:{at:`2026-10-22T21:36:08.118Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`turn.waiting`},{data:{outcome:`cancelled`,requestId:`aitxt-63W6rvQYVV46U5gL4HLLfk6b`,responderPrincipalId:`alice`,sequence:3,stepIndex:0,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.430Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`approval.settled`},{data:{resolutions:[{kind:`tool-approval`,outcome:`denied`,requestId:`aitxt-63W6rvQYVV46U5gL4HLLfk6b`,response:{optionId:`cancel`,requestId:`aitxt-63W6rvQYVV46U5gL4HLLfk6b`}}],sequence:3,stepIndex:0,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.430Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`input.resolved`},{data:{error:{code:`TOOL_EXECUTION_DENIED`,message:`Tool execution was denied.`},result:{callId:`mock-tool-call-5-2-1`,isError:!0,kind:`tool-result`,output:{approval:{requestId:`aitxt-63W6rvQYVV46U5gL4HLLfk6b`,status:`denied`},code:`TOOL_EXECUTION_DENIED`,message:`Tool execution was denied.`,tool:{result:`not_run`}},toolName:`gate`},sequence:3,status:`rejected`,stepIndex:0,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.431Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`action.result`},{data:{modelId:`eve-mock/spike-mock`,sequence:3,stepIndex:1,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.432Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:3,stepIndex:1,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.438Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`gate said: "Tool execution was denied."`,sequence:3,stepIndex:1,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.439Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:3,stepIndex:1,turnId:`turn_3`,usage:{inputTokens:502,outputTokens:10,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:08.439Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`step.completed`},{data:{sequence:3,turnId:`turn_3`},meta:{at:`2026-10-22T21:36:08.442Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:2767,outputTokens:63},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:08.442Z`,deliveryIds:[`5e530261-82be-4c54-9e1e-d7e58af2d613`]},type:`session.waiting`},{data:{sequence:4,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:08.760Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`turn.started`},{data:{message:`ask me a question`,parts:[{text:`ask me a question`,type:`text`}],sequence:4,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:08.761Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:4,stepIndex:0,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:08.761Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-7-3-1`,input:{question:`Which color?`,options:[{label:`Red`,description:`A warm color.`},{label:`Blue`,description:`A cool color.`}]},kind:`tool-call`,toolName:`ask_question`}],sequence:4,stepIndex:0,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:08.768Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`actions.requested`},{data:{reasoning:`Thinking it over.`,sequence:4,stepIndex:0,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:08.768Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:4,stepIndex:0,turnId:`turn_4`,usage:{inputTokens:521,outputTokens:33,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:08.769Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`step.completed`},{data:{on:`tasks`,sequence:4,turnId:`turn_4`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:3288,outputTokens:96}},meta:{at:`2026-10-22T21:36:08.771Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`turn.waiting`},{data:{requests:[{action:{callId:`mock-tool-call-7-3-1`,input:{question:`Which color?`,options:[{label:`Red`,description:`A warm color.`},{label:`Blue`,description:`A cool color.`}]},kind:`tool-call`,toolName:`ask_question`},kind:`question`,prompt:`Which color?`,requestId:`wrun_01M5JRNY2EWQ594SJCQNDFPF25-ask-1`,allowFreeform:!0,display:`select`,options:[{description:`A warm color.`,id:`Red`,label:`Red`},{description:`A cool color.`,id:`Blue`,label:`Blue`}]}],sequence:4,stepIndex:0,turnId:`turn_4`,callId:`mock-tool-call-7-3-1`},meta:{at:`2026-10-22T21:36:08.832Z`},type:`input.requested`},{data:{on:`input`,sequence:4,turnId:`turn_4`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:3288,outputTokens:96}},meta:{at:`2026-10-22T21:36:08.832Z`},type:`turn.waiting`},{data:{resolutions:[{kind:`question`,outcome:`answered`,requestId:`wrun_01M5JRNY2EWQ594SJCQNDFPF25-ask-1`,response:{optionId:`Blue`,requestId:`wrun_01M5JRNY2EWQ594SJCQNDFPF25-ask-1`}}],sequence:4,stepIndex:0,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:09.127Z`},type:`input.resolved`},{data:{result:{callId:`mock-tool-call-7-3-1`,kind:`tool-result`,output:{answer:`Blue`,status:`answered`},toolName:`ask_question`},sequence:4,status:`completed`,stepIndex:0,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:09.165Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`action.result`},{data:{modelId:`eve-mock/spike-mock`,sequence:4,stepIndex:1,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:09.166Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:4,stepIndex:1,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:09.172Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`ask_question said: {"answer":"Blue","status":"answered"}`,sequence:4,stepIndex:1,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:09.172Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:4,stepIndex:1,turnId:`turn_4`,usage:{inputTokens:535,outputTokens:14,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:09.173Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`step.completed`},{data:{sequence:4,turnId:`turn_4`},meta:{at:`2026-10-22T21:36:09.177Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:3823,outputTokens:110},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:09.177Z`,deliveryIds:[`a0c6e954-277e-49bb-8eb6-35164a209c6e`]},type:`session.waiting`},{data:{sequence:5,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.493Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`turn.started`},{data:{message:`ask me a question again`,parts:[{text:`ask me a question again`,type:`text`}],sequence:5,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.493Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:5,stepIndex:0,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.493Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-8-4-1`,input:{question:`Which color?`,options:[{label:`Red`,description:`A warm color.`},{label:`Blue`,description:`A cool color.`}]},kind:`tool-call`,toolName:`ask_question`}],sequence:5,stepIndex:0,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.499Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`actions.requested`},{data:{reasoning:`Thinking it over.`,sequence:5,stepIndex:0,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.500Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:5,stepIndex:0,turnId:`turn_5`,usage:{inputTokens:559,outputTokens:33,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:09.500Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`step.completed`},{data:{on:`tasks`,sequence:5,turnId:`turn_5`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:4382,outputTokens:143}},meta:{at:`2026-10-22T21:36:09.502Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`turn.waiting`},{data:{requests:[{action:{callId:`mock-tool-call-8-4-1`,input:{question:`Which color?`,options:[{label:`Red`,description:`A warm color.`},{label:`Blue`,description:`A cool color.`}]},kind:`tool-call`,toolName:`ask_question`},kind:`question`,prompt:`Which color?`,requestId:`wrun_01M5JRNYS7ABGM16P294JDT4E0-ask-1`,allowFreeform:!0,display:`select`,options:[{description:`A warm color.`,id:`Red`,label:`Red`},{description:`A cool color.`,id:`Blue`,label:`Blue`}]}],sequence:5,stepIndex:0,turnId:`turn_5`,callId:`mock-tool-call-8-4-1`},meta:{at:`2026-10-22T21:36:09.559Z`},type:`input.requested`},{data:{on:`input`,sequence:5,turnId:`turn_5`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:4382,outputTokens:143}},meta:{at:`2026-10-22T21:36:09.559Z`},type:`turn.waiting`},{data:{resolutions:[{kind:`question`,outcome:`answered`,requestId:`wrun_01M5JRNYS7ABGM16P294JDT4E0-ask-1`,response:{requestId:`wrun_01M5JRNYS7ABGM16P294JDT4E0-ask-1`,text:`Green, actually`}}],sequence:5,stepIndex:0,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.868Z`},type:`input.resolved`},{data:{result:{callId:`mock-tool-call-8-4-1`,kind:`tool-result`,output:{answer:`Green, actually`,status:`answered`},toolName:`ask_question`},sequence:5,status:`completed`,stepIndex:0,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.907Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`action.result`},{data:{modelId:`eve-mock/spike-mock`,sequence:5,stepIndex:1,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.908Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:5,stepIndex:1,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.914Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`ask_question said: {"answer":"Green, actually","status":"answered"}`,sequence:5,stepIndex:1,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.915Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:5,stepIndex:1,turnId:`turn_5`,usage:{inputTokens:576,outputTokens:17,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:09.915Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`step.completed`},{data:{sequence:5,turnId:`turn_5`},meta:{at:`2026-10-22T21:36:09.922Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:4958,outputTokens:160},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:09.922Z`,deliveryIds:[`4bc198cc-31e7-4f06-ab1c-ecefc3b7d999`]},type:`session.waiting`},{data:{sequence:6,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.243Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`turn.started`},{data:{message:`delegate to the helper`,parts:[{text:`delegate to the helper`,type:`text`}],sequence:6,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.243Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:6,stepIndex:0,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.243Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-9-5-1`,description:`A helper subagent. Call it to delegate. `,input:{message:`Say the marker`},name:`helper`,nodeId:`subagents/helper`,kind:`subagent-call`,subagentName:`helper`}],presentation:{"mock-tool-call-9-5-1":{label:`Helper: Say the marker`}},sequence:6,stepIndex:0,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.249Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`actions.requested`},{data:{reasoning:`Thinking it over.`,sequence:6,stepIndex:0,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.250Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:6,stepIndex:0,turnId:`turn_6`,usage:{inputTokens:603,outputTokens:7,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:10.250Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`step.completed`},{data:{callId:`mock-tool-call-9-5-1`,kind:`agent`,name:`helper`,taskId:`helper-1sd8t5`,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.283Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`task.started`},{data:{result:{callId:`mock-tool-call-9-5-1`,kind:`tool-result`,output:`Task helper-1sd8t5 is running.`,toolName:`helper`},sequence:6,status:`completed`,stepIndex:0,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.297Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`action.result`},{data:{modelId:`eve-mock/spike-mock`,sequence:6,stepIndex:1,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.298Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:6,stepIndex:1,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.304Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`Started the helper.`,sequence:6,stepIndex:1,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.304Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:6,stepIndex:1,turnId:`turn_6`,usage:{inputTokens:666,outputTokens:5,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:10.304Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`step.completed`},{data:{on:`tasks`,sequence:6,turnId:`turn_6`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:6227,outputTokens:172}},meta:{at:`2026-10-22T21:36:10.308Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`turn.waiting`},{data:{callId:`mock-tool-call-9-5-1`,turnId:`turn_6`,name:`helper`,sessionId:`wrun_01M5JRNZJ9VF5XQGNKC91ETXB5`,streamPath:`/eve/v1/session/wrun_01M5JRNZJ9VF5XQGNKC91ETXB5/stream`,taskId:`helper-1sd8t5`},meta:{at:`2026-10-22T21:36:10.417Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`agent.started`},{data:{callId:`mock-tool-call-9-5-1`,kind:`agent`,name:`helper`,status:`completed`,taskId:`helper-1sd8t5`,turnId:`turn_6`,output:`HELPER-MARKER-42`},meta:{at:`2026-10-22T21:36:10.463Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`task.settled`},{data:{modelId:`eve-mock/spike-mock`,sequence:6,stepIndex:2,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.471Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:6,stepIndex:2,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.477Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`The helper said HELPER-MARKER-42.`,sequence:6,stepIndex:2,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.477Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:6,stepIndex:2,turnId:`turn_6`,usage:{inputTokens:720,outputTokens:9,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:10.478Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`step.completed`},{data:{sequence:6,turnId:`turn_6`},meta:{at:`2026-10-22T21:36:10.483Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:7053,outputTokens:185},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:10.483Z`,deliveryIds:[`d75cc68d-0aa3-4c24-aed2-5899f64d2e2f`]},type:`session.waiting`},{data:{sequence:7,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.728Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`turn.started`},{data:{message:`explode please`,parts:[{text:`explode please`,type:`text`}],sequence:7,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.728Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:7,stepIndex:0,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.729Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-13-6-1`,input:{},kind:`tool-call`,toolName:`explode`}],sequence:7,stepIndex:0,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.740Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`actions.requested`},{data:{error:{code:`ACTION_RESULT_FAILED`,message:`Kaboom`,name:`Error`},result:{callId:`mock-tool-call-13-6-1`,kind:`tool-result`,output:`Kaboom`,toolName:`explode`,errorName:`Error`,isError:!0},sequence:7,status:`failed`,stepIndex:0,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.741Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`action.result`},{data:{reasoning:`Thinking it over.`,sequence:7,stepIndex:0,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.742Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:7,stepIndex:0,turnId:`turn_7`,usage:{inputTokens:736,outputTokens:1,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:10.742Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`step.completed`},{data:{modelId:`eve-mock/spike-mock`,sequence:7,stepIndex:1,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.753Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:7,stepIndex:1,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.759Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`explode said: "Error: Kaboom"`,sequence:7,stepIndex:1,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.760Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:7,stepIndex:1,turnId:`turn_7`,usage:{inputTokens:744,outputTokens:8,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:10.760Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`step.completed`},{data:{sequence:7,turnId:`turn_7`},meta:{at:`2026-10-22T21:36:10.766Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:8533,outputTokens:194},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:10.766Z`,deliveryIds:[`90e06b8f-1ec6-4301-aa26-df19271bb9ee`]},type:`session.waiting`},{data:{sequence:8,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.111Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`turn.started`},{data:{message:`do both things`,parts:[{text:`do both things`,type:`text`}],sequence:8,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.112Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:8,stepIndex:0,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.112Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-14-7-1`,input:{city:`Oslo`},kind:`tool-call`,toolName:`get_weather`}],sequence:8,stepIndex:0,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.119Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`actions.requested`},{data:{actions:[{callId:`mock-tool-call-14-7-2`,input:{marker:`M2`},kind:`tool-call`,toolName:`gate`}],sequence:8,stepIndex:0,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.120Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`actions.requested`},{data:{result:{callId:`mock-tool-call-14-7-1`,kind:`tool-result`,output:{city:`Oslo`,forecast:`sunny`,temperatureC:21},toolName:`get_weather`},sequence:8,status:`completed`,stepIndex:0,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.120Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`action.result`},{data:{reasoning:`Thinking it over.`,sequence:8,stepIndex:0,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.121Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:8,stepIndex:0,turnId:`turn_8`,usage:{inputTokens:760,outputTokens:8,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:11.121Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`step.completed`},{data:{requests:[{action:{callId:`mock-tool-call-14-7-2`,input:{marker:`M2`},kind:`tool-call`,toolName:`gate`},allowFreeform:!1,display:`confirmation`,kind:`tool-approval`,options:[{id:`approve`,label:`Approve`},{id:`cancel`,label:`Cancel`}],prompt:`Approve Gate?`,requestId:`aitxt-v1a9uJxRmDRH1gS6CNmgQr3j`}],sequence:8,stepIndex:0,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.128Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`input.requested`},{data:{on:`input`,sequence:8,turnId:`turn_8`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:9293,outputTokens:202}},meta:{at:`2026-10-22T21:36:11.128Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`turn.waiting`},{data:{outcome:`approved`,requestId:`aitxt-v1a9uJxRmDRH1gS6CNmgQr3j`,responderPrincipalId:`alice`,sequence:8,stepIndex:0,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.481Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`approval.settled`},{data:{resolutions:[{kind:`tool-approval`,outcome:`approved`,requestId:`aitxt-v1a9uJxRmDRH1gS6CNmgQr3j`,response:{optionId:`approve`,requestId:`aitxt-v1a9uJxRmDRH1gS6CNmgQr3j`}}],sequence:8,stepIndex:0,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.482Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`input.resolved`},{data:{modelId:`eve-mock/spike-mock`,sequence:8,stepIndex:1,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.482Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`step.started`},{data:{result:{callId:`mock-tool-call-14-7-2`,kind:`tool-result`,output:{executed:!0,marker:`M2`},toolName:`gate`},sequence:8,status:`completed`,stepIndex:1,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.482Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`action.result`},{data:{reasoning:`Thinking it over.`,sequence:8,stepIndex:1,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.489Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`Both done.`,sequence:8,stepIndex:1,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.489Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:8,stepIndex:1,turnId:`turn_8`,usage:{inputTokens:824,outputTokens:3,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:11.489Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`step.completed`},{data:{sequence:8,turnId:`turn_8`},meta:{at:`2026-10-22T21:36:11.492Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:10117,outputTokens:205},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:11.492Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`session.waiting`},{data:{sequence:9,sessionId:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,turnId:`turn_9`},meta:{at:`2026-10-22T21:36:11.874Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`context.cleared`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:10117,outputTokens:205},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:11.875Z`,deliveryIds:[`23afc349-ba19-4510-83d7-fba157238868`]},type:`session.waiting`},{data:{sequence:9,turnId:`turn_9`},meta:{at:`2026-10-22T21:36:12.247Z`,deliveryIds:[`411ce700-d20f-4f4c-a09b-4a1c35d5e4d5`]},type:`turn.started`},{data:{message:`hello after clear`,parts:[{text:`hello after clear`,type:`text`}],sequence:9,turnId:`turn_9`},meta:{at:`2026-10-22T21:36:12.247Z`,deliveryIds:[`411ce700-d20f-4f4c-a09b-4a1c35d5e4d5`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:9,stepIndex:0,turnId:`turn_9`},meta:{at:`2026-10-22T21:36:12.247Z`,deliveryIds:[`411ce700-d20f-4f4c-a09b-4a1c35d5e4d5`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:9,stepIndex:0,turnId:`turn_9`},meta:{at:`2026-10-22T21:36:12.251Z`,deliveryIds:[`411ce700-d20f-4f4c-a09b-4a1c35d5e4d5`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`Echo: hello after clear`,sequence:9,stepIndex:0,turnId:`turn_9`},meta:{at:`2026-10-22T21:36:12.252Z`,deliveryIds:[`411ce700-d20f-4f4c-a09b-4a1c35d5e4d5`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:9,stepIndex:0,turnId:`turn_9`,usage:{inputTokens:338,outputTokens:6,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:12.252Z`,deliveryIds:[`411ce700-d20f-4f4c-a09b-4a1c35d5e4d5`]},type:`step.completed`},{data:{sequence:9,turnId:`turn_9`},meta:{at:`2026-10-22T21:36:12.255Z`,deliveryIds:[`411ce700-d20f-4f4c-a09b-4a1c35d5e4d5`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:10455,outputTokens:211},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:12.255Z`,deliveryIds:[`411ce700-d20f-4f4c-a09b-4a1c35d5e4d5`]},type:`session.waiting`},{data:{sequence:10,turnId:`turn_10`},meta:{at:`2026-10-22T21:36:12.329Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`turn.started`},{data:{messages:[{role:`user`,text:`Earlier question from another system`,id:`h1`},{role:`assistant`,text:`Earlier answer from another system`,id:`h2`}],sequence:10,turnId:`turn_10`},meta:{at:`2026-10-22T21:36:12.329Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`history.imported`},{data:{message:`IMPORT this and say hi`,parts:[{text:`IMPORT this and say hi`,type:`text`}],sequence:10,turnId:`turn_10`},meta:{at:`2026-10-22T21:36:12.329Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:10,stepIndex:0,turnId:`turn_10`},meta:{at:`2026-10-22T21:36:12.329Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:10,stepIndex:0,turnId:`turn_10`},meta:{at:`2026-10-22T21:36:12.333Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`Echo: IMPORT this and say hi`,sequence:10,stepIndex:0,turnId:`turn_10`},meta:{at:`2026-10-22T21:36:12.333Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:10,stepIndex:0,turnId:`turn_10`,usage:{inputTokens:372,outputTokens:7,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:12.333Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`step.completed`},{data:{sequence:10,turnId:`turn_10`},meta:{at:`2026-10-22T21:36:12.336Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:10827,outputTokens:218},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:12.336Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`session.waiting`},{data:{modelId:`eve-mock/spike-mock`,sequence:11,sessionId:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,stepIndex:0,turnId:`turn_11`,usageInputTokens:406},meta:{at:`2026-10-22T21:36:12.400Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`compaction.requested`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:11278,outputTokens:251},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:12.405Z`,deliveryIds:[`5cf3a163-8521-4490-902b-97dac4f48f01`]},type:`session.waiting`},{data:{sequence:11,turnId:`turn_11`},meta:{at:`2026-10-22T21:36:14.422Z`,deliveryIds:[`28ccf371-08b8-4484-bf8a-ed5f0549189a`]},type:`turn.started`},{data:{message:`hello after compact`,parts:[{text:`hello after compact`,type:`text`}],sequence:11,turnId:`turn_11`},meta:{at:`2026-10-22T21:36:14.422Z`,deliveryIds:[`28ccf371-08b8-4484-bf8a-ed5f0549189a`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:11,stepIndex:0,turnId:`turn_11`},meta:{at:`2026-10-22T21:36:14.422Z`,deliveryIds:[`28ccf371-08b8-4484-bf8a-ed5f0549189a`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:11,stepIndex:0,turnId:`turn_11`},meta:{at:`2026-10-22T21:36:14.427Z`,deliveryIds:[`28ccf371-08b8-4484-bf8a-ed5f0549189a`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`Echo: hello after compact`,sequence:11,stepIndex:0,turnId:`turn_11`},meta:{at:`2026-10-22T21:36:14.427Z`,deliveryIds:[`28ccf371-08b8-4484-bf8a-ed5f0549189a`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:11,stepIndex:0,turnId:`turn_11`,usage:{inputTokens:388,outputTokens:7,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:14.428Z`,deliveryIds:[`28ccf371-08b8-4484-bf8a-ed5f0549189a`]},type:`step.completed`},{data:{sequence:11,turnId:`turn_11`},meta:{at:`2026-10-22T21:36:14.431Z`,deliveryIds:[`28ccf371-08b8-4484-bf8a-ed5f0549189a`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRNW3JXDKMN1BP7T89PTCQ`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:11666,outputTokens:258},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:14.431Z`,deliveryIds:[`28ccf371-08b8-4484-bf8a-ed5f0549189a`]},type:`session.waiting`}],STEER_AND_CANCEL=[{data:{runtime:{agentId:`v26-spike`,agentName:`v26-spike`,eveVersion:`0.82.0`}},meta:{at:`2026-10-22T21:36:14.563Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`]},type:`session.started`},{data:{sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:14.563Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`]},type:`turn.started`},{data:{message:`slow please`,parts:[{text:`slow please`,type:`text`}],sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:14.564Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:14.564Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-1-0-1`,input:{ms:6e3},kind:`tool-call`,toolName:`slow`}],sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:14.568Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`]},type:`actions.requested`},{data:{result:{callId:`mock-tool-call-1-0-1`,kind:`tool-result`,output:{slept:6e3},toolName:`slow`},sequence:0,status:`completed`,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:20.568Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`]},type:`action.result`},{data:{reasoning:`Thinking it over.`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:20.569Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:0,stepIndex:0,turnId:`turn_0`,usage:{inputTokens:316,outputTokens:3,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:20.569Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`]},type:`step.completed`},{data:{message:`actually, also this steering note`,parts:[{text:`actually, also this steering note`,type:`text`}],sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:20.583Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`,`3a25f2be-a49b-4a20-8a6a-318bf8138071`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:0,stepIndex:1,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:20.583Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`,`3a25f2be-a49b-4a20-8a6a-318bf8138071`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:0,stepIndex:1,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:20.586Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`,`3a25f2be-a49b-4a20-8a6a-318bf8138071`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`Echo: actually, also this steering note`,sequence:0,stepIndex:1,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:20.587Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`,`3a25f2be-a49b-4a20-8a6a-318bf8138071`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:0,stepIndex:1,turnId:`turn_0`,usage:{inputTokens:333,outputTokens:10,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:20.587Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`,`3a25f2be-a49b-4a20-8a6a-318bf8138071`]},type:`step.completed`},{data:{sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:20.589Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`,`3a25f2be-a49b-4a20-8a6a-318bf8138071`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRP3PB99CA7JDRX1AH8GJP`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:649,outputTokens:13},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:20.589Z`,deliveryIds:[`83636cf2-6b24-4186-8ed4-f14df9d2b6a3`,`3a25f2be-a49b-4a20-8a6a-318bf8138071`]},type:`session.waiting`},{data:{sequence:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:20.741Z`,deliveryIds:[`90467626-6065-463b-a396-4d6a380abe85`]},type:`turn.started`},{data:{message:`slow please again`,parts:[{text:`slow please again`,type:`text`}],sequence:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:20.741Z`,deliveryIds:[`90467626-6065-463b-a396-4d6a380abe85`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:1,stepIndex:0,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:20.741Z`,deliveryIds:[`90467626-6065-463b-a396-4d6a380abe85`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-3-1-1`,input:{ms:6e3},kind:`tool-call`,toolName:`slow`}],sequence:1,stepIndex:0,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:20.746Z`,deliveryIds:[`90467626-6065-463b-a396-4d6a380abe85`]},type:`actions.requested`},{data:{sequence:1,turnId:`turn_1`},meta:{at:`2026-10-22T21:36:21.050Z`,deliveryIds:[`90467626-6065-463b-a396-4d6a380abe85`]},type:`turn.cancelled`},{data:{continuationToken:`wrun_01M5JRP3PB99CA7JDRX1AH8GJP`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:649,outputTokens:13},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:21.051Z`,deliveryIds:[`90467626-6065-463b-a396-4d6a380abe85`]},type:`session.waiting`}],PENDING_APPROVAL=[{data:{runtime:{agentId:`v26-spike`,agentName:`v26-spike`,eveVersion:`0.82.0`}},meta:{at:`2026-10-22T21:36:21.356Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`session.started`},{data:{sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.356Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`turn.started`},{data:{message:`please run the gate`,parts:[{text:`please run the gate`,type:`text`}],sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.356Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.356Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`step.started`},{data:{actions:[{callId:`mock-tool-call-1-0-1`,input:{marker:`M1`},kind:`tool-call`,toolName:`gate`}],sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.359Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`actions.requested`},{data:{reasoning:`Thinking it over.`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.360Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`reasoning.completed`},{data:{finishReason:`tool-calls`,sequence:0,stepIndex:0,turnId:`turn_0`,usage:{inputTokens:318,outputTokens:4,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:21.360Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`step.completed`},{data:{requests:[{action:{callId:`mock-tool-call-1-0-1`,input:{marker:`M1`},kind:`tool-call`,toolName:`gate`},allowFreeform:!1,display:`confirmation`,kind:`tool-approval`,options:[{id:`approve`,label:`Approve`},{id:`cancel`,label:`Cancel`}],prompt:`Approve Gate?`,requestId:`aitxt-DHJ6EZuW9iJ3mxtxH3OaSi8l`}],sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.368Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`input.requested`},{data:{on:`input`,sequence:0,turnId:`turn_0`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:318,outputTokens:4}},meta:{at:`2026-10-22T21:36:21.368Z`,deliveryIds:[`8be1dfa2-67cc-4f07-a435-09f5d9ae6402`]},type:`turn.waiting`}],ATTACHMENT=[{data:{runtime:{agentId:`v26-spike`,agentName:`v26-spike`,eveVersion:`0.82.0`}},meta:{at:`2026-10-22T21:36:21.957Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`session.started`},{data:{sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.958Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`turn.started`},{data:{message:`here is a file
|
|
2
|
+
[file: note.txt (text/plain)]`,parts:[{text:`here is a file`,type:`text`},{mediaType:`text/plain`,type:`file`,filename:`note.txt`,size:5}],sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.958Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`message.received`},{data:{modelId:`eve-mock/spike-mock`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.959Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`step.started`},{data:{reasoning:`Thinking it over.`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.963Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`reasoning.completed`},{data:{finishReason:`stop`,message:`Echo: here is a fileAttached file /workspace/.eve/attachments/2cf24dba5fb0a30e/note.txt (text/plain)`,sequence:0,stepIndex:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.963Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`message.completed`},{data:{finishReason:`stop`,sequence:0,stepIndex:0,turnId:`turn_0`,usage:{inputTokens:337,outputTokens:25,cacheReadTokens:0,cacheWriteTokens:0}},meta:{at:`2026-10-22T21:36:21.964Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`step.completed`},{data:{sequence:0,turnId:`turn_0`},meta:{at:`2026-10-22T21:36:21.966Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`turn.completed`},{data:{continuationToken:`wrun_01M5JRPAK84YV23T2V7SHG8EJ5`,usage:{cacheReadTokens:0,cacheWriteTokens:0,inputTokens:337,outputTokens:25},wait:`next-user-message`},meta:{at:`2026-10-22T21:36:21.967Z`,deliveryIds:[`056319ad-ea04-4094-9b5f-91ec260fc40e`]},type:`session.waiting`}];export{ATTACHMENT,KITCHEN_SINK,PENDING_APPROVAL,STEER_AND_CANCEL};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{FACT_CATALOG}from"#protocol/session-events/catalog.js";import{emptySessionView,foldLine}from"#protocol/session-projection/fold.js";import{isStoredLine}from"#protocol/session-events/envelope.js";import{createEventReader}from"#protocol/session-lines.js";import{isV26Line}from"#protocol/v26-lines.js";import{cascade}from"#harness/session-machine/cascade.js";import{v26InteractionOutcome,v26InteractionRequest,v26SignInOutcome,v26SignInRequest}from"#protocol/v26-interactions.js";function createV26HistoryReader(){let e=emptySessionView(),t=new Translator(e);return{read(n,r){if(isStoredLine(n)){let i=n;return`facts`in i&&t.noteIntroduced(i.facts),foldLine(e,i,r,{retention:`operational`}),i}if(!isV26Line(n))return;let i=n,a=isRecord(i.data)?i.data:{},o=isRecord(i.meta)?i.meta:{},s=typeof o.at==`string`?o.at:new Date(0).toISOString(),c=Array.isArray(o.deliveryIds)?o.deliveryIds.filter(e=>typeof e==`string`):[],l=t.factsOf(i.type,a,{deliveryIds:c,position:r});if(l.length===0)return;let u=JSON.parse(JSON.stringify(l)),d=cascade(e,u),f={at:s,facts:d};return t.noteIntroduced(d),foldLine(e,f,r,{retention:`operational`}),f}}}function v26LineStream(e,t){let n=createV26HistoryReader(),r=0;return e.pipeThrough(new TransformStream({transform(e,i){let a=r;r+=1;let o=n.read(e,a);a<t||i.enqueue(o??{$eve:`position`,next:a+1})}}))}function convertLegacyEvents(e){if(!isSessionStarted(e[0]))throw TypeError("Expected saved events of one session from its first, `session.started`. Each event reads in light of those before it, so events saved from a later position can't be converted; read the session's stream from position 0 again instead.");let t=createV26HistoryReader(),n=createEventReader(),r=[];e.forEach((e,i)=>{if(i>0&&isSessionStarted(e))throw TypeError(`Saved event ${String(i)} starts another session. Convert each session's events separately: split them where each \`session.started\` begins.`);if(!isV26Line(e)||hasStreamPosition(e))throw TypeError(`Saved event ${String(i)} isn't an event saved before the upgrade to this eve version. Pass only those, as they were saved, one per stored line.`);let a=t.read(e,i);a!==void 0&&r.push(...n.read(a,i))});let i=r.at(-1);return i!==void 0&&e.length>i.meta.position.line+1&&(r[r.length-1]={...i,meta:{...i.meta,next:e.length}}),r}function hasStreamPosition(e){let t=e.meta;return isRecord(t)&&t.position!==void 0}function isSessionStarted(e){return isV26Line(e)&&e.type===`session.started`}var Translator=class{turnId;follows=null;runs=new Map;partCounts=new Map;reply;taskCalls=new Set;approvals=new Map;interactionCalls=new Map;compaction;pendingHistory;startingDelivery;introduced=new Set;view;constructor(e){this.view=e}noteIntroduced(e){for(let t of e){let e=FACT_CATALOG[t.type];if(e?.role!==`introduces`)continue;let n=t.data[e.idField];typeof n==`string`&&this.introduced.add(`${e.family}:${n}`)}}isIntroduced(e,t){return this.introduced.has(`${e}:${t}`)}factsOf(e,t,n){let r=`v26_${String(n.position)}`;switch(e){case`session.started`:return[{data:sessionStarted(t),type:`session.started`}];case`turn.started`:return this.startTurn(str(t.turnId),n);case`history.imported`:return this.pendingHistory=Array.isArray(t.messages)?t.messages.flatMap(e=>isRecord(e)&&(e.role===`user`||e.role===`assistant`)&&typeof e.text==`string`?[{id:str(e.id),role:e.role,text:e.text}]:[]):void 0,[];case`message.received`:return this.received(t,n,r);case`step.started`:return this.stepStarted(t,r);case`reasoning.completed`:return this.content(t,`reasoning`,`narration`,str(t.reasoning),r);case`message.completed`:return this.content(t,`text`,t.finishReason===`tool-calls`?`narration`:`reply`,str(t.message),r);case`result.completed`:return this.content(t,`result`,`reply`,json(t.result),r);case`step.completed`:return this.stepSettled(t,`completed`);case`step.failed`:return this.stepSettled(t,`failed`);case`actions.requested`:return this.actionsRequested(t);case`action.result`:return this.actionResult(t);case`task.started`:return this.taskStarted(t);case`task.settled`:return this.taskSettled(t);case`agent.started`:return this.agentStarted(t);case`input.requested`:return this.inputRequested(t);case`turn.waiting`:return this.turnWaiting(t);case`input.resolved`:return this.inputResolved(t,n,r);case`authorization.required`:return this.authorizationRequired(t,r);case`authorization.completed`:return this.authorizationCompleted(t);case`turn.completed`:return this.endTurn(str(t.turnId),{outcome:`completed`});case`turn.cancelled`:return this.endTurn(str(t.turnId),{outcome:`cancelled`});case`turn.failed`:return this.endTurn(str(t.turnId),{error:errorOf(t),outcome:`failed`});case`context.cleared`:return this.follows=null,[{data:{changeId:r,kind:`clear`},type:`context.started`},{data:{changeId:r,kind:`clear`,outcome:`completed`,selects:null},type:`context.settled`}];case`compaction.requested`:return this.compactionRequested(t,r);case`compaction.completed`:return this.compactionSettled(`completed`);case`session.waiting`:return this.compaction===void 0?[]:this.compactionSettled(`failed`);case`session.completed`:return[{data:{outcome:`completed`},type:`session.ended`}];case`session.failed`:return sessionFailed(t,r);default:return[]}}startTurn(e,t){if(e===void 0||this.isIntroduced(`turn`,e))return[];let n=[],r=this.unadmitted(t,`v26_${String(t.position)}`);return n.push(...this.admit(r)),n.push({data:{cause:{deliveryId:r},follows:this.follows,turnId:e},type:`turn.started`}),this.turnId=e,this.follows=e,this.reply=void 0,this.startingDelivery=r,n}received(e,t,n){let r=str(e.turnId);if(r===void 0)return[];let i=this.isIntroduced(`turn`,r)?[]:this.startTurn(r,t),a=this.startingDelivery!==void 0&&this.view.deliveries[this.startingDelivery]?.status===`admitted`?this.startingDelivery:this.unadmitted(t,n);this.startingDelivery=void 0,i.some(e=>e.type===`delivery.admitted`&&e.data.deliveryId===a)||i.push(...this.admit(a));let o=this.pendingHistory;return this.pendingHistory=void 0,i.push({data:{deliveryId:a,history:o!==void 0&&o.length>0?o:void 0,parts:userParts(e),turnId:r},type:`delivery.consumed`}),i}unadmitted(e,t){return e.deliveryIds.find(e=>!this.isIntroduced(`delivery`,e)||this.view.deliveries[e]?.status===`admitted`)??t}admit(e){return this.isIntroduced(`delivery`,e)?[]:[{data:{deliveryId:e},type:`delivery.admitted`}]}runOf(e){let t=str(e.turnId);if(t!==void 0&&typeof e.stepIndex==`number`)return this.runs.get(`${t}:${String(e.stepIndex)}`)}stepStarted(e,t){let n=str(e.turnId);if(n===void 0||this.view.turns[n]?.status!==`running`||typeof e.stepIndex!=`number`)return[];let r=`${n}:${String(e.stepIndex)}`;if(this.runs.has(r))return[];let i=t;return this.runs.set(r,i),[{data:{owner:{turnId:n},runId:i},type:`model.requested`},{data:{attempt:0,modelId:str(e.modelId)??`unknown`,runId:i},type:`model.started`}]}content(e,t,n,r,i){if(r===void 0)return[];let a=this.runOf(e)===void 0?this.stepStarted(e,i):[],o=this.runOf(e);if(o===void 0||!(this.isOpenRun(o)||a.length>0))return[];let s=this.partCounts.get(o)??0;this.partCounts.set(o,s+1);let c=`${o}.${String(s)}`;return n===`reply`&&(this.reply?.runId!==o&&(this.reply={parts:[],runId:o}),this.reply.parts.push(c)),[...a,{data:{kind:t,partId:c,phase:n,runId:o,value:r},type:`content.completed`}]}stepSettled(e,t){let n=this.runOf(e);if(n===void 0||!this.isOpenRun(n))return[];let r=[{data:{error:t===`failed`?errorOf(e):void 0,finishReason:typeof e.finishReason==`string`?e.finishReason:void 0,outcome:t,runId:n},type:`model.settled`}],i=isRecord(e.usage)?e.usage:void 0;return i!==void 0&&r.push({data:{kind:`model`,owner:{runId:n},usage:{cacheReadTokens:num(i.cacheReadTokens),cacheWriteTokens:num(i.cacheWriteTokens),costUsd:typeof i.costUsd==`number`?i.costUsd:void 0,inputTokens:num(i.inputTokens),outputTokens:num(i.outputTokens)}},type:`usage.recorded`}),r}isOpenRun(e){let t=this.view.runs[e]?.status;return t!==void 0&&t!==`settled`}actionsRequested(e){let t=this.runOf(e);if(t===void 0||!Array.isArray(e.actions))return[];let n=isRecord(e.presentation)?e.presentation:{};return e.actions.flatMap(e=>{if(!isRecord(e))return[];let r=str(e.callId);return r===void 0||this.isIntroduced(`call`,r)?[]:[{data:{callId:r,capability:capabilityOf(e,str((isRecord(n[r])?n[r]:{}).label)),input:e.input===void 0?void 0:e.input,owner:{runId:t}},type:`call.requested`}]})}startCall(e,t){if(this.view.calls[e]?.status!==`requested`)return[];let n=this.approvals.get(e);return[{data:{callId:e,clearedBy:n===void 0?void 0:{interactionId:n},taskId:t},type:`call.started`}]}actionResult(e){let t=isRecord(e.result)?e.result:{},n=str(t.callId),r=n===void 0?void 0:this.view.calls[n];if(n===void 0||r===void 0||r.status===`settled`||this.taskCalls.has(n))return[];let i=isRecord(e.error)?errorOf(e.error):void 0;if(e.status===`rejected`){let e=this.approvals.get(n);return[{data:{callId:n,cause:e===void 0?void 0:{interactionId:e},error:i,outcome:`rejected`,output:t.output===void 0?void 0:t.output},type:`call.settled`}]}let a=e.status===`failed`?`failed`:`completed`;return[...this.startCall(n),{data:{callId:n,error:a===`failed`&&i!==void 0?i:void 0,outcome:a,output:t.output===void 0?void 0:t.output},type:`call.settled`}]}taskStarted(e){let t=str(e.taskId),n=str(e.callId);if(t===void 0||n===void 0||this.view.calls[n]===void 0)return[];this.taskCalls.add(n);let r=[];return this.isIntroduced(`task`,t)||r.push({data:{kind:str(e.kind)??`tool`,name:str(e.name)??this.view.calls[n].capability.name,startedBy:{callId:n},taskId:t},type:`task.started`}),r.push(...this.startCall(n,t)),r}taskSettled(e){let t=str(e.callId),n=t===void 0?void 0:this.view.calls[t];if(t===void 0||n===void 0||n.status===`settled`)return[];let r=this.startCall(t,str(e.taskId)),i=e.status,a=i===`completed`?`completed`:i===`failed`?`failed`:`interrupted`,o=isRecord(e.cancel)?str(e.cancel.reason):void 0;return r.push({data:{callId:t,error:isRecord(e.error)&&typeof e.error.message==`string`?{code:`task_failed`,message:e.error.message}:void 0,outcome:a,output:e.output===void 0?void 0:e.output,reason:o===void 0?void 0:o.replaceAll(`_`,`-`)},type:`call.settled`}),r}agentStarted(e){let t=str(e.sessionId),n=str(e.callId);return t===void 0||n===void 0||this.view.calls[n]===void 0||this.isIntroduced(`child`,t)?[]:[{data:{name:str(e.name)??this.view.calls[n].capability.name,owner:{callId:n},sessionId:t,stream:str(e.streamPath)??`/eve/v1/session/${t}/stream`},type:`child.opened`}]}inputRequested(e){if(!Array.isArray(e.requests))return[];let t=str(e.callId);return e.requests.flatMap(n=>{if(!isRecord(n))return[];let r=str(n.requestId);if(r===void 0||this.isIntroduced(`interaction`,r))return[];let i=isRecord(n.action)?n.action:{},a=t??str(i.callId),o=str(e.turnId),s=a!==void 0&&this.view.calls[a]!==void 0?{callId:a}:o===void 0?void 0:{turnId:o};return s===void 0?[]:(a!==void 0&&n.kind===`tool-approval`&&this.interactionCalls.set(r,a),[{data:{interactionId:r,request:v26InteractionRequest(n),subject:s},type:`interaction.opened`}])})}turnWaiting(e){let t=str(e.turnId);if(e.on!==`input`||t===void 0)return[];let n=Object.values(this.view.interactions).filter(e=>e.status===`open`).map(e=>({interactionId:e.interactionId}));if(n.length===0||this.view.turns[t]?.status!==`running`)return[];let r=[{data:{awaiting:n,turnId:t},type:`turn.paused`}];for(let e of Object.values(this.view.deliveries))e.status===`consumed`&&e.turnId===t&&r.push({data:{deliveryId:e.deliveryId,outcome:`awaiting-input`,turnId:t},type:`delivery.settled`});return r}inputResolved(e,t,n){if(!Array.isArray(e.resolutions))return[];let r=str(e.turnId)??this.turnId,i=this.unadmitted(t,`${n}_answers`),a=[...this.admit(i)],o=!1;return e.resolutions.forEach((e,t)=>{if(!isRecord(e))return;let n=str(e.requestId);if(n===void 0||this.view.interactions[n]?.status!==`open`)return;let r=isRecord(e.response)?e.response:{},s={};typeof r.optionId==`string`&&(s.optionId=r.optionId),typeof r.text==`string`&&(s.text=r.text);let c=v26InteractionOutcome(e.outcome),l=`response_${i}_${String(t)}`;o=!0,a.push({data:{deliveryId:i,interactionId:n,responseId:l,value:s},type:`response.submitted`},{data:{responseId:l},type:`response.admitted`},{data:{outcome:`applied`,responseId:l},type:`response.settled`},{data:{cause:{responseId:l},interactionId:n,outcome:c,response:Object.keys(s).length===0?void 0:s},type:`interaction.settled`});let u=this.interactionCalls.get(n);u!==void 0&&this.approvals.set(u,n)}),o?(r!==void 0&&this.view.turns[r]?.status===`running`&&a.push({data:{deliveryId:i,parts:[],turnId:r},type:`delivery.consumed`}),a):[]}authorizationRequired(e,t){let n=str(e.attemptId)??t;if(this.isIntroduced(`interaction`,n))return[];let r=str(e.taskId),i=str(e.turnId),a=r!==void 0&&this.view.tasks[r]!==void 0?{taskId:r}:i===void 0?void 0:{turnId:i};if(a===void 0)return[];let o=v26SignInRequest(e),s=str(e.principalId);return[{data:{audience:s===void 0?void 0:{principalIds:[s]},interactionId:n,request:o,subject:a},type:`interaction.opened`}]}authorizationCompleted(e){let t=str(e.attemptId);return t===void 0||this.view.interactions[t]?.status!==`open`?[]:[{data:{interactionId:t,outcome:v26SignInOutcome(e.outcome),reason:str(e.reason)},type:`interaction.settled`}]}endTurn(e,t){if(e===void 0||this.view.turns[e]?.status!==`running`)return[];let n=t.outcome===`completed`?this.reply?.parts:void 0;return this.turnId=void 0,this.reply=void 0,[{data:{error:t.error===void 0?void 0:t.error,outcome:t.outcome,reply:n===void 0||n.length===0?void 0:n,turnId:e},type:`turn.settled`}]}compactionRequested(e,t){if(this.compaction!==void 0)return[];this.compaction=t;let n=str(e.turnId),r=n!==void 0&&this.view.turns[n]?.status===`running`,i=typeof e.usageInputTokens==`number`?e.usageInputTokens:void 0;return[{data:{changeId:t,kind:`compaction`,trigger:i===void 0?void 0:{inputTokens:i},turnId:r?n:void 0},type:`context.started`}]}compactionSettled(e){let t=this.compaction;return this.compaction=void 0,t===void 0||this.view.changes[t]?.status!==`running`?[]:[{data:{changeId:t,error:e===`failed`?{code:`COMPACTION_FAILED`,message:`The compaction did not complete.`}:void 0,kind:`compaction`,outcome:e},type:`context.settled`}]}};function sessionStarted(e){let t=isRecord(e.invocation)?e.invocation:void 0,n=str(t?.parentSessionId),r=str(t?.parentCallId),i=isRecord(e.predecessor)?str(e.predecessor.sessionId):void 0;return{parent:n!==void 0&&r!==void 0?{callId:r,sessionId:n}:void 0,predecessor:i===void 0?void 0:{sessionId:i},runtime:isRecord(e.runtime)&&typeof e.runtime.agentId==`string`?e.runtime:void 0,trace:isRecord(e.trace)?e.trace:void 0}}function sessionFailed(e,t){let n=errorOf(e),r=isRecord(e.details)?e.details:{};return n.code!==`session_stranded`||typeof r.trigger!=`string`?[{data:{error:n,outcome:`failed`},type:`session.ended`}]:r.trigger===`reset`?[{data:{deliveryId:t,source:{control:`reset`}},type:`delivery.admitted`},{data:{cause:{deliveryId:t},error:n,outcome:`failed`},type:`session.ended`}]:[{data:{cause:{policy:`stranded-${r.trigger}`},error:n,outcome:`failed`},type:`session.ended`}]}function capabilityOf(e,t){let n=t===void 0?{}:{label:t};switch(e.kind){case`subagent-call`:return{kind:`agent`,name:str(e.name)??str(e.subagentName)??`agent`,...n};case`remote-agent-call`:return{kind:`agent`,name:str(e.name)??str(e.remoteAgentName)??`agent`,remote:!0,...n};case`load-skill`:return{kind:`skill`,name:str(e.name)??`skill`,...n};default:{let t=str(e.toolName)??str(e.name)??`tool`;return{kind:t.startsWith(`eve__task_`)?`control`:`tool`,name:t,...n}}}}function userParts(e){return Array.isArray(e.parts)?e.parts.flatMap(e=>{if(!isRecord(e))return[];if(e.type===`text`&&typeof e.text==`string`)return[{kind:`text`,text:e.text}];if(e.type===`file`&&typeof e.mediaType==`string`){let t=str(e.url);return[{filename:str(e.filename),kind:`file`,mediaType:e.mediaType,size:typeof e.size==`number`?e.size:void 0,unavailable:t===void 0||void 0,url:t}]}return[]}):typeof e.message==`string`?[{kind:`text`,text:e.message}]:[]}function errorOf(e){return{code:str(e.code)??`unknown`,message:str(e.message)??`Unknown error.`,name:str(e.name)}}function str(e){return typeof e==`string`?e:void 0}function num(e){return typeof e==`number`&&Number.isFinite(e)?e:0}function json(e){return e===void 0?void 0:e}function isRecord(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}export{convertLegacyEvents,createV26HistoryReader,v26LineStream};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import TurndownService from"#compiled/turndown/index.js";function convertHtmlToMarkdown(e){let t=new TurndownService({bulletListMarker:`-`,codeBlockStyle:`fenced`,emDelimiter:`*`,headingStyle:`atx`,hr:`---`});return t.remove([`script`,`style`,`meta`,`link`]),t.turndown(e)}function extractTextFromHtml(e){let t=e;return t=t
|
|
2
|
-
`),t=t.replace(/<br\s*\/?>/gi,`
|
|
3
|
-
`),t=t.replace(/<[^>]+>/g,``),t=decodeHtmlEntities(t),t=t.split(`
|
|
1
|
+
import TurndownService from"#compiled/turndown/index.js";function convertHtmlToMarkdown(e){let t=new TurndownService({bulletListMarker:`-`,codeBlockStyle:`fenced`,emDelimiter:`*`,headingStyle:`atx`,hr:`---`});return t.remove([`script`,`style`,`meta`,`link`]),t.turndown(e)}function extractTextFromHtml(e){let t=stripTags(e);return t=decodeHtmlEntities(t),t=t.split(`
|
|
4
2
|
`).map(e=>e.replace(/[ \t]+/g,` `).trim()).join(`
|
|
5
3
|
`).replace(/\n{3,}/g,`
|
|
6
4
|
|
|
7
|
-
`).trim(),t}const
|
|
5
|
+
`).trim(),t}const RAW_TEXT_CLOSE_TAGS=new Map([[`noscript`,/<\/noscript(?=[\s/>])/gi],[`script`,/<\/script(?=[\s/>])/gi],[`style`,/<\/style(?=[\s/>])/gi]]),BLOCK_ELEMENTS=new Set([`article`,`aside`,`blockquote`,`details`,`div`,`figcaption`,`figure`,`footer`,`h1`,`h2`,`h3`,`h4`,`h5`,`h6`,`header`,`li`,`main`,`nav`,`p`,`pre`,`section`,`summary`,`tr`]),TAG_NAME_PATTERN=/^(\/?)([^\s/>]+)/;function stripTags(e){let t=[],n=0;for(;n<e.length;){let r=e.indexOf(`<`,n);if(r===-1)break;if(e.startsWith(`<!--`,r)){t.push(e.slice(n,r));let i=e.indexOf(`-->`,r+4);n=i===-1?e.length:i+3;continue}let i=e.indexOf(`>`,r+1);if(i===-1)break;t.push(e.slice(n,r)),n=i+1;let a=TAG_NAME_PATTERN.exec(e.slice(r+1,i));if(!a)continue;let o=a[1]===`/`,s=a[2].toLowerCase();if(s===`br`||o&&BLOCK_ELEMENTS.has(s)){t.push(`
|
|
6
|
+
`);continue}let c=o?void 0:RAW_TEXT_CLOSE_TAGS.get(s);if(c){c.lastIndex=n;let t=c.exec(e)?e.indexOf(`>`,c.lastIndex):-1;n=t===-1?e.length:t+1}}return t.push(e.slice(n)),t.join(``)}const ENTITY_MAP={"&":`&`,">":`>`,"<":`<`," ":` `,""":`"`,"'":`'`,"'":`'`,"/":`/`},ENTITY_PATTERN=new RegExp(Object.keys(ENTITY_MAP).join(`|`),`gi`);function decodeHtmlEntities(e){return e.replace(ENTITY_PATTERN,e=>ENTITY_MAP[e.toLowerCase()]??e)}export{convertHtmlToMarkdown,extractTextFromHtml};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{assertPublicHostname,cancelResponseBody,createPublicDispatcher,fetchWithDispatcher,readBoundedResponse}from"#execution/public-destination.js";const REDIRECT_STATUSES=new Set([301,302,303,307,308]),WEB_FETCH_DESTINATION_POLICY={allowLoopback:!1};async function requestPublicUrl(e,t){let n=parseHttpsUrl(e);for(let e=0;;e++){let{dispatcher:r,response:i}=await requestOnce(n,t);try{let r=i.headers.get(`location`);if(r!==null&&REDIRECT_STATUSES.has(i.status)&&e<10){await cancelResponseBody(i),n=parseHttpsUrl(new URL(r,n).toString());continue}return await readBoundedResponse(i,t.maxResponseSize)}finally{await r.close()}}}function parseHttpsUrl(e){let t;try{t=new URL(e)}catch{throw Error(`URL must be a valid absolute https:// URL.`)}if(t.protocol!==`https:`)throw Error(`URL must start with https://`);return t}async function requestOnce(e,t){assertPublicHostname(e.hostname,WEB_FETCH_DESTINATION_POLICY);let n=await createPublicDispatcher(WEB_FETCH_DESTINATION_POLICY);try{return{dispatcher:n,response:await fetchWithDispatcher(e,{dispatcher:n,headers:t.headers,redirect:`manual`,signal:t.signal})}}catch(e){throw await n.close(),e}}export{requestPublicUrl};
|
|
@@ -7,6 +7,11 @@
|
|
|
7
7
|
* serialization the workflow devkit performs on step inputs.
|
|
8
8
|
*/
|
|
9
9
|
export declare function normalizeSerializableError(error: unknown): unknown;
|
|
10
|
+
/**
|
|
11
|
+
* What a step that failed every attempt threw. The workflow reports exhaustion as a
|
|
12
|
+
* `FatalError` naming the step and its retries, with the last attempt's error as its cause.
|
|
13
|
+
*/
|
|
14
|
+
export declare function exhaustedStepError(error: unknown): unknown;
|
|
10
15
|
/**
|
|
11
16
|
* Rebuilds an {@link Error} from the normalized hook payload sent by a
|
|
12
17
|
* child workflow.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function normalizeSerializableError(e){return e instanceof Error?{...Object.fromEntries(Object.entries(e)),cause:e.cause===void 0?void 0:normalizeSerializableError(e.cause),message:e.message,name:e.name,stack:e.stack}:e}function rebuildSerializableError(e){if(!isRecord(e))return Error(String(e));let t=typeof e.message==`string`?e.message:String(e),n=Error(t);typeof e.name==`string`&&(n.name=e.name),typeof e.stack==`string`&&(n.stack=e.stack),`cause`in e&&(n.cause=isRecord(e.cause)?rebuildSerializableError(e.cause):e.cause);let r=n;for(let[t,n]of Object.entries(e))t!==`message`&&t!==`name`&&t!==`stack`&&t!==`cause`&&(r[t]=n);return n}function isRecord(e){return typeof e==`object`&&!!e}export{normalizeSerializableError,rebuildSerializableError};
|
|
1
|
+
function normalizeSerializableError(e){return e instanceof Error?{...Object.fromEntries(Object.entries(e)),cause:e.cause===void 0?void 0:normalizeSerializableError(e.cause),message:e.message,name:e.name,stack:e.stack}:e}function exhaustedStepError(e){return isRecord(e)&&e.name===`FatalError`&&typeof e.message==`string`&&/^Step ".+" (?:failed after \d+ retr(?:y|ies):|exceeded max retries \(\d+ retr(?:y|ies)\))/.test(e.message)&&e.cause!==void 0?e.cause:e}function rebuildSerializableError(e){if(!isRecord(e))return Error(String(e));let t=typeof e.message==`string`?e.message:String(e),n=Error(t);typeof e.name==`string`&&(n.name=e.name),typeof e.stack==`string`&&(n.stack=e.stack),`cause`in e&&(n.cause=isRecord(e.cause)?rebuildSerializableError(e.cause):e.cause);let r=n;for(let[t,n]of Object.entries(e))t!==`message`&&t!==`name`&&t!==`stack`&&t!==`cause`&&(r[t]=n);return n}function isRecord(e){return typeof e==`object`&&!!e}export{exhaustedStepError,normalizeSerializableError,rebuildSerializableError};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createLogger,logError}from"#internal/logging.js";import{validateDeliveryIdempotencyKey}from"#channel/delivery-idempotency.js";import{SessionStrandedError,describeStrandedSession}from"#channel/session-stranded-error.js";import{sessionCommandHookToken,sessionInboxHookToken}from"#execution/session-inbox/address.js";import{SessionPredecessorKey}from"#context/keys.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{walkCauseChain}from"#shared/errors.js";import{validateToolStubTargets}from"#tool-stubs/validate-targets.js";import{getHookByToken,getRun,getWorld,start}from"#internal/workflow/runtime.js";import{getCompiledRuntimeAgentBundle}from"#runtime/sessions/compiled-agent-cache.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{serializeContext}from"#context/serialize.js";import{AcceptedSessionIdentityError,SessionHandoffPendingError,logicalSessionToken,resolveSessionInbox,resumeSessionInbox}from"#execution/session-inbox/resume.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{context,trace}from"#compiled/@opentelemetry/api/index.js";import{EntityConflictError,HookNotFoundError,RunExpiredError,WorkflowRunNotFoundError}from"#compiled/@workflow/errors/index.js";import{StrandedSessionOwnerError,assertRunnableSessionInbox,findSessionHookHolder}from"#execution/session-inbox/owner.js";import{initializeSessionInstrumentation}from"#instrumentation/runtime.js";import{EVE_PREWARM_ATTRIBUTE,EVE_VERSION_ATTRIBUTE,buildSessionAttributes,buildSubagentRootAttributes,readParentLineage}from"#execution/eve-workflow-attributes.js";import{endStrandedSession}from"#execution/session-inbox/end-stranded-session.js";import{SESSION_HOOK_HANDOVER_TIMEOUT_MS,waitForSessionHooksRelease}from"#execution/session-inbox/hook-release.js";import{CONNECTION_EVENT_DELIVERY_WORKFLOW_NAME,CONNECTION_EVENT_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME,WORKFLOW_ENTRY_NAME,WORKFLOW_TOOL_RUN_WORKFLOW_NAME}from"#execution/stable-workflow-names.js";import{prewarmWorkflowSession}from"#execution/session-prewarm.js";import{normalizeEveAttributes}from"#runtime/attributes/normalize.js";import{buildRunContext}from"#execution/runtime-context.js";import{assertSessionHistoryReadable,readSessionEventHistory,readSessionEventStream,readSessionStreamTailIndex}from"#execution/session-event-stream.js";import{buildInvocationAttributes}from"#internal/invocation/metadata.js";import{isAgentTraceContext}from"#tracing/eve/agent-trace-context.js";const EVE_PACKAGE_INFO=resolveInstalledPackageInfo(),STABLE_ID_BASE=EVE_PACKAGE_INFO.name,log=createLogger(`execution.workflow-runtime`),workflowEntryReference={workflowId:`workflow//${STABLE_ID_BASE}//${WORKFLOW_ENTRY_NAME}`},sessionTimeoutWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${SESSION_TIMEOUT_WORKFLOW_NAME}`},workflowToolRunWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${WORKFLOW_TOOL_RUN_WORKFLOW_NAME}`},connectionEventWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${CONNECTION_EVENT_WORKFLOW_NAME}`},connectionEventDeliveryWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${CONNECTION_EVENT_DELIVERY_WORKFLOW_NAME}`};function createWorkflowRuntime(e){let startSession=async(t,n)=>{validateDeliveryIdempotencyKey(t.idempotencyKey);let r=await getCompiledRuntimeAgentBundle({compiledArtifactsSource:e.compiledArtifactsSource,nodeId:e.nodeId});t.toolStubs!==void 0&&t.toolStubs.rootSessionId===void 0&&validateToolStubTargets(t.toolStubs.rules,r.graph);let i=buildRunContext({agentSessionRuntimeOverrides:e.agentSessionRuntimeOverrides,bundle:r,dynamicSubagentAgentConfig:e.dynamicSubagentAgentConfig,run:t});n!==void 0&&i.set(SessionPredecessorKey,n);let a=resolveEffectiveAgentRuntime(r,i),o=initializeSessionInstrumentation({agentName:a.turnAgent.id,ctx:i}),s=a.limits?.sessionTimeoutMs,c=r.resolvedAgent.config?.experimental?.workflow?.retention??(o.action===`record`&&o.recordInputs&&o.recordOutputs?void 0:0),l=serializeContext(i),u=readParentLineage(l),d={idempotencyKey:t.idempotencyKey,kind:`initial`,input:t.input,ownerDeploymentId:await resolveCurrentWorkflowDeploymentId(),serializedContext:l};t.continuationConflictCommand!==void 0&&(d.continuationConflictCommand=t.continuationConflictCommand),s!==void 0&&(d.sessionTimeoutMs=s),c!==void 0&&(d.retention=c);let f={...u.sessionId===void 0?buildSessionAttributes({serializedContext:l}):buildSubagentRootAttributes({identity:{nodeId:r.nodeId??ROOT_RUNTIME_AGENT_NODE_ID},parentCallId:u.callId,parentSessionId:u.sessionId,parentTurnId:u.turnId,rootSessionId:u.rootSessionId??u.sessionId,serializedContext:l}),[EVE_PREWARM_ATTRIBUTE]:`1`,...t.externalInvocation===void 0?{}:buildInvocationAttributes(t.externalInvocation)},p;try{let e={allowReservedAttributes:!0,attributes:normalizeEveAttributes(f)};c!==void 0&&(e.experimental_retention=c),p=await startWorkflowOnDeployment(workflowEntryReference,[d],d.ownerDeploymentId,e)}catch(e){throw logError(log,`failed to start workflow run`,e,{continuationToken:t.continuationToken}),e}let m=p.runId;if(t.idempotencyKey!==void 0&&t.continuationToken!==void 0){let e=await pollUntil(()=>resolveContinuation(t.continuationToken),SESSION_HOOK_HANDOVER_TIMEOUT_MS);if(e===void 0)throw Error(`Delivery accepted, but its session identity is not ready. Retry with the same idempotencyKey.`);m=e.sessionId}let h,getEvents=()=>(h??=readSessionEventStream(m),h);return{get events(){return getEvents()},sessionId:m}};return{async createSession(e){return await startSession(e)},async dispatchContinuation(e){let{command:t,continuationToken:n,successor:r}=e;try{return await dispatchWorkflowCommand(n,t)}catch(e){if(!(e instanceof StrandedSessionOwnerError))throw e;if(t.kind!==`send`||r===void 0)return await settleStrandedCommand(n,t,e);if((t.payload.inputResponses?.length??0)>0)throw sessionStrandedError(e,`Its pending requests can no longer be answered; send a new message to start a fresh session.`);let i=await endStrandedSession(e,n,`message`);return{sessionId:(await startSession(r,{sessionId:i})).sessionId,status:`accepted`}}},async dispatchSession(e){return await dispatchWorkflowSessionCommand(e)},async getEventStream(e,t){if(t?.follow===!1)return readSessionEventHistory(e,t.startIndex);try{await Promise.all([assertRunnableSessionInbox(sessionInboxHookToken(sessionCommandHookToken(e))),assertSessionHistoryReadable(e)])}catch(e){throw e instanceof StrandedSessionOwnerError?sessionStrandedError(e):e}return readSessionEventStream(e,t?.startIndex)},async getStreamTailIndex(e){return await readSessionStreamTailIndex(e)},resolveContinuation}}async function dispatchWorkflowCommand(e,t){if(t.kind===`prewarm`)return typeof e==`string`?{status:`unsupported`}:await prewarmWorkflowSession(e.sessionId,t.targetDeploymentId);let n;try{let r=await resumeSessionInbox(e,t);n={runId:r.ownerRunId,sessionId:await r.sessionId}}catch(n){if(n instanceof StrandedSessionOwnerError)throw n;let r=t.kind===`send`&&typeof e!=`string`,i={status:`session_not_active`,retryable:!0};if(n instanceof SessionHandoffPendingError){if(r)return i;throw n}if(isInactiveCommandTarget(n))return r&&await isRunActive(e.sessionId)?i:inactiveCommandResult(t);throw logError(log,`failed to dispatch session command`,n,{command:t.kind,token:e}),n}return t.kind===`reset`&&await waitForSessionHooksRelease([sessionCommandHookToken(n.sessionId),logicalSessionToken(e)],{ownerRunId:n.runId,sessionId:n.sessionId}),activeCommandResult(t,n.sessionId)}async function settleStrandedCommand(e,t,n){switch(t.kind){case`reset`:return{previousSessionId:await endStrandedSession(n,e,`reset`),status:`reset`};case`send`:case`clear`:throw sessionStrandedError(n);default:return inactiveCommandResult(t)}}function sessionStrandedError(e,t){let n=e.eveVersion===void 0?{}:{eveVersion:e.eveVersion};return new SessionStrandedError(n,describeStrandedSession(n,t))}function activeCommandResult(e,t){return e.kind===`reset`?{previousSessionId:t,status:`reset`}:e.kind===`send`&&e.delivery!==void 0?{sessionId:t,status:`accepted`,deliveryId:e.delivery.deliveryId}:{sessionId:t,status:`accepted`}}function inactiveCommandResult(e){return e.kind===`send`?{status:`session_not_active`}:e.kind===`cancel`?{status:`no_active_turn`}:{status:`no_active_session`}}async function dispatchWorkflowSessionCommand(e){let t={sessionId:e.sessionId};try{return await dispatchWorkflowCommand(t,e.command)}catch(n){if(!(n instanceof StrandedSessionOwnerError))throw n;return await settleStrandedCommand(t,e.command,n)}}async function isRunActive(e){try{let t=await getRun(e).status;return t===`pending`||t===`running`}catch(e){if(isInactiveCommandTarget(e))return!1;throw e}}function isInactiveCommandTarget(e){if(e instanceof AcceptedSessionIdentityError)return!1;if(HookNotFoundError.is(e))return!0;for(let t of walkCauseChain(e))if(WorkflowRunNotFoundError.is(t)||RunExpiredError.is(t)||EntityConflictError.is(t))return!0;return!1}async function resolveContinuation(e,t){let n;try{n=await resolveSessionInbox(e)}catch(t){if(HookNotFoundError.is(t))return;throw logError(log,`failed to resolve session by continuation token`,t,{continuationToken:e}),t}if(t?.runnable!==!0)return n;try{await assertRunnableSessionInbox(sessionInboxHookToken(sessionCommandHookToken(n.sessionId)))}catch(e){throw e instanceof StrandedSessionOwnerError?sessionStrandedError(e):e}return n}async function waitForCommandHookOwner(e){let t=await pollUntil(async()=>{try{return normalizeWorkflowHook(await getHookByToken(e))}catch(e){if(!HookNotFoundError.is(e))throw e;return}},SESSION_HOOK_HANDOVER_TIMEOUT_MS);if(t===void 0)throw new HookNotFoundError(e);return t}async function waitForSessionInbox(e){let t=sessionInboxHookToken(sessionCommandHookToken(e)),n=await pollUntil(async()=>await findSessionHookHolder(t)!==void 0||!await hasRunEnded(e)&&void 0,SESSION_HOOK_HANDOVER_TIMEOUT_MS);if(n===void 0)throw Error(`Session "${e}" did not start taking commands within ${SESSION_HOOK_HANDOVER_TIMEOUT_MS/1e3} seconds.`);return n}async function pollUntil(e,t){let n=Date.now()+t;for(let t=20;;t=Math.min(t*2,200)){let r=await e();if(r!==void 0||Date.now()>=n)return r;await new Promise(e=>setTimeout(e,t))}}async function hasRunEnded(e){try{let t=await getRun(e).status;return t!==`pending`&&t!==`running`}catch(e){for(let t of walkCauseChain(e))if(WorkflowRunNotFoundError.is(t))return!1;if(isInactiveCommandTarget(e))return!0;throw e}}async function startWorkflowOnCurrentDeployment(e,t,n){return await startWorkflowOnDeployment(e,t,await resolveCurrentWorkflowDeploymentId(),n)}async function startWorkflowOnDeployment(e,t,n,r){return await withWorkflowStartContext(async()=>{if(n.length===0||n===`latest`)throw Error(`Workflow starts require an exact deployment id.`);return await start(e,t,{...r,allowReservedAttributes:!0,attributes:{...r?.attributes,[EVE_VERSION_ATTRIBUTE]:EVE_PACKAGE_INFO.version},deploymentId:n})})}async function resolveCurrentWorkflowDeploymentId(){let e=process.env.VERCEL_DEPLOYMENT_ID?.trim()||await(await getWorld()).getDeploymentId();if(e.length===0||e===`latest`)throw Error(`Workflow runtime could not resolve an exact deployment id.`);return e}async function withWorkflowStartContext(e){let t=context.active(),n=isAgentTraceContext(t)?trace.deleteSpan(t):t;return await context.with(n,e)}function normalizeWorkflowHook(e){if(typeof e!=`object`||!e||!(`runId`in e))throw Error(`Workflow hook did not include a run id.`);let t=e.runId;if(typeof t!=`string`||t.length===0)throw Error(`Workflow hook did not include a run id.`);return{runId:t}}export{connectionEventDeliveryWorkflowReference,connectionEventWorkflowReference,createWorkflowRuntime,dispatchWorkflowSessionCommand,hasRunEnded,pollUntil,resolveContinuation,sessionTimeoutWorkflowReference,startWorkflowOnCurrentDeployment,startWorkflowOnDeployment,waitForCommandHookOwner,waitForSessionInbox,workflowEntryReference,workflowToolRunWorkflowReference};
|
|
1
|
+
import{createLogger,logError}from"#internal/logging.js";import{validateDeliveryIdempotencyKey}from"#channel/delivery-idempotency.js";import{createChannelDeliveryMetadata}from"#channel/delivery-metadata.js";import{SessionStrandedError,describeStrandedSession}from"#channel/session-stranded-error.js";import{sessionCommandHookToken,sessionInboxHookToken}from"#execution/session-inbox/address.js";import{SessionPredecessorKey}from"#context/keys.js";import{resolveInstalledPackageInfo}from"#internal/application/package.js";import{walkCauseChain}from"#shared/errors.js";import{validateToolStubTargets}from"#tool-stubs/validate-targets.js";import{getHookByToken,getRun,getWorld,start}from"#internal/workflow/runtime.js";import{assertSessionHistoryReadable,readSessionEventHistory,readSessionEventStream,readSessionRecordHistory,readSessionRecords,readSessionStreamTailIndex}from"#execution/session-event-stream.js";import{getCompiledRuntimeAgentBundle}from"#runtime/sessions/compiled-agent-cache.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{serializeContext}from"#context/serialize.js";import{AcceptedSessionIdentityError,SessionHandoffPendingError,logicalSessionToken,resolveSessionInbox,resumeSessionInbox}from"#execution/session-inbox/resume.js";import{resolveEffectiveAgentRuntime}from"#execution/effective-agent-config.js";import{context,trace}from"#compiled/@opentelemetry/api/index.js";import{EntityConflictError,HookNotFoundError,RunExpiredError,WorkflowRunNotFoundError}from"#compiled/@workflow/errors/index.js";import{StrandedSessionOwnerError,assertRunnableSessionInbox,assertRunnableSessionOwner,findSessionHookHolder}from"#execution/session-inbox/owner.js";import{initializeSessionInstrumentation}from"#instrumentation/runtime.js";import{EVE_PREWARM_ATTRIBUTE,EVE_VERSION_ATTRIBUTE,buildSessionAttributes,buildSubagentRootAttributes,readParentLineage}from"#execution/eve-workflow-attributes.js";import{endStrandedSession}from"#execution/session-inbox/end-stranded-session.js";import{SESSION_HOOK_HANDOVER_TIMEOUT_MS,waitForSessionHooksRelease}from"#execution/session-inbox/hook-release.js";import{CONNECTION_EVENT_DELIVERY_WORKFLOW_NAME,CONNECTION_EVENT_WORKFLOW_NAME,SESSION_TIMEOUT_WORKFLOW_NAME,WORKFLOW_ENTRY_NAME,WORKFLOW_TOOL_RUN_WORKFLOW_NAME}from"#execution/stable-workflow-names.js";import{readRemoteChildBinding}from"#execution/child-binding.js";import{prewarmWorkflowSession}from"#execution/session-prewarm.js";import{normalizeEveAttributes}from"#runtime/attributes/normalize.js";import{buildRunContext}from"#execution/runtime-context.js";import{buildInvocationAttributes}from"#internal/invocation/metadata.js";import{isAgentTraceContext}from"#tracing/eve/agent-trace-context.js";const EVE_PACKAGE_INFO=resolveInstalledPackageInfo(),STABLE_ID_BASE=EVE_PACKAGE_INFO.name,log=createLogger(`execution.workflow-runtime`),workflowEntryReference={workflowId:`workflow//${STABLE_ID_BASE}//${WORKFLOW_ENTRY_NAME}`},sessionTimeoutWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${SESSION_TIMEOUT_WORKFLOW_NAME}`},workflowToolRunWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${WORKFLOW_TOOL_RUN_WORKFLOW_NAME}`},connectionEventWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${CONNECTION_EVENT_WORKFLOW_NAME}`},connectionEventDeliveryWorkflowReference={workflowId:`workflow//${STABLE_ID_BASE}//${CONNECTION_EVENT_DELIVERY_WORKFLOW_NAME}`};function createWorkflowRuntime(e){let startSession=async(t,n)=>{validateDeliveryIdempotencyKey(t.idempotencyKey),t.input.message!==void 0&&t.delivery===void 0&&(t={...t,delivery:createChannelDeliveryMetadata({channelKind:t.adapter.kind,channelName:t.channelName??t.adapter.kind,requestId:t.requestId})});let r=t.continuationConflictCommand;r!==void 0&&r.delivery===void 0&&(t={...t,continuationConflictCommand:{...r,delivery:t.delivery}});let i=await getCompiledRuntimeAgentBundle({compiledArtifactsSource:e.compiledArtifactsSource,nodeId:e.nodeId});t.toolStubs!==void 0&&t.toolStubs.rootSessionId===void 0&&validateToolStubTargets(t.toolStubs.rules,i.graph);let a=buildRunContext({agentSessionRuntimeOverrides:e.agentSessionRuntimeOverrides,bundle:i,dynamicSubagentAgentConfig:e.dynamicSubagentAgentConfig,run:t});n!==void 0&&a.set(SessionPredecessorKey,n);let o=resolveEffectiveAgentRuntime(i,a),s=initializeSessionInstrumentation({agentName:o.turnAgent.id,ctx:a}),c=o.limits?.sessionTimeoutMs,l=i.resolvedAgent.config?.experimental?.workflow?.retention??(s.action===`record`&&s.recordInputs&&s.recordOutputs?void 0:0),u=serializeContext(a),d=readParentLineage(u),f={idempotencyKey:t.idempotencyKey,kind:`initial`,input:t.input,ownerDeploymentId:await resolveCurrentWorkflowDeploymentId(),serializedContext:u};t.continuationConflictCommand!==void 0&&(f.continuationConflictCommand=t.continuationConflictCommand),c!==void 0&&(f.sessionTimeoutMs=c),l!==void 0&&(f.retention=l);let p={...d.sessionId===void 0?buildSessionAttributes({serializedContext:u}):buildSubagentRootAttributes({identity:{nodeId:i.nodeId??ROOT_RUNTIME_AGENT_NODE_ID},parentCallId:d.callId,parentSessionId:d.sessionId,parentTurnId:d.turnId,rootSessionId:d.rootSessionId??d.sessionId,serializedContext:u}),[EVE_PREWARM_ATTRIBUTE]:`1`,...t.externalInvocation===void 0?{}:buildInvocationAttributes(t.externalInvocation)},m;try{let e={allowReservedAttributes:!0,attributes:normalizeEveAttributes(p)};l!==void 0&&(e.experimental_retention=l),m=await startWorkflowOnDeployment(workflowEntryReference,[f],f.ownerDeploymentId,e)}catch(e){throw logError(log,`failed to start workflow run`,e,{continuationToken:t.continuationToken}),e}let h=m.runId;if(t.idempotencyKey!==void 0&&t.continuationToken!==void 0){let e=await pollUntil(()=>resolveContinuation(t.continuationToken),SESSION_HOOK_HANDOVER_TIMEOUT_MS);if(e===void 0)throw Error(`Delivery accepted, but its session identity is not ready. Retry with the same idempotencyKey.`);h=e.sessionId}let g,getEvents=()=>(g??=readSessionEventStream(h),g);return{get events(){return getEvents()},sessionId:h,...t.delivery!==void 0&&{deliveryId:t.delivery.deliveryId}}};return{async createSession(e){return await startSession(e)},async dispatchContinuation(e){let{continuationToken:t,successor:n}=e,r=identifyCommand(e.command);try{return await dispatchWorkflowCommand(t,r)}catch(e){if(!(e instanceof StrandedSessionOwnerError))throw e;if(r.kind!==`send`||n===void 0)return await settleStrandedCommand(t,r,e);if((r.payload.answers?.length??0)>0)throw sessionStrandedError(e,`Its pending requests can no longer be answered; send a new message to start a fresh session.`);let i=await endStrandedSession(e,t,`message`);return{sessionId:(await startSession({...n,delivery:r.delivery},{sessionId:i})).sessionId,deliveryId:r.delivery?.deliveryId,status:`accepted`}}},async dispatchSession(e){return await dispatchWorkflowSessionCommand(e)},async getEventStream(e,t){return t?.follow===!1?readSessionEventHistory(e,t.startIndex,t.signal):(await assertFollowableSession(e),readSessionEventStream(e,t?.startIndex,t?.signal))},async getLineStream(e,t){return t?.follow===!1?readSessionRecordHistory(e,t.startIndex):(await assertFollowableSession(e),readSessionRecords(e,t?.startIndex))},async getStreamTailIndex(e){return await readSessionStreamTailIndex(e)},async readChildBinding(e,t){return await readRemoteChildBinding(e,t)},async hasRunnableOwner(e){let t=sessionInboxHookToken(sessionCommandHookToken(e)),n=await findSessionHookHolder(t);if(n===void 0)return!1;try{return await assertRunnableSessionOwner(n),!0}catch(e){if(e instanceof StrandedSessionOwnerError)return!1;throw e}},resolveContinuation}}async function dispatchWorkflowCommand(e,t){if(t.kind===`prewarm`)return typeof e==`string`?{status:`unsupported`}:await prewarmWorkflowSession(e.sessionId,t.targetDeploymentId);let n;try{let r=await resumeSessionInbox(e,t);n={runId:r.ownerRunId,sessionId:await r.sessionId}}catch(n){if(n instanceof StrandedSessionOwnerError)throw n;let r=t.kind===`send`&&typeof e!=`string`,i={status:`session_not_active`,retryable:!0};if(n instanceof SessionHandoffPendingError){if(r)return i;throw n}if(isInactiveCommandTarget(n))return r&&await isRunActive(e.sessionId)?i:inactiveCommandResult(t);throw logError(log,`failed to dispatch session command`,n,{command:t.kind,token:e}),n}return t.kind===`reset`&&await waitForSessionHooksRelease([sessionCommandHookToken(n.sessionId),logicalSessionToken(e)],{ownerRunId:n.runId,sessionId:n.sessionId}),activeCommandResult(t,n.sessionId)}async function settleStrandedCommand(e,t,n){switch(t.kind){case`reset`:return{previousSessionId:await endStrandedSession(n,e,`reset`,t),status:`reset`};case`send`:case`clear`:throw sessionStrandedError(n);default:return inactiveCommandResult(t)}}async function assertFollowableSession(e){try{await Promise.all([assertRunnableSessionInbox(sessionInboxHookToken(sessionCommandHookToken(e))),assertSessionHistoryReadable(e)])}catch(e){throw e instanceof StrandedSessionOwnerError?sessionStrandedError(e):e}}function sessionStrandedError(e,t){let n=e.eveVersion===void 0?{}:{eveVersion:e.eveVersion};return new SessionStrandedError(n,describeStrandedSession(n,t))}function activeCommandResult(e,t){return e.kind===`reset`?{previousSessionId:t,status:`reset`}:e.kind===`send`&&e.delivery!==void 0?{sessionId:t,status:`accepted`,deliveryId:e.delivery.deliveryId}:{sessionId:t,status:`accepted`}}function inactiveCommandResult(e){return e.kind===`send`?{status:`session_not_active`}:e.kind===`cancel`?{status:`no_active_turn`}:{status:`no_active_session`}}async function dispatchWorkflowSessionCommand(e){let t={sessionId:e.sessionId},n=identifyCommand(e.command);try{return await dispatchWorkflowCommand(t,n)}catch(e){if(!(e instanceof StrandedSessionOwnerError))throw e;return await settleStrandedCommand(t,n,e)}}async function isRunActive(e){try{let t=await getRun(e).status;return t===`pending`||t===`running`}catch(e){if(isInactiveCommandTarget(e))return!1;throw e}}function isInactiveCommandTarget(e){if(e instanceof AcceptedSessionIdentityError)return!1;if(HookNotFoundError.is(e))return!0;for(let t of walkCauseChain(e))if(WorkflowRunNotFoundError.is(t)||RunExpiredError.is(t)||EntityConflictError.is(t))return!0;return!1}async function resolveContinuation(e,t){let n;try{n=await resolveSessionInbox(e)}catch(t){if(HookNotFoundError.is(t))return;throw logError(log,`failed to resolve session by continuation token`,t,{continuationToken:e}),t}if(t?.runnable!==!0)return n;try{await assertRunnableSessionInbox(sessionInboxHookToken(sessionCommandHookToken(n.sessionId)))}catch(e){throw e instanceof StrandedSessionOwnerError?sessionStrandedError(e):e}return n}async function waitForCommandHookOwner(e){let t=await pollUntil(async()=>{try{return normalizeWorkflowHook(await getHookByToken(e))}catch(e){if(!HookNotFoundError.is(e))throw e;return}},SESSION_HOOK_HANDOVER_TIMEOUT_MS);if(t===void 0)throw new HookNotFoundError(e);return t}async function waitForSessionInbox(e){let t=sessionInboxHookToken(sessionCommandHookToken(e)),n=await pollUntil(async()=>await findSessionHookHolder(t)!==void 0||!await hasRunEnded(e)&&void 0,SESSION_HOOK_HANDOVER_TIMEOUT_MS);if(n===void 0)throw Error(`Session "${e}" did not start taking commands within ${SESSION_HOOK_HANDOVER_TIMEOUT_MS/1e3} seconds.`);return n}async function pollUntil(e,t){let n=Date.now()+t;for(let t=20;;t=Math.min(t*2,200)){let r=await e();if(r!==void 0||Date.now()>=n)return r;await new Promise(e=>setTimeout(e,t))}}async function hasRunEnded(e){try{let t=await getRun(e).status;return t!==`pending`&&t!==`running`}catch(e){for(let t of walkCauseChain(e))if(WorkflowRunNotFoundError.is(t))return!1;if(isInactiveCommandTarget(e))return!0;throw e}}async function startWorkflowOnCurrentDeployment(e,t,n){return await startWorkflowOnDeployment(e,t,await resolveCurrentWorkflowDeploymentId(),n)}async function startWorkflowOnDeployment(e,t,n,r){return await withWorkflowStartContext(async()=>{if(n.length===0||n===`latest`)throw Error(`Workflow starts require an exact deployment id.`);return await start(e,t,{...r,allowReservedAttributes:!0,attributes:{...r?.attributes,[EVE_VERSION_ATTRIBUTE]:EVE_PACKAGE_INFO.version},deploymentId:n})})}async function resolveCurrentWorkflowDeploymentId(){let e=process.env.VERCEL_DEPLOYMENT_ID?.trim()||await(await getWorld()).getDeploymentId();if(e.length===0||e===`latest`)throw Error(`Workflow runtime could not resolve an exact deployment id.`);return e}async function withWorkflowStartContext(e){let t=context.active(),n=isAgentTraceContext(t)?trace.deleteSpan(t):t;return await context.with(n,e)}function normalizeWorkflowHook(e){if(typeof e!=`object`||!e||!(`runId`in e))throw Error(`Workflow hook did not include a run id.`);let t=e.runId;if(typeof t!=`string`||t.length===0)throw Error(`Workflow hook did not include a run id.`);return{runId:t}}function identifyCommand(e){if(e.kind!==`send`||e.delivery!==void 0)return e;let t=e.caller===void 0?e.schedule===void 0?`http`:`schedule`:`subagent`;return{...e,delivery:createChannelDeliveryMetadata({channelKind:t,channelName:t,requestId:e.requestId})}}export{connectionEventDeliveryWorkflowReference,connectionEventWorkflowReference,createWorkflowRuntime,dispatchWorkflowSessionCommand,hasRunEnded,pollUntil,resolveContinuation,sessionTimeoutWorkflowReference,startWorkflowOnCurrentDeployment,startWorkflowOnDeployment,waitForCommandHookOwner,waitForSessionInbox,workflowEntryReference,workflowToolRunWorkflowReference};
|
|
@@ -1,17 +1,7 @@
|
|
|
1
1
|
import type { SandboxSession } from "eve/sandbox";
|
|
2
2
|
import { z } from "zod";
|
|
3
|
-
import type { GitHubConfig } from "eve/extensions/git/sandbox";
|
|
4
3
|
export type CredentialPolicyBroker = (sandbox: SandboxSession, rules: Record<string, Record<string, string>>) => Promise<void>;
|
|
5
|
-
export type { GitHubLeaseRule } from "eve/extensions/git/sandbox";
|
|
6
|
-
export type GitHubLeaseBroker = GitHubConfig["broker"];
|
|
7
|
-
export type GitHubAttribution = NonNullable<GitHubConfig["attribution"]>;
|
|
8
4
|
declare const _default: import("eve/extension").ExtensionHandle<z.ZodObject<{
|
|
9
|
-
github: z.ZodOptional<z.ZodObject<{
|
|
10
|
-
connector: z.ZodString;
|
|
11
|
-
org: z.ZodString;
|
|
12
|
-
broker: z.ZodCustom<(sandbox: SandboxSession, rules: Readonly<Record<string, readonly import("eve/extensions/git/sandbox").GitHubLeaseRule[]>> | null) => Promise<void>, (sandbox: SandboxSession, rules: Readonly<Record<string, readonly import("eve/extensions/git/sandbox").GitHubLeaseRule[]>> | null) => Promise<void>>;
|
|
13
|
-
attribution: z.ZodOptional<z.ZodCustom<(ctx: import("../../../tools/definition.ts").ToolContext) => import("eve/extensions/git/sandbox").GitHubCoAuthor | null | PromiseLike<import("eve/extensions/git/sandbox").GitHubCoAuthor | null>, (ctx: import("../../../tools/definition.ts").ToolContext) => import("eve/extensions/git/sandbox").GitHubCoAuthor | null | PromiseLike<import("eve/extensions/git/sandbox").GitHubCoAuthor | null>>>;
|
|
14
|
-
}, z.core.$strip>>;
|
|
15
5
|
vercel: z.ZodOptional<z.ZodObject<{
|
|
16
6
|
connector: z.ZodString;
|
|
17
7
|
delivery: z.ZodDefault<z.ZodEnum<{
|
|
@@ -41,5 +31,5 @@ declare const _default: import("eve/extension").ExtensionHandle<z.ZodObject<{
|
|
|
41
31
|
xhigh: "xhigh";
|
|
42
32
|
}>>;
|
|
43
33
|
}, z.core.$strip>>;
|
|
44
|
-
}, z.core.$
|
|
34
|
+
}, z.core.$strict>>;
|
|
45
35
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{z}from"#compiled/zod/index.js";import{defineExtension}from"eve/extension";const fn=()=>z.custom(e=>typeof e==`function`),delivery=z.enum([`firewall`,`command`]).default(`firewall`),reasoning=z.enum([`provider-default`,`none`,`minimal`,`low`,`medium`,`high`,`xhigh`]),openaiReasoningEffort=z.enum([`none`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`]);var extension_default=defineExtension({config:z.object({
|
|
1
|
+
import{z}from"#compiled/zod/index.js";import{defineExtension}from"eve/extension";const fn=()=>z.custom(e=>typeof e==`function`),delivery=z.enum([`firewall`,`command`]).default(`firewall`),reasoning=z.enum([`provider-default`,`none`,`minimal`,`low`,`medium`,`high`,`xhigh`]),openaiReasoningEffort=z.enum([`none`,`minimal`,`low`,`medium`,`high`,`xhigh`,`max`]);var extension_default=defineExtension({config:z.object({vercel:z.object({connector:z.string().min(1),delivery}).optional(),broker:fn().optional(),worker:z.object({model:z.string().min(1),reasoning,openaiReasoningEffort:openaiReasoningEffort.optional()}).optional()}).strict()});export{extension_default as default};
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
type WatchGitHubConfig = {
|
|
3
|
+
readonly connector: string;
|
|
4
|
+
readonly org: string;
|
|
5
|
+
};
|
|
2
6
|
export declare const PullRequestWatchInputSchema: z.ZodObject<{
|
|
3
7
|
repo: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
4
8
|
pullRequestNumber: z.ZodNumber;
|
|
@@ -65,5 +69,5 @@ export declare function pullRequestWatchSnapshot(input: {
|
|
|
65
69
|
readonly reviews: readonly Review[];
|
|
66
70
|
}): PullRequestWatchSnapshot;
|
|
67
71
|
export declare function repoFullName(repo: string): string;
|
|
68
|
-
export declare function readPullRequestWatchSnapshot(input: PullRequestWatchInput): Promise<PullRequestWatchSnapshot>;
|
|
72
|
+
export declare function readPullRequestWatchSnapshot(input: PullRequestWatchInput, github: WatchGitHubConfig): Promise<PullRequestWatchSnapshot>;
|
|
69
73
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{z}from"#compiled/zod/index.js";import{deleteTokenCacheEntry,getToken}from"#compiled/@vercel/connect/index.js";const RepoSchema=z.string().trim().regex(/^[A-Za-z0-9-]+\/[A-Za-z0-9._-]+$/u).transform(e=>e.toLowerCase()),PullRequestWatchInputSchema=z.object({repo:RepoSchema,pullRequestNumber:z.number().int().positive(),reviewOwner:z.string().trim().min(1),redHeadOid:z.string().regex(/^[0-9a-f]{40}$/iu).transform(e=>e.toLowerCase())}),PrwatchDeleteInputSchema=z.object({repo:RepoSchema,pullRequestNumber:z.number().int().positive()}),PullRequestSchema=z.object({head:z.object({sha:z.string().min(1)}),html_url:z.string().url(),merged:z.boolean().optional().default(!1),state:z.enum([`open`,`closed`])}),ReviewSchema=z.object({commit_id:z.string().nullable(),state:z.string(),submitted_at:z.string().nullable(),user:z.object({login:z.string()}).nullable()});function initialPullRequestWatchNotificationState(){return{previousSnapshot:null,redHeadPolls:0,redHeadWakeSent:!1}}function framePullRequestWatchWake(e){return`${e}\n\nThis is an internal watch wake, not a request for a progress report. Continue any necessary work. Send a user-facing response only when the original request is complete or a new blocker requires human input. Do not report that nothing changed or that work is still in progress.`}function reviewFingerprint(e){return e?.ownerReviewState===null||e===null?null:`${e.ownerReviewState}:${e.ownerReviewSubmittedAt??``}`}function advancePullRequestWatchNotification(e){let t=e.state.previousSnapshot,n=e.snapshot.headOid!==(t?.headOid??e.redHeadOid),r=t!==null&&reviewFingerprint(e.snapshot)!==reviewFingerprint(t),i=e.snapshot.headOid===e.redHeadOid,a=i?e.state.redHeadPolls+1:0,o=null;return n?o=`head_changed`:r?o=`owner_review_changed`:i&&!e.state.redHeadWakeSent&&a===e.staleAfterPolls&&(o=`red_head_stalled`),{state:{previousSnapshot:e.snapshot,redHeadPolls:a,redHeadWakeSent:e.state.redHeadWakeSent||o===`red_head_stalled`},wakeReason:o}}var RetryablePullRequestWatchError=class extends Error{},GitHubWatchResponseError=class extends Error{status;constructor(e,t){super(t),this.name=`GitHubWatchResponseError`,this.status=e}};function errorStatus(e){return typeof e!=`object`||!e||!(`status`in e)?null:typeof e.status==`number`?e.status:null}function shouldRefreshPullRequestWatchToken(e){return errorStatus(e)===401}function isRetryablePullRequestWatchError(e){let t=errorStatus(e);return t===429||t!==null&&t>=500||e instanceof RetryablePullRequestWatchError||e instanceof TypeError||e instanceof Error&&(/^GitHub watch (?:request|token request) failed:/u.test(e.message)||/\((?:429|5\d{2})\b/u.test(e.message))}function pullRequestWatchSnapshot(e){let t=e.reviewOwner.toLowerCase(),n=e.pullRequest.head.sha.toLowerCase(),r=e.reviews.filter(e=>e.commit_id?.toLowerCase()===n&&e.user?.login.toLowerCase()===t).at(-1);return{headOid:n,ownerApprovedCurrentHead:r?.state.toUpperCase()===`APPROVED`,ownerReviewState:r?.state.toUpperCase()??null,ownerReviewSubmittedAt:r?.submitted_at??null,state:e.pullRequest.merged?`merged`:e.pullRequest.state,url:e.pullRequest.html_url}}function repoParts(e){let[t,n]=e.split(`/`);if(t===void 0||n===void 0)throw Error(`Invalid GitHub repository: ${e}`);return{owner:t,name:n}}function repoFullName(e){let t=repoParts(e);return`${t.owner}/${t.name}`}function repoApiPath(e){let t=repoParts(e);return`/repos/${encodeURIComponent(t.owner)}/${encodeURIComponent(t.name)}`}function redactGithubToken(e,t){return t.length===0?e:e.split(t).join(`[redacted]`)}function githubHeaders(e){return{Accept:`application/vnd.github+json`,Authorization:`Bearer ${e}`,"X-GitHub-Api-Version":`2022-11-28`}}function githubTokenParams(e,t){return{authorizationDetails:[{org:e,repositories:[t],type:`github_app_installation`}],subject:{type:`app`}}}async function mintWatchToken(e,t){let n=repoParts(e);if(n.owner!==t.org.toLowerCase())throw Error(`Repository ${e} is outside ${t.org}.`);let r=await getToken(t.connector,githubTokenParams(t.org,n.name));if(r.length===0)throw Error(`Connect returned an empty GitHub token for ${e}.`);return r}async function invalidateWatchToken(e,t){let n=repoParts(e);deleteTokenCacheEntry(t.connector,githubTokenParams(t.org,n.name))}async function githubJson(e,t){let n;try{n=await fetch(e,{headers:githubHeaders(t)})}catch(e){throw new RetryablePullRequestWatchError(`GitHub watch request failed: ${e instanceof Error?e.message:String(e)}`)}if(n.ok)return n.json();let r=await n.text().catch(()=>``),i=`GitHub request failed (${n.status} ${n.statusText})`+(r.length>0?`: ${redactGithubToken(r,t)}`:``);throw n.status===429||n.status>=500?new RetryablePullRequestWatchError(i):new GitHubWatchResponseError(n.status,i)}async function readPullRequestWatchSnapshotWithToken(e,t){let n=`https://api.github.com${repoApiPath(e.repo)}/pulls/${e.pullRequestNumber}`,r=PullRequestSchema.parse(await githubJson(n,t));if(r.state===`closed`||r.merged)return pullRequestWatchSnapshot({pullRequest:r,reviewOwner:e.reviewOwner,reviews:[]});let i=[];for(let r=1;r<=20;r+=1){let a=z.array(ReviewSchema).parse(await githubJson(`${n}/reviews?per_page=100&page=${r}`,t));if(i.push(...a),a.length<100)break;if(r===20)throw Error(`PR #${e.pullRequestNumber} has too many reviews to verify`)}return pullRequestWatchSnapshot({pullRequest:r,reviewOwner:e.reviewOwner,reviews:i})}async function readPullRequestWatchSnapshot(e,t){for(let n=0;n<2;n+=1){let r;try{r=await mintWatchToken(e.repo,t)}catch(e){throw isRetryablePullRequestWatchError(e)?new RetryablePullRequestWatchError(`GitHub watch token request failed: ${e instanceof Error?e.message:String(e)}`):e}try{return await readPullRequestWatchSnapshotWithToken(e,r)}catch(r){if(n>0||!shouldRefreshPullRequestWatchToken(r))throw r;await invalidateWatchToken(e.repo,t)}}throw Error(`Pull request watch token refresh exhausted unexpectedly.`)}export{PrwatchDeleteInputSchema,PullRequestWatchInputSchema,advancePullRequestWatchNotification,framePullRequestWatchWake,initialPullRequestWatchNotificationState,isRetryablePullRequestWatchError,pullRequestWatchSnapshot,readPullRequestWatchSnapshot,repoFullName,shouldRefreshPullRequestWatchToken};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{shellQuote}from"./shell.js";import{
|
|
1
|
+
import{shellQuote}from"./shell.js";import{workspace_root_exports}from"./workspace-root.js";async function validateRepositoryRoot(e,t){let n=await(0,workspace_root_exports.resolveWorkspaceDirectory)(e,t),r=await e.run({command:`git -C ${shellQuote(n)} rev-parse --show-toplevel`});if(r.exitCode!==0||r.stdout.trim()!==n)throw Error(`root is not a git work tree root: ${t}`);return n}export{validateRepositoryRoot};
|
|
@@ -8,7 +8,3 @@ export declare function installCodeTooling(sandbox: ToolingSandbox, options?: {
|
|
|
8
8
|
readonly vercel?: boolean;
|
|
9
9
|
}): Promise<void>;
|
|
10
10
|
export { authenticateGitHub, authenticateVercel, type BrokeredCredentialOptions, } from "./credentials.ts";
|
|
11
|
-
/** @deprecated Import from `eve/computer-use/sandbox` and mount `eve/computer-use`. */
|
|
12
|
-
export { COMPUTER_USE_REVALIDATION_KEY, installComputerUse, startComputerUse, } from "eve/computer-use/sandbox";
|
|
13
|
-
/** @deprecated Import from `eve/extensions/git/sandbox`. */
|
|
14
|
-
export { executeGitHubShell, githubShellApproval, type GitHubLeaseRule, type GitHubShellInput, type GitHubShellOutput, } from "eve/extensions/git/sandbox";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{DIAGNOSTICS_WORKER_SOURCE,GH_SIGNED_COMMIT_SOURCE,GH_SIGNED_COMMIT_VERSION,TYPESCRIPT_VERSION,ghWrapperSource,toolingPaths,typescriptInstallCommand,vercelWrapperSource}from"./tooling.js";import{authenticateGitHub,authenticateVercel}from"./credentials.js";import{commandFailureDetail}from"./command-failure.js";
|
|
2
|
-
`)}export{CODE_TOOLING_REVALIDATION_KEY,
|
|
1
|
+
import{DIAGNOSTICS_WORKER_SOURCE,GH_SIGNED_COMMIT_SOURCE,GH_SIGNED_COMMIT_VERSION,TYPESCRIPT_VERSION,ghWrapperSource,toolingPaths,typescriptInstallCommand,vercelWrapperSource}from"./tooling.js";import{authenticateGitHub,authenticateVercel}from"./credentials.js";import{commandFailureDetail}from"./command-failure.js";const CODE_TOOLING_REVALIDATION_KEY=`eve-code-tooling:3:${GH_SIGNED_COMMIT_VERSION}:${TYPESCRIPT_VERSION}`;async function installCodeTooling(e,t={}){let n=toolingPaths(e);await Promise.all([e.writeTextFile({path:n.ghWrapper,content:ghWrapperSource(e)}),e.writeTextFile({path:n.signedCommit,content:GH_SIGNED_COMMIT_SOURCE}),e.writeTextFile({path:n.workerSource,content:DIAGNOSTICS_WORKER_SOURCE}),...t.vercel===!0?[e.writeTextFile({path:n.vercelWrapper,content:vercelWrapperSource(e)})]:[]]);let r=await e.run({command:toolingInstallCommand(e,t.vercel===!0)});if(r.exitCode!==0)throw Error(`eve-code tooling installation failed (exit ${r.exitCode}): ${commandFailureDetail(r)}`)}function toolingInstallCommand(e,t){let n=toolingPaths(e),quote=e=>`'${e.replaceAll(`'`,`'"'"'`)}'`;return[`set -e`,`mkdir -p ${quote(n.root)}`,`if ! command -v gh >/dev/null 2>&1; then`,` command -v apt-get >/dev/null 2>&1 || { echo 'eve-code requires gh or apt-get' >&2; exit 1; }`,` if [ "$(id -u)" = 0 ]; then APT=apt-get; else command -v sudo >/dev/null 2>&1 || { echo 'eve-code needs root or sudo to install gh' >&2; exit 1; }; APT='sudo -n apt-get'; fi`,` $APT update && $APT install -y gh`,`fi`,`chmod 755 ${quote(n.ghWrapper)} ${quote(n.signedCommit)}`,`if [ "$(id -u)" = 0 ]; then INSTALL=install; else INSTALL='sudo -n install'; fi`,`$INSTALL -d -o root -g root -m 755 ${quote(n.trustedRoot)} ${quote(n.typescriptRoot)}`,`[ -x /usr/bin/gh ] || { echo 'eve-code requires gh at /usr/bin/gh' >&2; exit 1; }`,`$INSTALL -m 755 /usr/bin/gh ${quote(n.ghReal)}`,`$INSTALL -m 755 ${quote(n.signedCommit)} ${quote(n.trustedSignedCommit)}`,`$INSTALL -m 644 ${quote(n.workerSource)} ${quote(n.worker)}`,`$INSTALL -m 755 ${quote(n.ghWrapper)} /usr/local/bin/gh`,`$INSTALL -m 755 ${quote(n.trustedSignedCommit)} /usr/local/bin/gh-signed-commit`,typescriptInstallCommand(e),...t?[`if [ "$(id -u)" = 0 ]; then npm install -g vercel@latest; else sudo -n npm install -g vercel@latest; fi`,`$INSTALL -m 755 ${quote(n.vercelWrapper)} /usr/local/bin/vercel`,`$INSTALL -m 755 ${quote(n.vercelWrapper)} /usr/local/bin/vc`]:[]].join(`
|
|
2
|
+
`)}export{CODE_TOOLING_REVALIDATION_KEY,authenticateGitHub,authenticateVercel,installCodeTooling};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SandboxSession } from "eve/sandbox";
|
|
2
|
-
import { GH_SIGNED_COMMIT_SOURCE, GH_SIGNED_COMMIT_VERSION } from "eve/
|
|
2
|
+
import { GH_SIGNED_COMMIT_SOURCE, GH_SIGNED_COMMIT_VERSION } from "eve/internal/git";
|
|
3
3
|
export { GH_SIGNED_COMMIT_SOURCE, GH_SIGNED_COMMIT_VERSION };
|
|
4
4
|
export declare const TYPESCRIPT_VERSION = "6.0.3";
|
|
5
5
|
export declare function toolingPaths(sandbox: Pick<SandboxSession, "resolvePath">): {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{shellQuote}from"./shell.js";import{GH_SIGNED_COMMIT_SOURCE,GH_SIGNED_COMMIT_VERSION,GITHUB_TOOLING_PATHS}from"eve/
|
|
1
|
+
import{shellQuote}from"./shell.js";import{GH_SIGNED_COMMIT_SOURCE,GH_SIGNED_COMMIT_VERSION,GITHUB_TOOLING_PATHS}from"eve/internal/git";const TYPESCRIPT_VERSION=`6.0.3`,TRUSTED_TOOLING_ROOT=`/usr/local/lib/eve-code`,TYPESCRIPT_MODULE=`${TRUSTED_TOOLING_ROOT}/typescript/node_modules/typescript/lib/typescript.js`;function toolingPaths(e){let t=e.resolvePath(`.eve-code`),n=TRUSTED_TOOLING_ROOT;return{root:t,trustedRoot:n,env:`${t}/env`,ghReal:GITHUB_TOOLING_PATHS.ghReal,ghWrapper:`${t}/gh`,vercelWrapper:`${t}/vercel`,signedCommit:`${t}/gh-signed-commit`,trustedSignedCommit:GITHUB_TOOLING_PATHS.trustedSignedCommit,typescriptRoot:`${n}/typescript`,typescriptModule:TYPESCRIPT_MODULE,workerSource:`${t}/diagnostics.cjs`,worker:`${n}/diagnostics.cjs`}}function ghWrapperSource(e){let t=toolingPaths(e);return`#!/usr/bin/env bash\nset -euo pipefail\n[[ ! -f ${JSON.stringify(t.env)} ]] || source ${JSON.stringify(t.env)}\nexport GH_TOKEN="\${GH_TOKEN:-ghp_000000000000000000000000000000000000}"\nexec ${JSON.stringify(t.ghReal)} "$@"\n`}function vercelWrapperSource(e){let t=toolingPaths(e);return`#!/usr/bin/env bash\nset -euo pipefail\n[[ ! -f ${JSON.stringify(t.env)} ]] || source ${JSON.stringify(t.env)}\nexport VERCEL_TOKEN="\${VERCEL_TOKEN:-eve-code-firewall-placeholder}"\nexec node "$(npm root -g)/vercel/dist/index.js" "$@"\n`}function typescriptInstallCommand(e){let{typescriptRoot:t}=toolingPaths(e),n=`${t}/npmrc`,r=[`set -e`,`cd ${shellQuote(t)}`,`umask 022`,`: > ${shellQuote(n)}`,`npm install --prefix ${shellQuote(t)} --ignore-scripts --no-audit --no-fund typescript@${TYPESCRIPT_VERSION}`,`chmod -R go-w ${shellQuote(t)}`].join(`
|
|
2
2
|
`),i=`/usr/bin/env -i HOME=/root PATH=/usr/local/bin:/usr/bin:/bin NPM_CONFIG_USERCONFIG=/dev/null NPM_CONFIG_GLOBALCONFIG=${shellQuote(n)} NPM_CONFIG_REGISTRY=https://registry.npmjs.org /bin/sh -c ${shellQuote(r)}`;return`if [ "$(id -u)" = 0 ]; then ${i}; else sudo -n ${i}; fi`}const DIAGNOSTICS_WORKER_SOURCE=String.raw`const fs = require("node:fs");
|
|
3
3
|
const path = require("node:path");
|
|
4
4
|
|
|
@@ -1,31 +1 @@
|
|
|
1
|
-
|
|
2
|
-
* The single containment check for sandbox paths that tools read or write.
|
|
3
|
-
* The workspace root differs by provider (`/workspace`, `/app`, ...), so the
|
|
4
|
-
* boundary is the real path of `resolvePath("")`, never a literal prefix.
|
|
5
|
-
*/
|
|
6
|
-
export interface WorkspaceSandbox {
|
|
7
|
-
resolvePath(path: string): string;
|
|
8
|
-
run(input: {
|
|
9
|
-
abortSignal?: AbortSignal;
|
|
10
|
-
command: string;
|
|
11
|
-
}): PromiseLike<{
|
|
12
|
-
exitCode: number;
|
|
13
|
-
stderr: string;
|
|
14
|
-
stdout: string;
|
|
15
|
-
}>;
|
|
16
|
-
}
|
|
17
|
-
/** NUL-delimited output keeps paths that contain newlines unambiguous. */
|
|
18
|
-
export declare function sandboxRealPath(sandbox: WorkspaceSandbox, path: string, label: string, abortSignal?: AbortSignal): Promise<string>;
|
|
19
|
-
/**
|
|
20
|
-
* Resolves `path` (default: the workspace root) to a real path inside the real
|
|
21
|
-
* workspace. Symlinks are followed before the check, so a link cannot escape.
|
|
22
|
-
*/
|
|
23
|
-
export declare function resolveInWorkspace(sandbox: WorkspaceSandbox, path: string | undefined, label: string, abortSignal?: AbortSignal): Promise<{
|
|
24
|
-
readonly path: string;
|
|
25
|
-
readonly workspace: string;
|
|
26
|
-
}>;
|
|
27
|
-
/**
|
|
28
|
-
* An absolute directory inside the workspace (default: the workspace root).
|
|
29
|
-
* Git is not required; `validateRepositoryRoot` adds that check.
|
|
30
|
-
*/
|
|
31
|
-
export declare function resolveWorkspaceDirectory(sandbox: WorkspaceSandbox, root?: string): Promise<string>;
|
|
1
|
+
export * from "eve/internal/workspace";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{__exportAll,__reExport}from"../../../../_virtual/_rolldown/runtime.js";export*from"eve/internal/workspace";var workspace_root_exports=__exportAll({});import*as import_eve_internal_workspace from"eve/internal/workspace";__reExport(workspace_root_exports,import_eve_internal_workspace);export{workspace_root_exports};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import extension_default from"../../extension.js";import{defineAgent,defineDynamic}from"eve";var agent_default=defineAgent({description:`Another mind for one scoped slice. Give it a self-contained question and choose the lifetime: keep it and send deltas when it should own the slice end to end, or ask once. It can see the shared tree. You remain the arbiter and keep the writes.`,model:defineDynamic(
|
|
1
|
+
import extension_default from"../../extension.js";import{defineAgent,defineDynamic}from"eve";var agent_default=defineAgent({description:`Another mind for one scoped slice. Give it a self-contained question and choose the lifetime: keep it and send deltas when it should own the slice end to end, or ask once. It can see the shared tree. You remain the arbiter and keep the writes.`,model:defineDynamic(()=>{let e=extension_default.config.worker??{model:`openai/gpt-5.6-terra-fast`,reasoning:`xhigh`};return{model:e.model,reasoning:e.reasoning,modelOptions:e.openaiReasoningEffort===void 0?void 0:{providerOptions:{openai:{reasoningEffort:e.openaiReasoningEffort}}}}}),reasoning:`xhigh`,defaultTools:!1});export{agent_default as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{onlyNewTypeDiagnostics,runPostEditDiagnostics,runTypeScriptDiagnostics}from"../lib/diagnostics.js";import{findGeneratedPatchTargets,generatedPatchTargetsError}from"../lib/generated-paths.js";import{
|
|
2
|
-
`),approval:never(),label:{start:({root:e})=>`Patch ${e??`workspace`}`},inputSchema:z.object({root:z.string().min(1).optional().describe(`absolute directory inside the sandbox workspace that patch paths are relative to; defaults to the workspace root`),patchText:z.string().min(1).max(5e5).describe(`complete *** Begin Patch text`)}),outputSchema:z.object({diagnostics:z.array(DiagnosticSchema),files:z.array(z.object({operation:z.enum([`add`,`delete`,`move`,`update`]),path:z.string(),previousPath:z.string().optional()}))}),async execute({root:e,patchText:t},n){let r=findGeneratedPatchTargets(t);if(r.length>0)throw Error(generatedPatchTargetsError(r));let i=await n.getSandbox(),a=await
|
|
1
|
+
import{onlyNewTypeDiagnostics,runPostEditDiagnostics,runTypeScriptDiagnostics}from"../lib/diagnostics.js";import{findGeneratedPatchTargets,generatedPatchTargetsError}from"../lib/generated-paths.js";import{applyPatchToSandbox}from"../lib/patch.js";import{workspace_root_exports}from"../lib/workspace-root.js";import{z}from"#compiled/zod/index.js";import{defineTool}from"eve/tools";import{never}from"eve/tools/approval";const DiagnosticSchema=z.object({check:z.enum([`git-diff`,`syntax`,`typescript`,`whitespace`]),code:z.number().int().optional(),column:z.number().int().optional(),line:z.number().int().optional(),message:z.string(),path:z.string().optional()});var apply_patch_default=defineTool({description:[`Apply targeted changes to files in the sandbox workspace. No git checkout is required.`,`Use this instead of rewriting complete files or writing through bash.`,`Write small hunks against current file contents. If a hunk misses, re-read that file and rewrite only the failed hunk. Do not retry the same patch text.`,`The patch is fully parsed and every source file is verified before any write.`,`After writing, the tool runs bounded whitespace, syntax, and TypeScript checks and`,`returns only diagnostics the patch introduced.`,`Patch format:`,`*** Begin Patch`,`*** Add File: path (every content line starts with +)`,`*** Update File: path (optional *** Move to: new-path, followed by @@ chunks)`,`*** Delete File: path`,`*** End Patch`,`Paths are relative to root and may not escape it.`,`Generated files (lockfiles, dist/, vendor-compiled/) are rejected: change them`,`through the command that generates them, never through a patch.`].join(`
|
|
2
|
+
`),approval:never(),label:{start:({root:e})=>`Patch ${e??`workspace`}`},inputSchema:z.object({root:z.string().min(1).optional().describe(`absolute directory inside the sandbox workspace that patch paths are relative to; defaults to the workspace root`),patchText:z.string().min(1).max(5e5).describe(`complete *** Begin Patch text`)}),outputSchema:z.object({diagnostics:z.array(DiagnosticSchema),files:z.array(z.object({operation:z.enum([`add`,`delete`,`move`,`update`]),path:z.string(),previousPath:z.string().optional()}))}),async execute({root:e,patchText:t},n){let r=findGeneratedPatchTargets(t);if(r.length>0)throw Error(generatedPatchTargetsError(r));let i=await n.getSandbox(),a=await(0,workspace_root_exports.resolveWorkspaceDirectory)(i,e),o=[],s=new Map,c=await applyPatchToSandbox({async beforeCommit(e){for(let t of e)s.set(t.path,t.previousContent);o=await runTypeScriptDiagnostics({paths:e.filter(e=>e.operation===`update`).map(e=>e.path),patchRoot:a,sandbox:i})},patchText:t,patchRoot:a,sandbox:i,sessionId:n.session.id}),l=c.filter(e=>e.operation!==`delete`).map(e=>e.path),u=c.filter(e=>e.operation===`add`||e.operation===`move`).map(e=>e.path),d=[...c.filter(e=>e.operation===`delete`).map(e=>e.path),...c.flatMap(e=>e.operation===`move`&&e.previousPath!==void 0?[e.previousPath]:[])];return{diagnostics:onlyNewTypeDiagnostics(await runPostEditDiagnostics({addedPaths:u,changedPaths:l,deletedPaths:d,patchRoot:a,previousContents:s,sandbox:i}),o),files:c}}});export{apply_patch_default as default};
|