eve 0.82.0 → 0.83.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 +69 -0
- package/NOTICE +1 -1
- package/dist/src/channel/pending-authorization.d.ts +5 -0
- package/dist/src/channel/pending-authorization.js +1 -1
- package/dist/src/channel/session.d.ts +2 -0
- package/dist/src/channel/session.js +1 -1
- package/dist/src/channel/types.d.ts +5 -0
- package/dist/src/chunks/{use-eve-agent-DlznYwQk.js → use-eve-agent-3-WRmJkd.js} +40 -5
- package/dist/src/chunks/{use-eve-agent-DTu78IAF.js → use-eve-agent-Ci5dr0aR.js} +40 -5
- package/dist/src/cli/dev/local-server-child.js +1 -1
- package/dist/src/cli/dev/local-server-cleanup.js +1 -1
- package/dist/src/cli/dev/tui/question-panel.d.ts +4 -1
- package/dist/src/cli/dev/tui/question-panel.js +1 -1
- package/dist/src/cli/dev/tui/terminal-renderer.js +4 -4
- package/dist/src/client/eve-agent-store.d.ts +1 -1
- package/dist/src/client/eve-agent-store.js +1 -1
- package/dist/src/client/index.d.ts +1 -0
- package/dist/src/client/session-controls.d.ts +6 -0
- package/dist/src/client/session-controls.js +1 -1
- package/dist/src/client/session.d.ts +4 -0
- package/dist/src/client/session.js +1 -1
- package/dist/src/compiled/.vendor-stamp.json +8 -8
- package/dist/src/compiled/@eve/catalog/index.js +1 -1
- package/dist/src/compiled/@workflow/core/events-consumer.d.ts +2 -0
- package/dist/src/compiled/@workflow/core/index.js +2 -2
- package/dist/src/compiled/@workflow/core/private.d.ts +5 -3
- package/dist/src/compiled/@workflow/core/private.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime/constants.d.ts +1 -37
- package/dist/src/compiled/@workflow/core/runtime/event-limit-warning.d.ts +32 -0
- package/dist/src/compiled/@workflow/core/runtime/helpers.d.ts +5 -6
- package/dist/src/compiled/@workflow/core/runtime/helpers.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime/runs.d.ts +8 -0
- package/dist/src/compiled/@workflow/core/runtime/start.d.ts +16 -0
- package/dist/src/compiled/@workflow/core/runtime/suspension-handler.d.ts +15 -18
- package/dist/src/compiled/@workflow/core/runtime/vm-mode.d.ts +20 -0
- package/dist/src/compiled/@workflow/core/runtime.js +4 -4
- package/dist/src/compiled/@workflow/core/seeded-nanoid.d.ts +2 -0
- package/dist/src/compiled/@workflow/core/serialization/compression.d.ts +14 -3
- package/dist/src/compiled/@workflow/core/serialization.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/serialization.js +1 -1
- package/dist/src/compiled/@workflow/core/telemetry/semantic-conventions.d.ts +0 -18
- package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/workflow.js +1 -1
- package/dist/src/compiled/@workflow/errors/index.d.ts +48 -0
- package/dist/src/compiled/@workflow/errors/index.js +1 -1
- package/dist/src/compiled/@workflow/world/env-config.d.ts +24 -0
- package/dist/src/compiled/@workflow/world/events.d.ts +126 -7
- package/dist/src/compiled/@workflow/world/index.d.ts +3 -3
- package/dist/src/compiled/@workflow/world/interfaces.d.ts +59 -8
- package/dist/src/compiled/@workflow/world/queue.d.ts +71 -9
- package/dist/src/compiled/@workflow/world/recovery.d.ts +6 -0
- package/dist/src/compiled/@workflow/world/test-support/duplicate-event-fixtures.d.ts +3 -0
- package/dist/src/compiled/@workflow/world/test-support/in-band-fence-conformance.d.ts +46 -0
- package/dist/src/compiled/@workflow/world-local/index.js +5 -5
- package/dist/src/compiled/@workflow/world-vercel/index.js +18 -18
- package/dist/src/compiled/_chunks/workflow/{attribute-changes-BW-kbMMn.js → attribute-changes-7se_SE2q.js} +3 -3
- package/dist/src/compiled/_chunks/workflow/dist-CcnNPAp4.js +1 -0
- package/dist/src/compiled/_chunks/workflow/dist-S9cZRway.js +3 -0
- package/dist/src/compiled/_chunks/workflow/helpers-CxNRXH0a.js +1 -0
- package/dist/src/compiled/_chunks/workflow/private-DLYTSBbu.js +1 -0
- package/dist/src/compiled/_chunks/workflow/resume-hook-CPiIfe8r.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{run-DzdAqdb1.js → run-BJSLCXR4.js} +6 -6
- package/dist/src/compiled/_chunks/workflow/serialization-B9gneT9Z.js +15 -0
- package/dist/src/compiled/_chunks/workflow/sleep-BL0oQs3R.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{wait-until-xbRRDuUf.js → wait-until-BPou0RGO.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/workflow-routes-BaljomCk.js +1 -0
- package/dist/src/compiled/{@ai-sdk/code-mode → run}/LICENSE +1 -1
- package/dist/src/compiled/run/index.d.ts +384 -0
- package/dist/src/compiled/run/index.js +650 -0
- package/dist/src/compiler/extension-compatibility.d.ts +21 -14
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/compiler/manifest.js +1 -1
- package/dist/src/compiler/normalize-agent-config.js +1 -1
- package/dist/src/compiler/normalize-manifest.js +1 -1
- package/dist/src/compiler/normalize-sandbox.js +1 -1
- package/dist/src/compiler/workspace-resources.js +1 -1
- package/dist/src/context/build-callback-context.js +1 -1
- package/dist/src/context/dynamic-skill-lifecycle.js +1 -1
- package/dist/src/context/providers/sandbox.js +1 -1
- package/dist/src/discover/extension-specifier.d.ts +1 -0
- package/dist/src/discover/extension-specifier.js +1 -1
- package/dist/src/evals/cli/eval.js +2 -2
- package/dist/src/evals/runner/artifacts.js +1 -1
- package/dist/src/evals/runner/derive-run-facts.d.ts +12 -0
- package/dist/src/evals/runner/derive-run-facts.js +1 -1
- package/dist/src/evals/runner/execute-task.js +1 -1
- package/dist/src/evals/types.d.ts +3 -2
- package/dist/src/eve-channel/index.js +1 -1
- package/dist/src/eve-channel/request.d.ts +0 -1
- package/dist/src/eve-channel/request.js +2 -2
- package/dist/src/execution/agent-sessions/context.d.ts +1 -1
- package/dist/src/execution/agent-sessions/context.js +1 -1
- package/dist/src/execution/coordination-dispatch-shared.d.ts +3 -0
- package/dist/src/execution/coordination-dispatch-shared.js +1 -1
- package/dist/src/execution/dynamic-workflow/program-step.d.ts +7 -7
- package/dist/src/execution/dynamic-workflow/program-step.js +1 -1
- package/dist/src/execution/dynamic-workflow/schema.d.ts +18 -11
- package/dist/src/execution/dynamic-workflow/schema.js +1 -1
- package/dist/src/execution/dynamic-workflow/tool.js +1 -1
- package/dist/src/execution/dynamic-workflow/workflow.js +1 -1
- package/dist/src/execution/eve-workflow-attributes.d.ts +3 -1
- package/dist/src/execution/eve-workflow-attributes.js +1 -1
- package/dist/src/execution/invoke-tool.js +1 -1
- package/dist/src/execution/sandbox/abort-bound-session.js +1 -1
- package/dist/src/execution/sandbox/active-connections.d.ts +28 -0
- package/dist/src/execution/sandbox/active-connections.js +1 -0
- package/dist/src/execution/sandbox/bindings/docker-cli.d.ts +10 -2
- package/dist/src/execution/sandbox/bindings/docker-cli.js +2 -2
- package/dist/src/execution/sandbox/bindings/docker-connection.d.ts +15 -0
- package/dist/src/execution/sandbox/bindings/docker-connection.js +2 -0
- package/dist/src/execution/sandbox/bindings/docker-container.d.ts +2 -0
- package/dist/src/execution/sandbox/bindings/docker-container.js +1 -1
- package/dist/src/execution/sandbox/bindings/docker-network.d.ts +5 -0
- package/dist/src/execution/sandbox/bindings/docker-network.js +1 -1
- package/dist/src/execution/sandbox/bindings/docker-templates.js +1 -1
- package/dist/src/execution/sandbox/bindings/docker.d.ts +12 -15
- package/dist/src/execution/sandbox/bindings/docker.js +1 -1
- package/dist/src/execution/sandbox/bindings/just-bash-runtime.d.ts +19 -29
- package/dist/src/execution/sandbox/bindings/just-bash-runtime.js +1 -1
- package/dist/src/execution/sandbox/bindings/just-bash.d.ts +2 -4
- package/dist/src/execution/sandbox/bindings/just-bash.js +1 -1
- package/dist/src/execution/sandbox/bindings/local-provider-utils.d.ts +0 -20
- package/dist/src/execution/sandbox/bindings/local-provider-utils.js +1 -1
- package/dist/src/execution/sandbox/bindings/local.d.ts +4 -6
- package/dist/src/execution/sandbox/bindings/local.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel-base-runtime.d.ts +2 -0
- package/dist/src/execution/sandbox/bindings/vercel-base-runtime.js +2 -2
- package/dist/src/execution/sandbox/bindings/vercel-errors.js +2 -2
- package/dist/src/execution/sandbox/bindings/vercel-lifecycle.d.ts +7 -5
- package/dist/src/execution/sandbox/bindings/vercel-lifecycle.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel.d.ts +5 -11
- package/dist/src/execution/sandbox/bindings/vercel.js +1 -2
- package/dist/src/execution/sandbox/development-cleanup.d.ts +0 -1
- package/dist/src/execution/sandbox/development-cleanup.js +1 -1
- package/dist/src/execution/sandbox/development-lazy-prewarm.js +1 -1
- package/dist/src/execution/sandbox/development-run.d.ts +0 -2
- package/dist/src/execution/sandbox/development-run.js +1 -1
- package/dist/src/execution/sandbox/dockerfile.d.ts +0 -4
- package/dist/src/execution/sandbox/dockerfile.js +1 -1
- package/dist/src/execution/sandbox/ensure.d.ts +23 -11
- package/dist/src/execution/sandbox/ensure.js +1 -1
- package/dist/src/execution/sandbox/glob-tool.js +3 -3
- package/dist/src/execution/sandbox/grep-tool.js +1 -1
- package/dist/src/execution/sandbox/logging-session.js +1 -1
- package/dist/src/execution/sandbox/prewarm.d.ts +23 -3
- package/dist/src/execution/sandbox/prewarm.js +2 -1
- package/dist/src/execution/sandbox/read-file.js +1 -1
- package/dist/src/execution/sandbox/require-sandbox.d.ts +3 -2
- package/dist/src/execution/sandbox/require-sandbox.js +1 -1
- package/dist/src/execution/sandbox/ripgrep-probe.js +1 -1
- package/dist/src/execution/sandbox/session.d.ts +10 -20
- package/dist/src/execution/sandbox/session.js +2 -2
- package/dist/src/execution/session/admission.js +1 -1
- package/dist/src/execution/session/checkpoint-migrations.js +1 -1
- package/dist/src/execution/session/entry-input.d.ts +5 -4
- package/dist/src/execution/session/entry.js +1 -1
- package/dist/src/execution/session/handoff-state.d.ts +5 -0
- package/dist/src/execution/session/handoff-state.js +1 -0
- package/dist/src/execution/session/handoff-steps.d.ts +0 -5
- package/dist/src/execution/session/handoff-steps.js +1 -1
- package/dist/src/execution/session/handoff.d.ts +2 -1
- package/dist/src/execution/session/handoff.js +1 -1
- package/dist/src/execution/session/input-queue.d.ts +3 -0
- package/dist/src/execution/session/input-queue.js +1 -1
- package/dist/src/execution/session/next-input.d.ts +3 -0
- package/dist/src/execution/session/next-input.js +1 -1
- package/dist/src/execution/session/program.js +1 -1
- package/dist/src/execution/session/timeout-control.d.ts +4 -0
- package/dist/src/execution/session/timeout-control.js +1 -1
- package/dist/src/execution/session/turn-control.d.ts +5 -2
- package/dist/src/execution/session/turn-control.js +1 -1
- package/dist/src/execution/session/turn.js +1 -1
- package/dist/src/execution/session-inbox/inbox.d.ts +9 -1
- package/dist/src/execution/session-inbox/inbox.js +1 -1
- package/dist/src/execution/session-inbox/protocol.d.ts +2 -1
- package/dist/src/execution/session-inbox/protocol.js +1 -1
- package/dist/src/execution/session-inbox/resume.d.ts +2 -1
- package/dist/src/execution/session-inbox/resume.js +1 -1
- package/dist/src/execution/session-prewarm.d.ts +8 -0
- package/dist/src/execution/session-prewarm.js +1 -0
- package/dist/src/execution/skills/instructions.js +1 -1
- package/dist/src/execution/tools/agent-router-workflow.js +1 -1
- package/dist/src/execution/tools/workflow/body.js +1 -1
- package/dist/src/execution/tools/workflow/step-context.d.ts +11 -0
- package/dist/src/execution/tools/workflow/step-execution.js +1 -1
- package/dist/src/execution/tools/workflow/step.js +1 -1
- package/dist/src/execution/workflow-runtime.js +1 -1
- package/dist/src/extensions/git/extension/lib/github-shell-schema.js +1 -1
- package/dist/src/framework/sources/modules/sandbox.d.ts +1 -1
- package/dist/src/harness/attachment-staging.d.ts +0 -7
- package/dist/src/harness/attachment-staging.js +1 -1
- package/dist/src/harness/hitl/index.d.ts +2 -1
- package/dist/src/harness/hitl/index.js +1 -1
- package/dist/src/harness/hitl/view.d.ts +1 -0
- package/dist/src/harness/hitl/view.js +1 -0
- package/dist/src/harness/model-call/run.js +1 -1
- package/dist/src/harness/semantic-errors/rules/sandbox.d.ts +3 -5
- package/dist/src/harness/semantic-errors/rules/sandbox.js +1 -1
- package/dist/src/harness/step/prompt.js +1 -1
- package/dist/src/harness/tool-history-repair.d.ts +9 -0
- package/dist/src/harness/tool-history-repair.js +1 -0
- package/dist/src/harness/tool-model-output.d.ts +19 -3
- package/dist/src/harness/tool-model-output.js +1 -1
- package/dist/src/internal/application/compiled-artifacts.js +8 -4
- package/dist/src/internal/application/optional-package-import.d.ts +10 -0
- package/dist/src/internal/application/optional-package-import.js +1 -1
- package/dist/src/internal/application/stamped-package-version.js +1 -1
- package/dist/src/internal/attachments/limited-read.d.ts +2 -2
- package/dist/src/internal/authored-module-build-options.d.ts +6 -0
- package/dist/src/internal/authored-module-build-options.js +1 -1
- package/dist/src/internal/authored-module-cache.d.ts +10 -0
- package/dist/src/internal/authored-module-cache.js +1 -0
- package/dist/src/internal/authored-module-graph.js +1 -1
- package/dist/src/internal/authored-module-loader.js +1 -1
- package/dist/src/internal/authored-relative-extension-resolver.js +1 -1
- package/dist/src/internal/bundler/nitro-rolldown.d.ts +3 -1
- package/dist/src/internal/bundler/nitro-rolldown.js +1 -1
- package/dist/src/internal/bundler/pseudo-packages.d.ts +11 -0
- package/dist/src/internal/bundler/pseudo-packages.js +1 -0
- package/dist/src/internal/nitro/host/build-extension.d.ts +6 -0
- package/dist/src/internal/nitro/host/build-extension.js +2 -2
- package/dist/src/internal/nitro/host/compiled-sandbox-provider-prune-plugin.d.ts +3 -1
- package/dist/src/internal/nitro/host/compiled-sandbox-provider-prune-plugin.js +3 -5
- package/dist/src/internal/nitro/host/create-application-nitro.d.ts +2 -3
- package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
- package/dist/src/internal/nitro/host/dev-authored-rebuild-coordinator.d.ts +2 -0
- package/dist/src/internal/nitro/host/dev-authored-rebuild-coordinator.js +1 -1
- package/dist/src/internal/nitro/host/dev-authored-source-watcher.js +1 -1
- package/dist/src/internal/nitro/host/dev-build-host.d.ts +83 -0
- package/dist/src/internal/nitro/host/dev-build-host.js +1 -0
- package/dist/src/internal/nitro/host/dev-build-operations.d.ts +6 -0
- package/dist/src/internal/nitro/host/dev-build-operations.js +1 -0
- package/dist/src/internal/nitro/host/dev-build-process.d.ts +1 -0
- package/dist/src/internal/nitro/host/dev-build-process.js +1 -0
- package/dist/src/internal/nitro/host/development-runtime-prune-plugin.d.ts +4 -1
- package/dist/src/internal/nitro/host/development-runtime-prune-plugin.js +3 -2
- package/dist/src/internal/nitro/host/drained-nitro-dev-server.d.ts +13 -0
- package/dist/src/internal/nitro/host/drained-nitro-dev-server.js +1 -1
- package/dist/src/internal/nitro/host/optional-engine-dependency-plugin.js +1 -1
- package/dist/src/internal/nitro/host/prepare-application-host.d.ts +3 -0
- package/dist/src/internal/nitro/host/prepare-application-host.js +1 -1
- package/dist/src/internal/nitro/host/sandbox-shutdown-plugin.js +1 -1
- package/dist/src/internal/nitro/host/start-development-server.js +2 -2
- package/dist/src/internal/nitro/host/start-production-server.js +3 -3
- package/dist/src/internal/nitro/host/workflow-sandbox-runtime-plugin.js +1 -1
- package/dist/src/internal/nitro/host.js +1 -1
- package/dist/src/internal/workflow/local-world-delivery-auth.d.ts +17 -0
- package/dist/src/internal/workflow/local-world-delivery-auth.js +1 -0
- package/dist/src/internal/workflow/queue-namespace.d.ts +2 -0
- package/dist/src/internal/workflow/queue-namespace.js +1 -1
- package/dist/src/internal/workflow-bundle/builder-support.d.ts +0 -1
- package/dist/src/internal/workflow-bundle/builder-support.js +2 -2
- package/dist/src/internal/workflow-bundle/builder.js +2 -2
- package/dist/src/internal/workflow-bundle/vercel-workflow-output.d.ts +1 -1
- package/dist/src/internal/workflow-bundle/vercel-workflow-output.js +1 -1
- package/dist/src/protocol/prewarm-session.d.ts +14 -0
- package/dist/src/protocol/prewarm-session.js +1 -0
- package/dist/src/protocol/routes.d.ts +2 -2
- package/dist/src/public/channels/discord/authorization.d.ts +45 -0
- package/dist/src/public/channels/discord/authorization.js +3 -0
- package/dist/src/public/channels/discord/defaults.d.ts +14 -3
- package/dist/src/public/channels/discord/defaults.js +2 -2
- package/dist/src/public/channels/discord/discordChannel.d.ts +15 -1
- package/dist/src/public/channels/discord/discordChannel.js +1 -1
- package/dist/src/public/channels/discord/gateway/connection.d.ts +26 -0
- package/dist/src/public/channels/discord/gateway/connection.js +1 -0
- package/dist/src/public/channels/discord/gateway/forwarder.d.ts +14 -0
- package/dist/src/public/channels/discord/gateway/forwarder.js +1 -0
- package/dist/src/public/channels/discord/gateway/index.d.ts +59 -0
- package/dist/src/public/channels/discord/gateway/index.js +1 -0
- package/dist/src/public/channels/discord/inbound.d.ts +10 -3
- package/dist/src/public/channels/discord/inbound.js +2 -2
- package/dist/src/public/channels/discord/index.d.ts +3 -2
- package/dist/src/public/channels/discord/index.js +1 -1
- package/dist/src/public/channels/discord/messages.d.ts +116 -0
- package/dist/src/public/channels/discord/messages.js +2 -0
- package/dist/src/public/channels/github/checkout.js +1 -1
- package/dist/src/public/channels/linq/linqChannel.d.ts +4 -1
- package/dist/src/public/channels/linq/linqChannel.js +1 -1
- package/dist/src/public/channels/photon/photonIMessageChannel.js +1 -1
- package/dist/src/public/channels/same-environment-oidc.d.ts +7 -0
- package/dist/src/public/channels/same-environment-oidc.js +1 -0
- package/dist/src/public/definitions/channel.js +1 -1
- package/dist/src/public/definitions/sandbox.d.ts +1 -1
- package/dist/src/public/next/server.js +1 -1
- package/dist/src/public/sandbox/docker-sandbox.d.ts +6 -1
- package/dist/src/public/sandbox/docker.d.ts +1 -8
- package/dist/src/public/sandbox/index.d.ts +3 -3
- package/dist/src/public/sandbox/just-bash-sandbox.d.ts +87 -7
- package/dist/src/public/sandbox/just-bash.d.ts +1 -1
- package/dist/src/public/sandbox/provider.d.ts +5 -1
- package/dist/src/public/sandbox/provider.js +1 -1
- package/dist/src/public/sandbox/vercel-sandbox.d.ts +16 -9
- package/dist/src/public/sandbox/vercel.d.ts +0 -1
- package/dist/src/public/sandbox/vercel.js +1 -1
- package/dist/src/public/tools/agent.d.ts +8 -1
- package/dist/src/public/tools/agent.js +1 -1
- package/dist/src/react/use-eve-agent.d.ts +1 -1
- package/dist/src/runtime/agent/resolve-model.js +1 -1
- package/dist/src/runtime/connections/openapi-client.d.ts +2 -0
- package/dist/src/runtime/connections/openapi-client.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-channel.js +1 -1
- package/dist/src/runtime/resolve-sandbox.js +1 -1
- package/dist/src/runtime/sandbox/prepared-artifacts.js +1 -1
- package/dist/src/runtime/sandbox/registry.d.ts +2 -0
- package/dist/src/runtime/sandbox/registry.js +1 -1
- package/dist/src/runtime/subagents/workflow.d.ts +6 -0
- package/dist/src/runtime/subagents/workflow.js +1 -1
- package/dist/src/runtime/workspace/seed-files.d.ts +9 -12
- package/dist/src/runtime/workspace/seed-files.js +1 -1
- package/dist/src/runtime/workspace/spec.d.ts +1 -1
- package/dist/src/runtime/workspace/spec.js +1 -1
- package/dist/src/runtime/workspace/types.d.ts +2 -6
- package/dist/src/sandbox/provider.d.ts +185 -0
- package/dist/src/sandbox/provider.js +1 -0
- package/dist/src/sandbox/providers/default.d.ts +20 -19
- package/dist/src/sandbox/providers/default.js +1 -1
- package/dist/src/sandbox/providers/docker.d.ts +5 -2
- package/dist/src/sandbox/providers/docker.js +1 -1
- package/dist/src/sandbox/providers/just-bash.d.ts +4 -3
- package/dist/src/sandbox/providers/just-bash.js +1 -1
- package/dist/src/sandbox/providers/vercel.d.ts +4 -10
- package/dist/src/sandbox/providers/vercel.js +1 -1
- package/dist/src/sandbox/providers.d.ts +0 -1
- package/dist/src/sandbox/providers.js +1 -1
- package/dist/src/sandbox/state.d.ts +44 -0
- package/dist/src/sandbox/state.js +1 -1
- package/dist/src/self-modification/deployed-sandbox.d.ts +4 -9
- package/dist/src/self-modification/deployed-sandbox.js +1 -1
- package/dist/src/self-modification/filesystem.d.ts +3 -3
- package/dist/src/self-modification/remote/config.d.ts +2 -2
- package/dist/src/self-modification/remote/config.js +1 -1
- package/dist/src/self-modification/setup.d.ts +0 -1
- package/dist/src/self-modification/setup.js +8 -8
- package/dist/src/setup/integrations/discord/api.d.ts +7 -0
- package/dist/src/setup/integrations/discord/api.js +1 -1
- package/dist/src/setup/integrations/discord/daemon.d.ts +18 -0
- package/dist/src/setup/integrations/discord/daemon.js +21 -0
- package/dist/src/setup/integrations/discord/setup.d.ts +24 -4
- package/dist/src/setup/integrations/discord/setup.js +5 -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/update/web-options.js +1 -1
- package/dist/src/setup/scaffold/version-tokens.d.ts +0 -1
- package/dist/src/setup/scaffold/version-tokens.js +1 -1
- package/dist/src/shared/agent-definition.d.ts +2 -0
- package/dist/src/shared/built-server-start-failure.d.ts +12 -0
- package/dist/src/shared/built-server-start-failure.js +3 -0
- package/dist/src/shared/framework-eve-server.d.ts +2 -0
- package/dist/src/shared/framework-eve-server.js +2 -2
- package/dist/src/shared/sandbox-environment.d.ts +4 -10
- package/dist/src/shared/sandbox-environment.js +1 -1
- package/dist/src/shared/sandbox-network-policy.d.ts +45 -9
- package/dist/src/shared/sandbox-provider.d.ts +0 -103
- package/dist/src/shared/sandbox-provider.js +1 -1
- package/dist/src/shared/sandbox-recorded-data-error.d.ts +4 -0
- package/dist/src/shared/sandbox-recorded-data-error.js +1 -0
- package/dist/src/shared/sandbox-session-gone-error.d.ts +12 -0
- package/dist/src/shared/sandbox-session-gone-error.js +1 -0
- package/dist/src/shared/sandbox-session.d.ts +97 -83
- package/dist/src/shared/sandbox-template-error.d.ts +19 -4
- package/dist/src/shared/sandbox-template-error.js +1 -1
- package/dist/src/shared/sandbox-tool-session-error.d.ts +4 -0
- package/dist/src/shared/sandbox-tool-session-error.js +1 -0
- package/dist/src/shared/skill-package.js +1 -1
- package/dist/src/shared/skill-paths.d.ts +4 -5
- package/dist/src/shared/skill-paths.js +2 -2
- package/dist/src/shared/workflow-sandbox.d.ts +4 -41
- package/dist/src/shared/workflow-sandbox.js +1 -1
- package/dist/src/svelte/index.js +1 -1
- package/dist/src/svelte/use-eve-agent.d.ts +1 -1
- package/dist/src/svelte/use-eve-agent.js +1 -1
- package/dist/src/tools/model-output.d.ts +23 -5
- package/dist/src/tools/model-output.js +1 -1
- package/dist/src/tools/provided/ask-question-workflow.js +1 -1
- package/dist/src/tools/provided/glob.js +1 -1
- package/dist/src/tools/provided/grep.js +1 -1
- package/dist/src/tools/provided/read-file.js +1 -1
- package/dist/src/tools/provided/sleep-workflow.js +1 -1
- package/dist/src/tools/provided/workflow.js +1 -1
- package/dist/src/tools/provided/write-file.js +1 -1
- package/dist/src/tools/workflow-definition.d.ts +19 -4
- package/dist/src/vue/index.js +1 -1
- package/dist/src/vue/use-eve-agent.d.ts +1 -1
- package/dist/src/vue/use-eve-agent.js +1 -1
- package/docs/channels/custom.mdx +3 -3
- package/docs/channels/discord.mdx +279 -7
- package/docs/channels/eve.mdx +13 -2
- package/docs/channels/linq.mdx +2 -2
- package/docs/channels/mcp.mdx +2 -2
- package/docs/channels/overview.mdx +1 -1
- package/docs/channels/photon.mdx +1 -1
- package/docs/concepts/built-in-tools.md +31 -8
- package/docs/concepts/execution-model-and-durability.mdx +6 -101
- package/docs/concepts/security-model.md +2 -0
- package/docs/concepts/sessions-runs-and-streaming.md +44 -36
- package/docs/connections/openapi.mdx +2 -0
- package/docs/evals/reporters.mdx +1 -1
- package/docs/evals/running.mdx +1 -1
- package/docs/guides/client/messages.mdx +1 -1
- package/docs/guides/deployment/overview.md +4 -4
- package/docs/guides/deployment/self-hosting.md +50 -1
- package/docs/guides/dev-tui.md +1 -1
- package/docs/guides/dynamic-capabilities.md +1 -1
- package/docs/guides/frontend/overview.mdx +26 -6
- package/docs/guides/instrumentation/agent-runs.mdx +16 -0
- package/docs/guides/self-modification.md +1 -1
- package/docs/guides/session-context.md +1 -1
- package/docs/instructions.mdx +1 -1
- package/docs/reference/agent-files.md +3 -3
- package/docs/reference/cli.md +7 -2
- package/docs/reference/typescript-api.md +9 -3
- package/docs/sandbox/custom-providers.mdx +254 -0
- package/docs/sandbox/default.mdx +71 -4
- package/docs/sandbox/docker.mdx +15 -3
- package/docs/sandbox/index.mdx +27 -103
- package/docs/sandbox/just-bash.mdx +54 -0
- package/docs/sandbox/meta.json +9 -1
- package/docs/sandbox/troubleshooting.mdx +215 -0
- package/docs/sandbox/vercel.mdx +48 -7
- package/docs/skills.mdx +1 -1
- package/docs/subagents/index.mdx +2 -2
- package/docs/tools/overview.mdx +19 -0
- package/docs/tools/workflows.mdx +73 -5
- package/docs/tutorial/run-analysis.mdx +2 -2
- package/package.json +14 -20
- package/dist/src/compiled/@ai-sdk/code-mode/_run.d.ts +0 -1
- package/dist/src/compiled/@ai-sdk/code-mode/index.d.ts +0 -325
- package/dist/src/compiled/@ai-sdk/code-mode/index.js +0 -660
- package/dist/src/compiled/_chunks/workflow/dist-CyBgVS7g.js +0 -1
- package/dist/src/compiled/_chunks/workflow/dist-T5NnW-0k.js +0 -3
- package/dist/src/compiled/_chunks/workflow/helpers-DlLD3ov_.js +0 -1
- package/dist/src/compiled/_chunks/workflow/private-tQUuwBoQ.js +0 -1
- package/dist/src/compiled/_chunks/workflow/resume-hook-DMsV_b4n.js +0 -1
- package/dist/src/compiled/_chunks/workflow/serialization-DPdYS_w2.js +0 -16
- package/dist/src/compiled/_chunks/workflow/sleep-BY6leHh8.js +0 -1
- package/dist/src/compiled/_chunks/workflow/workflow-routes-CwqB063q.js +0 -1
- package/dist/src/execution/sandbox/active-handles.d.ts +0 -32
- package/dist/src/execution/sandbox/active-handles.js +0 -1
- package/dist/src/execution/sandbox/bindings/docker-session.d.ts +0 -6
- package/dist/src/execution/sandbox/bindings/docker-session.js +0 -2
- package/dist/src/execution/sandbox/bindings/immutable-resources.d.ts +0 -15
- package/dist/src/execution/sandbox/bindings/immutable-resources.js +0 -2
- package/dist/src/execution/sandbox/bindings/microsandbox-create.d.ts +0 -12
- package/dist/src/execution/sandbox/bindings/microsandbox-create.js +0 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.d.ts +0 -42
- package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.js +0 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-metadata.d.ts +0 -29
- package/dist/src/execution/sandbox/bindings/microsandbox-metadata.js +0 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-network.d.ts +0 -18
- package/dist/src/execution/sandbox/bindings/microsandbox-network.js +0 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-options.d.ts +0 -37
- package/dist/src/execution/sandbox/bindings/microsandbox-options.js +0 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-platform.d.ts +0 -21
- package/dist/src/execution/sandbox/bindings/microsandbox-platform.js +0 -21
- package/dist/src/execution/sandbox/bindings/microsandbox-process.d.ts +0 -3
- package/dist/src/execution/sandbox/bindings/microsandbox-process.js +0 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-provider-state.d.ts +0 -11
- package/dist/src/execution/sandbox/bindings/microsandbox-provider-state.js +0 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-runtime.d.ts +0 -82
- package/dist/src/execution/sandbox/bindings/microsandbox-runtime.js +0 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-templates.d.ts +0 -12
- package/dist/src/execution/sandbox/bindings/microsandbox-templates.js +0 -1
- package/dist/src/execution/sandbox/bindings/microsandbox.d.ts +0 -16
- package/dist/src/execution/sandbox/bindings/microsandbox.js +0 -1
- package/dist/src/execution/sandbox/provider-host-development.d.ts +0 -2
- package/dist/src/execution/sandbox/provider-host-development.js +0 -1
- package/dist/src/execution/sandbox/provider-host.d.ts +0 -2
- package/dist/src/execution/sandbox/provider-host.js +0 -1
- package/dist/src/execution/tool-session/sandbox.d.ts +0 -22
- package/dist/src/execution/tool-session/sandbox.js +0 -1
- package/dist/src/public/sandbox/microsandbox-sandbox.d.ts +0 -48
- package/dist/src/public/sandbox/microsandbox-sandbox.js +0 -1
- package/dist/src/public/sandbox/microsandbox.d.ts +0 -9
- package/dist/src/public/sandbox/microsandbox.js +0 -1
- package/dist/src/sandbox/providers/microsandbox.d.ts +0 -12
- package/dist/src/sandbox/providers/microsandbox.js +0 -1
- package/docs/sandbox/microsandbox.mdx +0 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
import{expectObjectRecord}from"#internal/authored-module.js";import{stripLogicalPathExtension}from"#discover/filesystem.js";import{ROOT_COMPILED_AGENT_NODE_ID}from"#compiler/manifest.js";import{validateCompiledModuleMap}from"#compiler/validate-artifact.js";import{createRuntimeSubagentRegistry}from"#runtime/subagents/registry.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{createRuntimeToolRegistry}from"#runtime/tools/registry.js";import{loadResolvedModuleExport}from"#runtime/resolve-helpers.js";import{createResolvedRuntimeTurnAgent}from"#runtime/agent/bootstrap.js";import{createWorkspacePromptSection}from"#runtime/workspace/spec.js";import{createRuntimeHookRegistry}from"#runtime/hooks/registry.js";import{resolveAgent}from"#runtime/resolve-agent.js";import{resolveDynamicSubagentDefinition}from"#runtime/resolve-dynamic-subagent.js";
|
|
1
|
+
import{expectObjectRecord}from"#internal/authored-module.js";import{stripLogicalPathExtension}from"#discover/filesystem.js";import{ROOT_COMPILED_AGENT_NODE_ID}from"#compiler/manifest.js";import{validateCompiledModuleMap}from"#compiler/validate-artifact.js";import{createRuntimeSubagentRegistry}from"#runtime/subagents/registry.js";import{ROOT_RUNTIME_AGENT_NODE_ID}from"#runtime/graph.js";import{createRuntimeToolRegistry}from"#runtime/tools/registry.js";import{createRuntimeSandboxRegistry}from"#runtime/sandbox/registry.js";import{loadResolvedModuleExport}from"#runtime/resolve-helpers.js";import{createResolvedRuntimeTurnAgent}from"#runtime/agent/bootstrap.js";import{createWorkspacePromptSection}from"#runtime/workspace/spec.js";import{createRuntimeHookRegistry}from"#runtime/hooks/registry.js";import{resolveAgent}from"#runtime/resolve-agent.js";import{resolveDynamicSubagentDefinition}from"#runtime/resolve-dynamic-subagent.js";var ResolveRuntimeAgentGraphError=class extends Error{logicalPath;nodeId;sourceId;constructor(e,t={}){super(e),this.name=`ResolveRuntimeAgentGraphError`,t.logicalPath!==void 0&&(this.logicalPath=t.logicalPath),t.nodeId!==void 0&&(this.nodeId=t.nodeId),t.sourceId!==void 0&&(this.sourceId=t.sourceId)}};async function resolveRuntimeAgentGraph(e){validateCompiledModuleMap(e.manifest,e.moduleMap);let t=new Map,n=createChildNodeIdsByParentNodeId(e.manifest),r=new Map(e.manifest.subagents.map(e=>[e.nodeId,e])),i=await resolveRuntimeAgentNode({childNodeIdsByParentNodeId:n,manifest:e.manifest,moduleMap:e.moduleMap,nodeId:ROOT_COMPILED_AGENT_NODE_ID,nodesByNodeId:t,subagentNodesById:r});return attachInheritedSandboxWorkspaceResources({manifest:e.manifest,nodesByNodeId:t}),{nodesByNodeId:t,root:i}}async function resolveRuntimeAgentNode(e){let t=toRuntimeNodeId(e.nodeId);if(e.nodesByNodeId.has(t))throw new ResolveRuntimeAgentGraphError(`Found multiple runtime agent nodes for node id "${t}".`,{nodeId:t,sourceId:e.sourceId});let n=await resolveAgent({manifest:e.manifest,moduleMap:e.moduleMap,nodeId:e.nodeId}),r=await createRuntimeToolRegistry({tools:n.tools},{deferSelfAgent:n.config?.tool===`deferred`,nodeId:t}),i=createRuntimeSandboxRegistry({sandbox:n.sandbox,workspaceResourceRoot:n.workspaceResourceRoot}),a=createRuntimeSubagentRegistry({disabledToolNames:e.manifest.sourceComposition.entries.flatMap(e=>e.kind!==`disabled`||!e.source.logicalPath.startsWith(`tools/`)?[]:[stripLogicalPathExtension(e.source.logicalPath).replace(/^tools\//,``).replaceAll(`/`,`-`)]),reservedToolNames:r.preparedTools.map(e=>e.name),subagents:await resolveRuntimeSubagents({childNodeIdsByParentNodeId:e.childNodeIdsByParentNodeId,manifest:e.manifest,moduleMap:e.moduleMap,nodesByNodeId:e.nodesByNodeId,parentNodeId:e.nodeId,subagentNodesById:e.subagentNodesById})}),o={agent:n,channels:n.channels,hookRegistry:createRuntimeHookRegistry(n.hooks),nodeId:t,sandboxRegistry:i,sourceId:e.sourceId,subagentRegistry:a,toolRegistry:r,turnAgent:createResolvedRuntimeTurnAgent({agent:n,id:e.agentId,nodeId:t,tools:[...r.preparedTools,...a.preparedTools]})};return e.nodesByNodeId.set(t,o),o}async function resolveRuntimeSubagents(e){let t=[],n=e.childNodeIdsByParentNodeId.get(e.parentNodeId)??[];for(let r of n){let n=e.subagentNodesById.get(r);if(n===void 0)throw new ResolveRuntimeAgentGraphError(`Missing compiled subagent node "${r}" while resolving runtime subagents.`,{nodeId:toRuntimeNodeId(e.parentNodeId),sourceId:r});t.push(await resolveRuntimeSubagent({childNodeIdsByParentNodeId:e.childNodeIdsByParentNodeId,moduleMap:e.moduleMap,nodesByNodeId:e.nodesByNodeId,sourceRef:n,subagentNodesById:e.subagentNodesById}))}for(let n of e.manifest.remoteAgents)t.push(await resolveRuntimeRemoteAgent({moduleMap:e.moduleMap,nodeScopeId:e.parentNodeId,sourceRef:n}));return t}async function resolveRuntimeSubagent(e){let t={...e.sourceRef.configResolver===void 0?{description:e.sourceRef.description,tool:e.sourceRef.agent.config.tool}:{dynamic:await resolveDynamicSubagentDefinition({definition:e.sourceRef.configResolver,moduleMap:e.moduleMap,nodeId:e.sourceRef.nodeId})},kind:`subagent`,logicalPath:e.sourceRef.logicalPath,name:e.sourceRef.name,nodeId:toRuntimeNodeId(e.sourceRef.nodeId),sourceId:e.sourceRef.sourceId,sourceKind:`module`};return await resolveRuntimeAgentNode({agentId:e.sourceRef.name,childNodeIdsByParentNodeId:e.childNodeIdsByParentNodeId,manifest:e.sourceRef.agent,moduleMap:e.moduleMap,nodeId:e.sourceRef.nodeId,nodesByNodeId:e.nodesByNodeId,sourceId:e.sourceRef.sourceId,subagentNodesById:e.subagentNodesById}),t}async function resolveRuntimeRemoteAgent(e){let t=await loadResolvedModuleExport({definition:e.sourceRef,kindLabel:`remote agent`,moduleMap:e.moduleMap,nodeId:e.nodeScopeId}),n=expectObjectRecord(t,`Expected remote agent source "${e.sourceRef.logicalPath}" to export an object.`),r={description:e.sourceRef.description,kind:`remote`,logicalPath:e.sourceRef.logicalPath,name:e.sourceRef.name,nodeId:toRuntimeNodeId(e.sourceRef.nodeId),path:e.sourceRef.path,sourceId:e.sourceRef.sourceId,sourceKind:`module`,tool:e.sourceRef.tool,url:await resolveRemoteAgentUrl({bakedUrl:e.sourceRef.url,logicalPath:e.sourceRef.logicalPath,resolvedUrl:n.url})};typeof n.auth==`function`&&(r.auth=n.auth),n.forwardPrincipal===!0&&(r.forwardPrincipal=!0);let i=resolveRemoteAgentHeaders(n.headers);return i!==void 0&&(r.headers=i),r}async function resolveRemoteAgentUrl(e){if(typeof e.resolvedUrl==`function`){let t=await e.resolvedUrl();if(typeof t!=`string`||t.length===0)throw Error(`Remote agent "${e.logicalPath}" url function must return a non-empty string.`);return t}let t=e.bakedUrl??(typeof e.resolvedUrl==`string`?e.resolvedUrl:``);if(t.length===0)throw Error(`Remote agent "${e.logicalPath}" is missing a url.`);return t}function resolveRemoteAgentHeaders(e){if(e===void 0)return;if(typeof e==`function`)return e;if(typeof e!=`object`||!e||Array.isArray(e))return;let t={};for(let[n,r]of Object.entries(e))typeof r==`string`&&(t[n]=r);return t}function attachInheritedSandboxWorkspaceResources(e){let t=new Map(e.manifest.subagents.map(e=>[e.nodeId,e.parentNodeId]));for(let[n,r]of e.nodesByNodeId){if(r.sandboxRegistry.sandbox.definition.kind!==`parent`)continue;if(r.agent.dynamicSkillResolvers.length>0)throw new ResolveRuntimeAgentGraphError(`Sandbox "${r.sandboxRegistry.sandbox.definition.logicalPath}" selects parent.sandbox but agent node "${n}" defines dynamic skills. Remove the child dynamic skills or give the child its own sandbox.`,{nodeId:n});let i=t.get(n);if(i===void 0)throw new ResolveRuntimeAgentGraphError(`Sandbox "${r.sandboxRegistry.sandbox.definition.logicalPath}" selects parent.sandbox but agent node "${n}" has no parent. Only a declared subagent can share its parent's sandbox with defineParentSandbox(). Give this agent its own sandbox with defineSandbox() and an exported environment.`,{nodeId:n});let a=resolveSandboxOwnerNode({nodeId:i,nodesByNodeId:e.nodesByNodeId,parentNodeIdByChildNodeId:t});r.sandboxRegistry.sandbox.inheritance={definition:a.sandboxRegistry.sandbox.definition,nodeId:a.nodeId,workspaceResourceRoot:a.sandboxRegistry.sandbox.workspaceResourceRoot};let o=createWorkspacePromptSection(a.agent.workspaceSpec);o!==void 0&&(r.turnAgent.instructions=[...r.turnAgent.instructions,o])}}function resolveSandboxOwnerNode(e){let t=e.nodesByNodeId.get(toRuntimeNodeId(e.nodeId));if(t===void 0)throw new ResolveRuntimeAgentGraphError(`Missing parent runtime node "${e.nodeId}".`,{nodeId:e.nodeId});if(t.sandboxRegistry.sandbox.definition.kind!==`parent`)return t;let n=e.parentNodeIdByChildNodeId.get(e.nodeId);if(n===void 0)throw new ResolveRuntimeAgentGraphError(`Inherited sandbox node "${e.nodeId}" has no parent.`,{nodeId:e.nodeId});return resolveSandboxOwnerNode({...e,nodeId:n})}function createChildNodeIdsByParentNodeId(e){let t=new Map;for(let n of e.subagents){let e=t.get(n.parentNodeId);if(e===void 0){t.set(n.parentNodeId,[n.nodeId]);continue}e.push(n.nodeId)}return t}function toRuntimeNodeId(e){return e===ROOT_COMPILED_AGENT_NODE_ID?ROOT_RUNTIME_AGENT_NODE_ID:e}export{resolveRuntimeAgentGraph};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{normalizeAgentDefinition}from"#internal/authored-definition/core.js";import{resolveConnectionDefinition}from"#runtime/resolve-connection.js";import{createResolvedModuleSourceRef,loadResolvedModuleExport}from"#runtime/resolve-helpers.js";import{resolveChannelDefinition}from"#runtime/resolve-channel.js";import{resolveDynamicConnectionDefinition}from"#runtime/resolve-dynamic-connection.js";import{resolveHookDefinition}from"#runtime/resolve-hook.js";import{resolveSandboxDefinition}from"#runtime/resolve-sandbox.js";import{resolveDynamicInstructionsDefinition}from"#runtime/resolve-dynamic-instructions.js";import{resolveDynamicSkillDefinition}from"#runtime/resolve-dynamic-skill.js";import{resolveDynamicToolDefinition}from"#runtime/resolve-dynamic-tool.js";import{resolveToolDefinition}from"#runtime/resolve-tool.js";import{resolveMemoryDefinition}from"#runtime/resolve-memory.js";async function resolveAgent(e){let t=e.manifest.skills.map(t=>({...t,owner:requireCompiledSourceOwner(e.manifest,t),metadata:t.metadata===void 0?void 0:{...t.metadata}})),n=await Promise.all(e.manifest.channelRoutes.effective.map(t=>resolveChannelDefinition(t,e.moduleMap,e.nodeId))),r=await Promise.all(e.manifest.tools.map(t=>resolveToolDefinition(t,e.moduleMap,e.nodeId,requireBindingOwner(e.manifest,t.sourceId)))),i=await Promise.all(e.manifest.dynamicConnections.map(t=>resolveDynamicConnectionDefinition(t,e.moduleMap,e.nodeId))),a=await Promise.all((e.manifest.dynamicInstructions??[]).map(t=>resolveDynamicInstructionsDefinition(t,e.moduleMap,e.nodeId))),o=await Promise.all((e.manifest.dynamicSkills??[]).map(t=>resolveDynamicSkillDefinition(t,e.moduleMap,e.nodeId))),s=await Promise.all(e.manifest.dynamicTools.map(t=>resolveDynamicToolDefinition(t,e.moduleMap,e.nodeId))),c=await Promise.all(e.manifest.hooks.map(t=>resolveHookDefinition(t,e.moduleMap,e.nodeId))),l=await Promise.all(e.manifest.connections.map(t=>resolveConnectionDefinition(t,e.moduleMap,e.nodeId))),u=await Promise.all(e.manifest.memories.map(t=>resolveMemoryDefinition(t,e.moduleMap,e.nodeId))),d=await resolveSandboxDefinition(e.manifest.sandbox,e.moduleMap,e.nodeId),f=e.manifest.instructions.map(t=>createResolvedInstructionsDefinition(e.manifest,t)),p=e.manifest.workspaceResourceRoot,m={channels:n,connections:l,dynamicConnectionResolvers:i,dynamicInstructionsResolvers:a,dynamicSkillResolvers:o,dynamicToolResolvers:s,hooks:c,instructions:f,metadata:{agentRoot:e.manifest.agentRoot,appRoot:e.manifest.appRoot,diagnosticsSummary:e.manifest.diagnosticsSummary},memories:u,sandbox:d,workspaceResourceRoot:p,skills:t,tools:r,workspaceSpec:{rootEntries:[...p.rootEntries]}};return`config`in e.manifest?{...m,config:createResolvedAgentConfig(e.manifest,await loadSessionUsageLimit(e.manifest,e.moduleMap,e.nodeId))}:m}async function loadSessionUsageLimit(e,t,n){let r=e.config.source;if(e.config.limits?.sessionUsage!==!0||r===void 0)return;let i=await loadResolvedModuleExport({definition:r,kindLabel:`agent config`,moduleMap:t,nodeId:n});return normalizeAgentDefinition(i,`Expected the authored agent config export "${r.exportName??`default`}" from "${r.logicalPath}" to match the public eve shape.`).limits?.sessionUsage}function requireBindingOwner(e,t){let n=e.bindings[t];if(n===void 0)throw Error(`Compiled source "${t}" has no binding.`);return n.owner}function createResolvedInstructionsDefinition(e,t){return{content:t.content,name:t.name,owner:requireCompiledSourceOwner(e,t),logicalPath:t.logicalPath,role:t.role,sourceId:t.sourceId,sourceKind:t.sourceKind}}function requireCompiledSourceOwner(e,t){let n=e.bindings[t.sourceId]?.owner??t.owner;if(n===void 0)throw Error(`Compiled source "${t.sourceId}" has no owner.`);return n}function createResolvedAgentConfig(e,t){let n={name:e.config.name};if(e.config.defaultTools!==void 0&&(n.defaultTools=e.config.defaultTools),e.config.description!==void 0&&(n.description=e.config.description),e.config.compaction!==void 0){let t={};e.config.compaction.model!==void 0&&(t.model=e.config.compaction.model.source===void 0?{contextWindowTokens:e.config.compaction.model.contextWindowTokens,id:e.config.compaction.model.id,maxOutputTokens:e.config.compaction.model.maxOutputTokens,providerOptions:e.config.compaction.model.providerOptions}:{contextWindowTokens:e.config.compaction.model.contextWindowTokens,id:e.config.compaction.model.id,maxOutputTokens:e.config.compaction.model.maxOutputTokens,providerOptions:e.config.compaction.model.providerOptions,source:{exportName:e.config.compaction.model.source.exportName,sourceKind:`module`,logicalPath:e.config.compaction.model.source.logicalPath,sourceId:e.config.compaction.model.source.sourceId}}),e.config.compaction.thresholdPercent!==void 0&&(t.thresholdPercent=e.config.compaction.thresholdPercent),n.compaction=t}if(e.config.experimental!==void 0&&(n.experimental={workflow:e.config.experimental.workflow===void 0?void 0:{modelCallsPerStep:e.config.experimental.workflow.modelCallsPerStep,retention:e.config.experimental.workflow.retention,world:e.config.experimental.workflow.world}}),e.config.reasoning!==void 0&&(n.reasoning=e.config.reasoning),e.config.source!==void 0&&(n.source=createResolvedModuleSourceRef(e.config.source)),e.config.tool!==void 0&&(n.tool=e.config.tool),e.config.limits!==void 0&&(n.limits={sessionTimeoutMs:e.config.limits.sessionTimeoutMs,sessionUsage:t}),e.config.dynamicModel!==void 0)return{...n,dynamicModel:{...createResolvedModuleSourceRef(e.config.dynamicModel),eventNames:[...e.config.dynamicModel.eventNames]}};let r=e.config.model;return{...n,model:r.source===void 0?{id:r.id,contextWindowTokens:r.contextWindowTokens,maxOutputTokens:r.maxOutputTokens,providerOptions:r.providerOptions}:{contextWindowTokens:r.contextWindowTokens,id:r.id,maxOutputTokens:r.maxOutputTokens,promptCache:r.promptCache,providerOptions:r.providerOptions,source:{exportName:r.source.exportName,sourceKind:`module`,logicalPath:r.source.logicalPath,sourceId:r.source.sourceId}}}}export{resolveAgent};
|
|
1
|
+
import{normalizeAgentDefinition}from"#internal/authored-definition/core.js";import{resolveConnectionDefinition}from"#runtime/resolve-connection.js";import{createResolvedModuleSourceRef,loadResolvedModuleExport}from"#runtime/resolve-helpers.js";import{resolveChannelDefinition}from"#runtime/resolve-channel.js";import{resolveDynamicConnectionDefinition}from"#runtime/resolve-dynamic-connection.js";import{resolveHookDefinition}from"#runtime/resolve-hook.js";import{resolveSandboxDefinition}from"#runtime/resolve-sandbox.js";import{resolveDynamicInstructionsDefinition}from"#runtime/resolve-dynamic-instructions.js";import{resolveDynamicSkillDefinition}from"#runtime/resolve-dynamic-skill.js";import{resolveDynamicToolDefinition}from"#runtime/resolve-dynamic-tool.js";import{resolveToolDefinition}from"#runtime/resolve-tool.js";import{resolveMemoryDefinition}from"#runtime/resolve-memory.js";async function resolveAgent(e){let t=e.manifest.skills.map(t=>({...t,owner:requireCompiledSourceOwner(e.manifest,t),metadata:t.metadata===void 0?void 0:{...t.metadata}})),n=await Promise.all(e.manifest.channelRoutes.effective.map(t=>resolveChannelDefinition(t,e.moduleMap,e.nodeId))),r=await Promise.all(e.manifest.tools.map(t=>resolveToolDefinition(t,e.moduleMap,e.nodeId,requireBindingOwner(e.manifest,t.sourceId)))),i=await Promise.all(e.manifest.dynamicConnections.map(t=>resolveDynamicConnectionDefinition(t,e.moduleMap,e.nodeId))),a=await Promise.all((e.manifest.dynamicInstructions??[]).map(t=>resolveDynamicInstructionsDefinition(t,e.moduleMap,e.nodeId))),o=await Promise.all((e.manifest.dynamicSkills??[]).map(t=>resolveDynamicSkillDefinition(t,e.moduleMap,e.nodeId))),s=await Promise.all(e.manifest.dynamicTools.map(t=>resolveDynamicToolDefinition(t,e.moduleMap,e.nodeId))),c=await Promise.all(e.manifest.hooks.map(t=>resolveHookDefinition(t,e.moduleMap,e.nodeId))),l=await Promise.all(e.manifest.connections.map(t=>resolveConnectionDefinition(t,e.moduleMap,e.nodeId))),u=await Promise.all(e.manifest.memories.map(t=>resolveMemoryDefinition(t,e.moduleMap,e.nodeId))),d=await resolveSandboxDefinition(e.manifest.sandbox,e.moduleMap,e.nodeId),f=e.manifest.instructions.map(t=>createResolvedInstructionsDefinition(e.manifest,t)),p=e.manifest.workspaceResourceRoot,m={channels:n,connections:l,dynamicConnectionResolvers:i,dynamicInstructionsResolvers:a,dynamicSkillResolvers:o,dynamicToolResolvers:s,hooks:c,instructions:f,metadata:{agentRoot:e.manifest.agentRoot,appRoot:e.manifest.appRoot,diagnosticsSummary:e.manifest.diagnosticsSummary},memories:u,sandbox:d,workspaceResourceRoot:p,skills:t,tools:r,workspaceSpec:{rootEntries:[...p.rootEntries]}};return`config`in e.manifest?{...m,config:createResolvedAgentConfig(e.manifest,await loadSessionUsageLimit(e.manifest,e.moduleMap,e.nodeId))}:m}async function loadSessionUsageLimit(e,t,n){let r=e.config.source;if(e.config.limits?.sessionUsage!==!0||r===void 0)return;let i=await loadResolvedModuleExport({definition:r,kindLabel:`agent config`,moduleMap:t,nodeId:n});return normalizeAgentDefinition(i,`Expected the authored agent config export "${r.exportName??`default`}" from "${r.logicalPath}" to match the public eve shape.`).limits?.sessionUsage}function requireBindingOwner(e,t){let n=e.bindings[t];if(n===void 0)throw Error(`Compiled source "${t}" has no binding.`);return n.owner}function createResolvedInstructionsDefinition(e,t){return{content:t.content,name:t.name,owner:requireCompiledSourceOwner(e,t),logicalPath:t.logicalPath,role:t.role,sourceId:t.sourceId,sourceKind:t.sourceKind}}function requireCompiledSourceOwner(e,t){let n=e.bindings[t.sourceId]?.owner??t.owner;if(n===void 0)throw Error(`Compiled source "${t.sourceId}" has no owner.`);return n}function createResolvedAgentConfig(e,t){let n={name:e.config.name};if(e.config.defaultTools!==void 0&&(n.defaultTools=e.config.defaultTools),e.config.description!==void 0&&(n.description=e.config.description),e.config.compaction!==void 0){let t={};e.config.compaction.model!==void 0&&(t.model=e.config.compaction.model.source===void 0?{contextWindowTokens:e.config.compaction.model.contextWindowTokens,id:e.config.compaction.model.id,maxOutputTokens:e.config.compaction.model.maxOutputTokens,providerOptions:e.config.compaction.model.providerOptions}:{contextWindowTokens:e.config.compaction.model.contextWindowTokens,id:e.config.compaction.model.id,maxOutputTokens:e.config.compaction.model.maxOutputTokens,providerOptions:e.config.compaction.model.providerOptions,source:{exportName:e.config.compaction.model.source.exportName,sourceKind:`module`,logicalPath:e.config.compaction.model.source.logicalPath,sourceId:e.config.compaction.model.source.sourceId},sourceField:e.config.compaction.model.sourceField}),e.config.compaction.thresholdPercent!==void 0&&(t.thresholdPercent=e.config.compaction.thresholdPercent),n.compaction=t}if(e.config.experimental!==void 0&&(n.experimental={workflow:e.config.experimental.workflow===void 0?void 0:{modelCallsPerStep:e.config.experimental.workflow.modelCallsPerStep,retention:e.config.experimental.workflow.retention,world:e.config.experimental.workflow.world}}),e.config.reasoning!==void 0&&(n.reasoning=e.config.reasoning),e.config.source!==void 0&&(n.source=createResolvedModuleSourceRef(e.config.source)),e.config.tool!==void 0&&(n.tool=e.config.tool),e.config.limits!==void 0&&(n.limits={sessionTimeoutMs:e.config.limits.sessionTimeoutMs,sessionUsage:t}),e.config.dynamicModel!==void 0)return{...n,dynamicModel:{...createResolvedModuleSourceRef(e.config.dynamicModel),eventNames:[...e.config.dynamicModel.eventNames]}};let r=e.config.model;return{...n,model:r.source===void 0?{id:r.id,contextWindowTokens:r.contextWindowTokens,maxOutputTokens:r.maxOutputTokens,providerOptions:r.providerOptions}:{contextWindowTokens:r.contextWindowTokens,id:r.id,maxOutputTokens:r.maxOutputTokens,promptCache:r.promptCache,providerOptions:r.providerOptions,source:{exportName:r.source.exportName,sourceKind:`module`,logicalPath:r.source.logicalPath,sourceId:r.source.sourceId}}}}export{resolveAgent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{setChannelInstrumentationKind}from"#channel/compiled-channel.js";import{toErrorMessage}from"#shared/errors.js";import{normalizeChannelDefinition}from"#internal/authored-definition/channel.js";import{ResolveAgentError,createResolvedModuleSourceRef,loadResolvedModuleExport}from"#runtime/resolve-helpers.js";import{
|
|
1
|
+
import{setChannelInstrumentationKind}from"#channel/compiled-channel.js";import{toErrorMessage}from"#shared/errors.js";import{normalizeChannelDefinition}from"#internal/authored-definition/channel.js";import{ResolveAgentError,createResolvedModuleSourceRef,loadResolvedModuleExport}from"#runtime/resolve-helpers.js";import{isHttpRouteDefinition,isWebSocketRouteDefinition}from"#channel/routes.js";import{HTTP_ADAPTER_KIND}from"#channel/http.js";async function resolveChannelDefinition(e,t,n){try{let r=await loadResolvedModuleExport({definition:e,kindLabel:`channel`,moduleMap:t,nodeId:n}),i=normalizeChannelDefinition(r,`Expected the channel export "${e.exportName??`default`}" from "${e.logicalPath}" to match the public eve shape.`),a=createResolvedModuleSourceRef({exportName:e.exportName,logicalPath:e.logicalPath,sourceId:e.sourceId}),o=i.routes.find(t=>t.method.toUpperCase()===e.method.toUpperCase()&&t.path===e.urlPath),s=`channel:${e.name}`;setChannelInstrumentationKind(i,s);let c=i.adapter;c&&c.kind!==HTTP_ADAPTER_KIND&&(c.kind=s);let l=resolveHttpRoute(e,o),u=resolveWebSocketRoute(e,o);return{name:e.name,method:e.method,urlPath:e.urlPath,cors:e.cors,fetch:async(e,t)=>l?l.handler(e,t):Response.json({error:`No matching route handler.`,ok:!1},{status:404}),handler:l?.handler,websocket:u?.handler,receive:i.receive,definition:i,adapter:c,turnPolicy:i.turnPolicy,...a}}catch(t){throw t instanceof ResolveAgentError?t:new ResolveAgentError(`Failed to attach the channel definition from "${e.logicalPath}": ${toErrorMessage(t)}`,{logicalPath:e.logicalPath,sourceId:e.sourceId})}}function resolveHttpRoute(e,t){if(t!==void 0&&e.method!==`WEBSOCKET`&&isHttpRouteDefinition(t))return t}function resolveWebSocketRoute(e,t){if(t!==void 0&&e.method===`WEBSOCKET`&&isWebSocketRouteDefinition(t))return t}export{resolveChannelDefinition};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{expectObjectRecord,getAuthoredModuleExport}from"#internal/authored-module.js";import{ROOT_COMPILED_AGENT_NODE_ID}from"#compiler/manifest.js";import{getBoundSandboxEnvironment,isSandboxEnvironment}from"#shared/sandbox-environment.js";import{defineParentSandbox}from"#public/definitions/sandbox.js";import{ResolveAgentError}from"#runtime/resolve-helpers.js";async function resolveSandboxDefinition(e,t,n){if(e.inheritsParent===!0)return{exportName:e.exportName,kind:`parent`,logicalPath:e.logicalPath,revisionHash:e.revisionHash,selector:defineParentSandbox(),sourceId:e.sourceId,sourceKind:`module`};let r=t.nodes[n??ROOT_COMPILED_AGENT_NODE_ID]?.modules[e.sourceId],i=expectObjectRecord(r,`Missing sandbox module "${e.logicalPath}".`),a=getAuthoredModuleExport(i,e);if(typeof a!=`function`)throw new ResolveAgentError(`Sandbox "${e.logicalPath}" does not export a selector.`);let o=e.environmentExportName?i[e.environmentExportName]:getBoundSandboxEnvironment(a),s={exportName:e.exportName,logicalPath:e.logicalPath,revisionHash:e.revisionHash,selector:a,sourceId:e.sourceId,sourceKind:`module`};if(!isSandboxEnvironment(o))throw new ResolveAgentError(`Sandbox "${e.logicalPath}" has no environment
|
|
1
|
+
import{expectObjectRecord,getAuthoredModuleExport}from"#internal/authored-module.js";import{ROOT_COMPILED_AGENT_NODE_ID}from"#compiler/manifest.js";import{getBoundSandboxEnvironment,isSandboxEnvironment}from"#shared/sandbox-environment.js";import{defineParentSandbox}from"#public/definitions/sandbox.js";import{ResolveAgentError}from"#runtime/resolve-helpers.js";async function resolveSandboxDefinition(e,t,n){if(e.inheritsParent===!0)return{exportName:e.exportName,kind:`parent`,logicalPath:e.logicalPath,revisionHash:e.revisionHash,selector:defineParentSandbox(),sourceId:e.sourceId,sourceKind:`module`};let r=t.nodes[n??ROOT_COMPILED_AGENT_NODE_ID]?.modules[e.sourceId],i=expectObjectRecord(r,`Missing sandbox module "${e.logicalPath}".`),a=getAuthoredModuleExport(i,e);if(typeof a!=`function`)throw new ResolveAgentError(`Sandbox "${e.logicalPath}" does not export a selector.`);let o=e.environmentExportName?i[e.environmentExportName]:getBoundSandboxEnvironment(a),s={exportName:e.exportName,logicalPath:e.logicalPath,revisionHash:e.revisionHash,selector:a,sourceId:e.sourceId,sourceKind:`module`};if(!isSandboxEnvironment(o))throw new ResolveAgentError(`Sandbox "${e.logicalPath}" has no environment. Export the environment its selector opens, for example \`export const environment = DefaultSandbox.environment();\`.`);return{...s,environment:o,kind:`independent`}}export{resolveSandboxDefinition};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{randomUUID}from"node:crypto";import{readFile,rename,rm,writeFile}from"node:fs/promises";import{resolveRuntimeCompilerArtifactPaths}from"#runtime/loaders/artifact-paths.js";import{createSandboxPreparedArtifactsManifest,sandboxPreparedArtifactsManifestSchema}from"#shared/sandbox-prepared-artifacts.js";import{readBundledCompiledArtifacts}from"#runtime/loaders/bundled-artifacts.js";async function writeSandboxPreparedArtifactsManifest(e){if(e.entries.length===0)return;let t=`${e.compileDirectoryPath}/sandbox-prepared-artifacts.json`,n=null;try{n=sandboxPreparedArtifactsManifestSchema.parse(JSON.parse(await readFile(t,`utf8`)))}catch(e){if(!(e instanceof Error&&`code`in e&&e.code===`ENOENT`))throw e}let r=new Map(n?.entries.map(e=>[e.nodeId,e]));for(let t of e.entries)r.set(t.nodeId,t);let i=`${t}.${randomUUID()}.tmp`;try{await writeFile(i,`${JSON.stringify(createSandboxPreparedArtifactsManifest([...r.values()]),null,2)}\n`),await rename(i,t)}finally{await rm(i,{force:!0})}}async function loadSandboxPreparedArtifact(e){let t=(await loadSandboxPreparedArtifactsManifest(e.compiledArtifactsSource))?.entries.find(t=>t.nodeId===e.nodeId);if(t!==void 0&&t.providerName!==e.providerName)throw Error(`
|
|
1
|
+
import{randomUUID}from"node:crypto";import{readFile,rename,rm,writeFile}from"node:fs/promises";import{resolveRuntimeCompilerArtifactPaths}from"#runtime/loaders/artifact-paths.js";import{createSandboxPreparedArtifactsManifest,sandboxPreparedArtifactsManifestSchema}from"#shared/sandbox-prepared-artifacts.js";import{readBundledCompiledArtifacts}from"#runtime/loaders/bundled-artifacts.js";async function writeSandboxPreparedArtifactsManifest(e){if(e.entries.length===0)return;let t=`${e.compileDirectoryPath}/sandbox-prepared-artifacts.json`,n=null;try{n=sandboxPreparedArtifactsManifestSchema.parse(JSON.parse(await readFile(t,`utf8`)))}catch(e){if(!(e instanceof Error&&`code`in e&&e.code===`ENOENT`))throw e}let r=new Map(n?.entries.map(e=>[e.nodeId,e]));for(let t of e.entries)r.set(t.nodeId,t);let i=`${t}.${randomUUID()}.tmp`;try{await writeFile(i,`${JSON.stringify(createSandboxPreparedArtifactsManifest([...r.values()]),null,2)}\n`),await rename(i,t)}finally{await rm(i,{force:!0})}}async function loadSandboxPreparedArtifact(e){let t=(await loadSandboxPreparedArtifactsManifest(e.compiledArtifactsSource))?.entries.find(t=>t.nodeId===e.nodeId);if(t!==void 0&&t.providerName!==e.providerName)throw Error(`The prepared sandbox artifact for agent node "${e.nodeId}" was created with provider "${t.providerName}", but this process selects provider "${e.providerName}". The sandbox file must select the same provider during the build and at runtime, so a selection that reads the host, such as \`process.env\` or Docker availability, can disagree. Select one provider explicitly, or use DefaultSandbox, which records its choice when the sandbox is prepared. Then rebuild with \`eve build\`, or restart \`eve dev\`.`);return t?.artifact}async function loadSandboxPreparedArtifactsManifest(e){if(e.kind===`bundled`)return readBundledCompiledArtifacts()?.sandboxPreparedArtifacts??null;let t=resolveRuntimeCompilerArtifactPaths(e.appRoot).sandboxPreparedArtifactsPath;try{return sandboxPreparedArtifactsManifestSchema.parse(JSON.parse(await readFile(t,`utf8`)))}catch(e){if(e instanceof Error&&`code`in e&&e.code===`ENOENT`)return null;throw e}}export{loadSandboxPreparedArtifact,writeSandboxPreparedArtifactsManifest};
|
|
@@ -23,6 +23,8 @@ export interface RuntimeRegisteredSandbox {
|
|
|
23
23
|
readonly workspaceResourceRoot: CompiledWorkspaceResourceRoot;
|
|
24
24
|
};
|
|
25
25
|
}
|
|
26
|
+
/** The definition that opens `sandbox`: its owner's for a subagent that shares its parent's sandbox. */
|
|
27
|
+
export declare function owningSandboxDefinition(sandbox: RuntimeRegisteredSandbox): ResolvedSandboxDefinition;
|
|
26
28
|
/**
|
|
27
29
|
* Runtime-owned registry that exposes the resolved sandbox to the harness
|
|
28
30
|
* startup path.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function createRuntimeSandboxRegistry(e){let t=e.sandbox;if(t.kind===`parent`&&(e.workspaceResourceRoot.contentHash!==void 0||e.workspaceResourceRoot.rootEntries.length>0))throw Error(`Sandbox "${t.logicalPath}" selects parent.sandbox but has managed workspace resources. Remove the child workspace or give the child its own sandbox.`);return{sandbox:{definition:t,workspaceResourceRoot:e.workspaceResourceRoot}}}export{createRuntimeSandboxRegistry};
|
|
1
|
+
function owningSandboxDefinition(e){return e.inheritance?.definition??e.definition}function createRuntimeSandboxRegistry(e){let t=e.sandbox;if(t.kind===`parent`&&(e.workspaceResourceRoot.contentHash!==void 0||e.workspaceResourceRoot.rootEntries.length>0))throw Error(`Sandbox "${t.logicalPath}" selects parent.sandbox but has managed workspace resources. Remove the child workspace or give the child its own sandbox.`);return{sandbox:{definition:t,workspaceResourceRoot:e.workspaceResourceRoot}}}export{createRuntimeSandboxRegistry,owningSandboxDefinition};
|
|
@@ -3,7 +3,11 @@ import type { WorkflowServeContext, WorkflowServeReceive } from "#public/tools/i
|
|
|
3
3
|
export interface AgentToolInput {
|
|
4
4
|
readonly message: string;
|
|
5
5
|
}
|
|
6
|
+
export interface AgentWithModelToolInput extends AgentToolInput {
|
|
7
|
+
readonly model: string;
|
|
8
|
+
}
|
|
6
9
|
type AgentToolReceive = WorkflowServeReceive<AgentToolInput>;
|
|
10
|
+
type AgentWithModelToolReceive = WorkflowServeReceive<AgentWithModelToolInput>;
|
|
7
11
|
/**
|
|
8
12
|
* The `serve` body of every agent tool: local, remote, dynamic, and the
|
|
9
13
|
* `agent` copy of the root. Each task talks to one session with the agent. A
|
|
@@ -11,4 +15,6 @@ type AgentToolReceive = WorkflowServeReceive<AgentToolInput>;
|
|
|
11
15
|
* response settles every call it answered.
|
|
12
16
|
*/
|
|
13
17
|
export declare function agentToolServeWorkflow(receive: AgentToolReceive, ctx: WorkflowServeContext<string>): Promise<never>;
|
|
18
|
+
/** The opt-in root-copy tool whose model-facing input selects the child model. */
|
|
19
|
+
export declare function agentWithModelServeWorkflow(receive: AgentWithModelToolReceive, ctx: WorkflowServeContext<string>): Promise<never>;
|
|
14
20
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
async function agentToolServeWorkflow(e,t){"use workflow";let n=t.agent(t.toolName),r=sendToAgent(n,await e()),i=e();for(;;){let a=await nextCallOrResult(i,r);if(a.kind===`call`){r=await forwardCall(n,r,a.call),i=e();continue}if(!r.signal.aborted){if(a.result.status===`failed`)throw Error(`The agent's turn failed: ${a.result.error?.message??`no reason given`}\nThis task has ended; to retry, call ${t.toolName} without taskId.`);let o=e();if(o!==i){r=sendToAgent(n,await i),i=o;continue}t.reply(a.result.message??``)}r=sendToAgent(n,await i),i=e()}}function sendToAgent(e,t){return{result:e.send(t.input.message,{signal:t.abortSignal}).then(e=>e.result()),signal:t.abortSignal}}async function nextCallOrResult(e,t){return await Promise.race([t.result.then(e=>({kind:`result`,result:e})),e.then(e=>({call:e,kind:`call`}))])}async function forwardCall(e,t,n){return t.signal.aborted&&await t.result.catch(()=>void 0),sendToAgent(e,n)}agentToolServeWorkflow.workflowId=`workflow//eve//agentToolServeWorkflow`;export{agentToolServeWorkflow};
|
|
1
|
+
async function agentToolServeWorkflow(e,t){"use workflow";let n=t.agent(t.toolName),r=sendToAgent(n,await e()),i=e();for(;;){let a=await nextCallOrResult(i,r);if(a.kind===`call`){r=await forwardCall(n,r,a.call),i=e();continue}if(!r.signal.aborted){if(a.result.status===`failed`)throw Error(`The agent's turn failed: ${a.result.error?.message??`no reason given`}\nThis task has ended; to retry, call ${t.toolName} without taskId.`);let o=e();if(o!==i){r=sendToAgent(n,await i),i=o;continue}t.reply(a.result.message??``)}r=sendToAgent(n,await i),i=e()}}async function agentWithModelServeWorkflow(e,t){"use workflow";let n=await e(),r=n.input.model.trim();if(r===``)throw TypeError(`agent model must not be empty.`);let i=t.agent(`agent`,{model:r}),a=sendToModelAgent(i,n,r),o=e();for(;;){let n=await nextModelCallOrResult(o,a);if(n.kind===`call`){a=await forwardModelCall(i,a,n.call,r),o=e();continue}if(!a.signal.aborted){if(n.result.status===`failed`)throw Error(`The agent's turn failed: ${n.result.error?.message??`no reason given`}\nThis task has ended; to retry, call ${t.toolName} without taskId.`);let s=e();if(s!==o){a=sendToModelAgent(i,await o,r),o=s;continue}t.reply(n.result.message??``)}a=sendToModelAgent(i,await o,r),o=e()}}function sendToAgent(e,t){return{result:e.send(t.input.message,{signal:t.abortSignal}).then(e=>e.result()),signal:t.abortSignal}}function sendToModelAgent(e,t,n){if(t.input.model!==n)throw Error(`An agent task keeps the model it started with. This task has ended; start a new task to use another model.`);return{result:e.send(t.input.message,{signal:t.abortSignal}).then(e=>e.result()),signal:t.abortSignal}}async function nextCallOrResult(e,t){return await Promise.race([t.result.then(e=>({kind:`result`,result:e})),e.then(e=>({call:e,kind:`call`}))])}async function nextModelCallOrResult(e,t){return await Promise.race([t.result.then(e=>({kind:`result`,result:e})),e.then(e=>({call:e,kind:`call`}))])}async function forwardCall(e,t,n){return t.signal.aborted&&await t.result.catch(()=>void 0),sendToAgent(e,n)}async function forwardModelCall(e,t,n,r){return t.signal.aborted&&await t.result.catch(()=>void 0),sendToModelAgent(e,n,r)}agentToolServeWorkflow.workflowId=`workflow//eve//agentToolServeWorkflow`,agentWithModelServeWorkflow.workflowId=`workflow//eve@0.83.0//agentWithModelServeWorkflow`;export{agentToolServeWorkflow,agentWithModelServeWorkflow};
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
readonly content: Buffer;
|
|
7
|
-
readonly path: string;
|
|
1
|
+
import type { SandboxProviderResourceFile } from "#shared/sandbox-provider.js";
|
|
2
|
+
/** The files of one resource directory, split into the trees sandbox providers receive. */
|
|
3
|
+
export interface MaterializedResourceTrees {
|
|
4
|
+
readonly skills: readonly SandboxProviderResourceFile[];
|
|
5
|
+
readonly workspace: readonly SandboxProviderResourceFile[];
|
|
8
6
|
}
|
|
9
7
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
8
|
+
* Reads a compiled resource directory into its `workspace/` and `skills/`
|
|
9
|
+
* trees, each sorted by relative path. A directory with neither subdirectory
|
|
10
|
+
* is read as the workspace tree itself.
|
|
13
11
|
*/
|
|
14
|
-
export declare function materializeWorkspaceDirectory(sourceDirectoryPath: string): Promise<
|
|
15
|
-
export {};
|
|
12
|
+
export declare function materializeWorkspaceDirectory(sourceDirectoryPath: string): Promise<MaterializedResourceTrees>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{readFile,readdir}from"node:fs/promises";import{join,posix}from"node:path";
|
|
1
|
+
import{readFile,readdir}from"node:fs/promises";import{join,posix}from"node:path";const RESOURCE_WORKSPACE_DIRECTORY=`workspace`,RESOURCE_SKILLS_DIRECTORY=`skills`;async function materializeWorkspaceDirectory(e){let t=await readdir(e,{withFileTypes:!0}),hasDirectory=e=>t.some(t=>t.name===e&&t.isDirectory()),n=hasDirectory(RESOURCE_WORKSPACE_DIRECTORY),r=hasDirectory(RESOURCE_SKILLS_DIRECTORY);return!n&&!r?{skills:[],workspace:await readResourceTree(e)}:{skills:r?await readResourceTree(join(e,RESOURCE_SKILLS_DIRECTORY)):[],workspace:n?await readResourceTree(join(e,RESOURCE_WORKSPACE_DIRECTORY)):[]}}async function readResourceTree(e){let t=[];return await addResourceFiles({files:t,relativeDirectoryPath:`.`,sourceDirectoryPath:e}),t.sort((e,t)=>e.relativePath.localeCompare(t.relativePath)),t}async function addResourceFiles(e){let t=await readdir(e.sourceDirectoryPath,{withFileTypes:!0});for(let n of t){if(!n.isDirectory()&&!n.isFile())continue;let t=join(e.sourceDirectoryPath,n.name),r=posix.join(e.relativeDirectoryPath,n.name);if(n.isDirectory()){await addResourceFiles({files:e.files,relativeDirectoryPath:r,sourceDirectoryPath:t});continue}e.files.push({content:await readFile(t),relativePath:r})}}export{materializeWorkspaceDirectory};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { WorkspaceRuntimeSpec } from "#runtime/workspace/types.js";
|
|
2
2
|
/**
|
|
3
3
|
* Creates the authored-workspace prompt section that advertises the authored
|
|
4
4
|
* paths visible at the workspace root.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
function createWorkspacePromptSection(e){return e.rootEntries.length===0?void 0:[`Workspace`,`- You have access to authored files mounted at the workspace root for this run.`,"- The workspace root is the directory where `bash` commands start; `pwd` prints its absolute path.",`- Root entries under the workspace root:`,...e.rootEntries.map(e=>` - ${e}`),"- For questions about workspace paths or file availability, verify with `bash` first using commands like `pwd`, `ls`, and `find`.","- If the required `bash` verification fails, report that failure directly instead of answering from this overview.","- Use the `bash` tool with `ls`, `find`, and `rg` to inspect deeper contents when needed.",`- Do not claim these files are unavailable unless a workspace or tool call actually fails.`].join(`
|
|
2
2
|
`)}export{createWorkspacePromptSection};
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* This is both the model-facing logical path and the live `bash` cwd
|
|
6
|
-
* for every backend. Backends must initialize their filesystems so
|
|
7
|
-
* commands run at this path; there is no per-backend translation.
|
|
2
|
+
* The default sandbox workspace root, used by every built-in provider and by
|
|
3
|
+
* a connection that does not declare its own `workspaceRoot`.
|
|
8
4
|
*/
|
|
9
5
|
export declare const WORKSPACE_ROOT = "/workspace";
|
|
10
6
|
/**
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { type SandboxEnvironment, type SandboxSelectorContext } from "#shared/sandbox-environment.js";
|
|
2
|
+
import type { SandboxPreparedArtifact, SandboxProviderFiles } from "#shared/sandbox-provider.js";
|
|
3
|
+
import type { SandboxProcess, SandboxRemovePathOptions, SandboxSession, SandboxWriteFilesOptions } from "#shared/sandbox-session.js";
|
|
4
|
+
/** A JSON-compatible value: what a provider may return as an artifact or session state. */
|
|
5
|
+
export type SandboxJson = SandboxPreparedArtifact;
|
|
6
|
+
/** Members eve owns on every live sandbox, which a connection's extensions cannot replace. */
|
|
7
|
+
type ReservedSessionMember = keyof SandboxSession | "delete" | "stop";
|
|
8
|
+
/**
|
|
9
|
+
* The byte-level connection to one sandbox that a provider implements. eve
|
|
10
|
+
* derives the full {@link SandboxSession} from it.
|
|
11
|
+
*
|
|
12
|
+
* Every path a connection receives is absolute, and `workingDirectory` is
|
|
13
|
+
* always set: eve resolves relative paths from {@link workspaceRoot}.
|
|
14
|
+
*/
|
|
15
|
+
export interface SandboxConnection<Extensions extends object = {}> {
|
|
16
|
+
/**
|
|
17
|
+
* The absolute sandbox directory that relative paths resolve from and
|
|
18
|
+
* commands start in by default. Defaults to `/workspace`. The directory
|
|
19
|
+
* must exist when eve first runs a command.
|
|
20
|
+
*/
|
|
21
|
+
readonly workspaceRoot?: string;
|
|
22
|
+
/**
|
|
23
|
+
* Runs `command` as a Bash login-shell script (`bash -lc`) in
|
|
24
|
+
* `workingDirectory`, with the sandbox's environment plus `env`. `env`
|
|
25
|
+
* holds only the per-call variables. Aborting kills the process tree.
|
|
26
|
+
*/
|
|
27
|
+
spawn(options: {
|
|
28
|
+
readonly abortSignal?: AbortSignal;
|
|
29
|
+
readonly command: string;
|
|
30
|
+
readonly env: Readonly<Record<string, string>>;
|
|
31
|
+
readonly workingDirectory: string;
|
|
32
|
+
}): Promise<SandboxProcess>;
|
|
33
|
+
/**
|
|
34
|
+
* Resolves to `null` only when the path does not exist. A directory or an
|
|
35
|
+
* unreadable path rejects. Return bytes or a stream, whichever the backend has.
|
|
36
|
+
*/
|
|
37
|
+
readFile(options: {
|
|
38
|
+
readonly abortSignal?: AbortSignal;
|
|
39
|
+
readonly path: string;
|
|
40
|
+
}): Promise<Uint8Array | ReadableStream<Uint8Array> | null>;
|
|
41
|
+
/** Creates missing parent directories and overwrites existing files. The only write primitive. */
|
|
42
|
+
writeFiles(options: SandboxWriteFilesOptions): Promise<void>;
|
|
43
|
+
/** `force` ignores a missing path; `recursive` removes a non-empty directory. */
|
|
44
|
+
removePath(options: SandboxRemovePathOptions): Promise<void>;
|
|
45
|
+
/** Releases compute and keeps the sandbox's files. */
|
|
46
|
+
stop(): Promise<void>;
|
|
47
|
+
/** Releases what this process holds, such as a local interpreter, without touching the sandbox. */
|
|
48
|
+
close?(): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Provider capabilities merged onto the session, such as `setNetworkPolicy`.
|
|
51
|
+
* A plain object: eve merges its own enumerable properties, so use closures
|
|
52
|
+
* rather than class methods. A member named like a session method is a type
|
|
53
|
+
* error, and eve rejects it.
|
|
54
|
+
*/
|
|
55
|
+
readonly extensions?: Extensions & {
|
|
56
|
+
readonly [Key in ReservedSessionMember]?: never;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/** What eve passes to `start()`, `resume()`, and `onSessionEnd()`. */
|
|
60
|
+
export interface SandboxSessionContext {
|
|
61
|
+
/**
|
|
62
|
+
* The session that owns the sandbox. Derive native names from `session.id`:
|
|
63
|
+
* for a subagent that shares its parent's sandbox it is the parent's id, and
|
|
64
|
+
* for a keyed `invokeTool` call it is the derived tool-session id.
|
|
65
|
+
*/
|
|
66
|
+
readonly session: SandboxSelectorContext["session"];
|
|
67
|
+
/** `"tool-session"` for a keyed `invokeTool` call's sandbox, `"session"` otherwise. */
|
|
68
|
+
readonly kind: "session" | "tool-session";
|
|
69
|
+
/** A host directory the provider may use for local state. */
|
|
70
|
+
readonly storagePath: string;
|
|
71
|
+
/** Resolves a path relative to the app's project root on the host. */
|
|
72
|
+
resolveProjectPath(path: string): string;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Values hashed into a template key: JSON values, `undefined` (omitted),
|
|
76
|
+
* plain objects and arrays, and functions (hashed by their source). Other
|
|
77
|
+
* values and circular structures reject.
|
|
78
|
+
*/
|
|
79
|
+
export type SandboxIdentity = {
|
|
80
|
+
readonly [key: string]: unknown;
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* What eve passes to `prepare()` while it builds a template. Not generic over
|
|
84
|
+
* the provider's extensions, so TypeScript infers them from `start()`.
|
|
85
|
+
*/
|
|
86
|
+
export interface SandboxPrepareContext {
|
|
87
|
+
/** Authored files under the agent's `sandbox/` directory. */
|
|
88
|
+
readonly files: SandboxProviderFiles;
|
|
89
|
+
/** `true` when there are no workspace or skill files and no authored `prepare`. */
|
|
90
|
+
readonly isEmpty: boolean;
|
|
91
|
+
readonly storagePath: string;
|
|
92
|
+
/** Reports build progress, such as `eve build` output. */
|
|
93
|
+
log(message: string): void;
|
|
94
|
+
/**
|
|
95
|
+
* Seeds the connection's workspace root and `$HOME/.agents/skills`, then
|
|
96
|
+
* runs the authored `prepare` with a session over `connection`. With
|
|
97
|
+
* `mountedAt`, the provider has mounted {@link resourcesDirectory}
|
|
98
|
+
* read-only at that sandbox path, and eve copies from it instead of
|
|
99
|
+
* writing every file.
|
|
100
|
+
*/
|
|
101
|
+
populate(connection: SandboxConnection<object>, options?: {
|
|
102
|
+
readonly mountedAt?: string;
|
|
103
|
+
}): Promise<void>;
|
|
104
|
+
resolveProjectPath(path: string): string;
|
|
105
|
+
/** A stable read-only host directory holding `workspace/` and `skills/`, when one exists. */
|
|
106
|
+
resourcesDirectory(): Promise<string | undefined>;
|
|
107
|
+
/**
|
|
108
|
+
* Hashes `identity` together with the workspace files, skill files, and
|
|
109
|
+
* sandbox source revision into a stable SHA-256 hex key. `resources` and
|
|
110
|
+
* `sourceRevision` are reserved.
|
|
111
|
+
*/
|
|
112
|
+
templateKey(identity: SandboxIdentity): string;
|
|
113
|
+
}
|
|
114
|
+
export interface SandboxSessionEndOptions {
|
|
115
|
+
readonly abortSignal?: AbortSignal;
|
|
116
|
+
readonly reason: "completed" | "expired" | "failed" | "deleted";
|
|
117
|
+
}
|
|
118
|
+
/** The lifecycle one sandbox environment implements. */
|
|
119
|
+
export interface SandboxProviderImplementation<OpenOptions extends object | undefined, Artifact extends SandboxJson, State extends SandboxJson, Extensions extends object> {
|
|
120
|
+
/**
|
|
121
|
+
* Builds a template during `eve build`, or on first access in `eve dev`, and
|
|
122
|
+
* returns the JSON artifact that ships with the deployment. Call
|
|
123
|
+
* `ctx.populate()` on the build instance before capturing it.
|
|
124
|
+
*/
|
|
125
|
+
prepare(ctx: SandboxPrepareContext): Promise<Artifact>;
|
|
126
|
+
/**
|
|
127
|
+
* Returns the sandbox for `ctx.session.id`, creating it when none exists.
|
|
128
|
+
* An idempotent upsert: repeated, concurrent, cross-process, and
|
|
129
|
+
* cross-deployment calls return the same sandbox while it exists. Derive
|
|
130
|
+
* native identity from `ctx.session.id` and a provider-level namespace
|
|
131
|
+
* only; `options` and `artifact` apply only when this call creates it.
|
|
132
|
+
*/
|
|
133
|
+
start(ctx: SandboxSessionContext, options: Readonly<OpenOptions> | undefined, artifact: Readonly<Artifact>): Promise<{
|
|
134
|
+
readonly connection: SandboxConnection<Extensions>;
|
|
135
|
+
readonly state: State;
|
|
136
|
+
}>;
|
|
137
|
+
/**
|
|
138
|
+
* Reconnects to the sandbox `state` names, never recreating it. Throw
|
|
139
|
+
* `SandboxSessionGoneError` when it no longer exists.
|
|
140
|
+
*/
|
|
141
|
+
resume(ctx: SandboxSessionContext, artifact: Readonly<Artifact>, state: Readonly<State>): Promise<SandboxConnection<Extensions>>;
|
|
142
|
+
/**
|
|
143
|
+
* Deletes whatever exists for `ctx.session.id`. `state` is `null` when the
|
|
144
|
+
* session never recorded it. Must succeed when nothing exists and be
|
|
145
|
+
* idempotent. `sandbox.delete()` also lands here, with `reason: "deleted"`.
|
|
146
|
+
*/
|
|
147
|
+
onSessionEnd(ctx: SandboxSessionContext, state: Readonly<State> | null, options: SandboxSessionEndOptions): Promise<void>;
|
|
148
|
+
/**
|
|
149
|
+
* Lets a keyed `invokeTool` call keep its sandbox between calls. eve never
|
|
150
|
+
* ends a keyed sandbox, so the provider must bound its retention.
|
|
151
|
+
*/
|
|
152
|
+
readonly toolSessions?: true;
|
|
153
|
+
}
|
|
154
|
+
export interface SandboxPrepareOption<Session> {
|
|
155
|
+
/** Runs once per template, after eve seeds workspace and skill files. */
|
|
156
|
+
readonly prepare?: (sandbox: Session) => void | Promise<void>;
|
|
157
|
+
}
|
|
158
|
+
/** Environment options plus the standard `prepare` option. */
|
|
159
|
+
export type WithPrepareOption<Options extends object, Session> = Options & SandboxPrepareOption<Session>;
|
|
160
|
+
export interface SandboxProviderDefinition<EnvironmentOptions extends object, OpenOptions extends object | undefined, Artifact extends SandboxJson, State extends SandboxJson, Extensions extends object> {
|
|
161
|
+
readonly name: string;
|
|
162
|
+
/** Bump when `State` changes incompatibly; recorded state from another version starts fresh. */
|
|
163
|
+
readonly stateProtocolVersion?: number;
|
|
164
|
+
/**
|
|
165
|
+
* Receives the environment options without `prepare`, which eve runs in
|
|
166
|
+
* `ctx.populate()`. Always an object: `{}` when the caller passes none.
|
|
167
|
+
*/
|
|
168
|
+
environment(options: EnvironmentOptions): SandboxProviderImplementation<OpenOptions, Artifact, State, Extensions>;
|
|
169
|
+
}
|
|
170
|
+
type SandboxOptionArguments<Options extends object | undefined> = Options extends undefined ? [options?: undefined] : Record<never, never> extends Options ? [options?: Readonly<Options>] : [options: Readonly<Options>];
|
|
171
|
+
export interface SandboxProvider<EnvironmentOptions extends object | undefined, OpenOptions extends object | undefined, Session extends SandboxSession> {
|
|
172
|
+
readonly name: string;
|
|
173
|
+
environment(...args: SandboxOptionArguments<EnvironmentOptions>): SandboxEnvironment<OpenOptions, Session>;
|
|
174
|
+
}
|
|
175
|
+
/** What core runs for one environment: the provider's lifecycle with its types erased. */
|
|
176
|
+
export interface SandboxProviderRuntime {
|
|
177
|
+
readonly implementation: SandboxProviderImplementation<object | undefined, SandboxJson, SandboxJson, object>;
|
|
178
|
+
/** The authored `prepare` option, which eve runs in `ctx.populate()`. */
|
|
179
|
+
readonly prepare: ((sandbox: SandboxSession) => void | Promise<void>) | undefined;
|
|
180
|
+
readonly providerName: string;
|
|
181
|
+
readonly stateProtocolVersion: number;
|
|
182
|
+
}
|
|
183
|
+
/** Defines a sandbox provider from a connection and a lifecycle. */
|
|
184
|
+
export declare function defineSandboxProvider<EnvironmentOptions extends object = {}, OpenOptions extends object | undefined = undefined, Artifact extends SandboxJson = SandboxJson, State extends SandboxJson = SandboxJson, Extensions extends object = {}>(definition: SandboxProviderDefinition<EnvironmentOptions, OpenOptions, Artifact, State, Extensions>): SandboxProvider<WithPrepareOption<EnvironmentOptions, SandboxSession & Extensions>, OpenOptions, SandboxSession & Extensions>;
|
|
185
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createSandboxEnvironment}from"#shared/sandbox-environment.js";function defineSandboxProvider(e){return{name:e.name,environment(t){let{prepare:n,...r}=t??{};return createSandboxEnvironment({implementation:e.environment(r),prepare:n,providerName:e.name,stateProtocolVersion:e.stateProtocolVersion??1})}}}export{defineSandboxProvider};
|
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
import type { DockerSandboxEnvironmentOptions } from "#public/sandbox/docker-sandbox.js";
|
|
2
|
-
import type {
|
|
3
|
-
import type
|
|
2
|
+
import type { SandboxSession } from "#public/sandbox/index.js";
|
|
3
|
+
import { type SandboxProvider } from "#public/sandbox/provider.js";
|
|
4
4
|
import type { VercelSandboxCreateOptions } from "#public/sandbox/vercel-sandbox.js";
|
|
5
|
-
import type
|
|
6
|
-
import type {
|
|
5
|
+
import { type JustBashEnvironmentOptions } from "#sandbox/providers/just-bash.js";
|
|
6
|
+
import type { SandboxNetworkOptions, SandboxNetworkPolicy } from "#shared/sandbox-network-policy.js";
|
|
7
7
|
export interface DefaultSandboxEnvironmentOptions {
|
|
8
8
|
readonly docker?: DockerSandboxEnvironmentOptions;
|
|
9
|
-
readonly justBash?:
|
|
10
|
-
readonly microsandbox?: MicrosandboxSandboxCreateOptions;
|
|
9
|
+
readonly justBash?: JustBashEnvironmentOptions;
|
|
11
10
|
readonly prepare?: (sandbox: SandboxSession) => Promise<void> | void;
|
|
12
11
|
readonly vercel?: VercelSandboxCreateOptions;
|
|
13
12
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
/** Options applied when eve creates one live sandbox from a `DefaultSandbox` environment. */
|
|
14
|
+
export type DefaultSandboxRuntimeOptions = SandboxNetworkOptions;
|
|
15
|
+
/** Live sandbox capabilities exposed by a `DefaultSandbox` environment. */
|
|
16
|
+
export interface DefaultSandboxSession extends SandboxSession {
|
|
17
|
+
/**
|
|
18
|
+
* Applies a network policy to the live sandbox. Docker accepts only
|
|
19
|
+
* `"allow-all"` and `"deny-all"`; just-bash accepts only `"allow-all"`.
|
|
20
|
+
*/
|
|
21
|
+
setNetworkPolicy(policy: SandboxNetworkPolicy): Promise<void>;
|
|
18
22
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
export declare
|
|
25
|
-
name: string;
|
|
26
|
-
environment(options?: DefaultSandboxEnvironmentOptions): SandboxEnvironment<undefined>;
|
|
27
|
-
};
|
|
23
|
+
/**
|
|
24
|
+
* Selects Vercel Sandbox on Vercel, Docker when a daemon is reachable, and
|
|
25
|
+
* just-bash in development. Preparation records the choice, so the runtime
|
|
26
|
+
* uses the provider the build selected and never probes the host.
|
|
27
|
+
*/
|
|
28
|
+
export declare const DefaultSandbox: SandboxProvider<DefaultSandboxEnvironmentOptions, DefaultSandboxRuntimeOptions, DefaultSandboxSession>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isLinuxDockerDaemonAvailableSync
|
|
1
|
+
import{isObject}from"#shared/guards.js";import{isLinuxDockerDaemonAvailableSync}from"#execution/sandbox/bindings/local.js";import{getSandboxEnvironmentRuntime}from"#shared/sandbox-environment.js";import{isEveDevEnvironment}from"#internal/application/dev-environment.js";import{ToolSessionSandboxUnsupportedError}from"#shared/sandbox-tool-session-error.js";import{SandboxSessionGoneError,defineSandboxProvider}from"#public/sandbox/provider.js";import{withAdoptedSandboxSessionStates,withSessionEndArtifact}from"#sandbox/state.js";import{DockerSandbox}from"#sandbox/providers/docker.js";import{JustBashSandbox}from"#sandbox/providers/just-bash.js";import{VercelSandbox}from"#sandbox/providers/vercel.js";const SELECTED_PROVIDERS=[`docker`,`just-bash`,`vercel`],NO_PROVIDER_MESSAGE=`DefaultSandbox has no sandbox provider for this build: it did not run on Vercel, no Docker daemon was reachable, and production builds do not fall back to just-bash. Start Docker and rebuild, deploy to Vercel, or select a provider explicitly in your sandbox module, such as agent/sandbox/sandbox.ts.`,JUST_BASH_NETWORK_POLICY_MESSAGE=`DefaultSandbox selected just-bash, which always allows network access and accepts only the "allow-all" network policy. Start Docker so DefaultSandbox selects it, or select VercelSandbox or DockerSandbox explicitly.`,DefaultSandbox=defineSandboxProvider({name:`default`,environment(e){let t=new Map,provider=n=>{let r=t.get(n);return r===void 0&&(r=getSandboxEnvironmentRuntime(createEnvironment(n,e)),t.set(n,r)),r};function requireProvider(e,t){let n=provider(e);if(t===`tool-session`&&n.implementation.toolSessions!==!0)throw new ToolSessionSandboxUnsupportedError(e);return n}async function endSession(e,t,n,r){let i=t?.provider??n?.provider??null;if(i===null)return;let a=provider(i),o=t?.stateProtocolVersion===a.stateProtocolVersion?t.state:null;await a.implementation.onSessionEnd(e,o,r)}let n={onSessionEnd:(e,t,n)=>endSession(e,t,void 0,n),async prepare(e){let t=selectProvider();return t===null?(e.log(NO_PROVIDER_MESSAGE),{provider:null}):{artifact:await provider(t).implementation.prepare(e),provider:t}},async start(e,t,n){if(n.provider===null)throw Error(NO_PROVIDER_MESSAGE);let r=requireProvider(n.provider,e.kind),i=await r.implementation.start(e,innerOpenOptions(n.provider,t),n.artifact);return{connection:withNetworkPolicy(i.connection),state:{provider:n.provider,state:i.state,stateProtocolVersion:r.stateProtocolVersion}}},async resume(e,t,n){if(t.provider===null||t.provider!==n.provider)throw new SandboxSessionGoneError(`The session's ${n.provider} sandbox cannot resume because this build selected ${t.provider??`no provider`}.`);let r=requireProvider(n.provider,e.kind);if(n.stateProtocolVersion!==r.stateProtocolVersion)throw new SandboxSessionGoneError(`The session's ${n.provider} sandbox state uses protocol ${n.stateProtocolVersion}, not ${r.stateProtocolVersion}.`);return withNetworkPolicy(await r.implementation.resume(e,t.artifact,n.state))},toolSessions:!0};return withSessionEndArtifact(n,async(e,t,{artifact:n,reason:r})=>{await endSession(e,isDefaultSandboxSessionState(t)?t:null,isDefaultSandboxPreparedArtifact(n)?n:void 0,{reason:r})}),withAdoptedSandboxSessionStates(n,e=>{let t=e.providerName;if(isSelectedProvider(t))return{provider:t,state:e.state,stateProtocolVersion:e.stateProtocolVersion}})}});function selectProvider(){return process.env.VERCEL?.trim()?`vercel`:isLinuxDockerDaemonAvailableSync()?`docker`:isEveDevEnvironment()?`just-bash`:null}function createEnvironment(e,t){switch(e){case`docker`:return DockerSandbox.environment(t.docker??{});case`just-bash`:return JustBashSandbox.environment(t.justBash??{});case`vercel`:return VercelSandbox.environment(t.vercel??{})}}function innerOpenOptions(e,t){if(e!==`just-bash`)return t;if(t?.networkPolicy!==void 0&&t.networkPolicy!==`allow-all`)throw Error(JUST_BASH_NETWORK_POLICY_MESSAGE)}function withNetworkPolicy(e){let t=e.extensions??{};return typeof Reflect.get(t,`setNetworkPolicy`)==`function`?e:{...e,extensions:{...t,setNetworkPolicy:rejectJustBashNetworkPolicy}}}async function rejectJustBashNetworkPolicy(e){if(e!==`allow-all`)throw Error(JUST_BASH_NETWORK_POLICY_MESSAGE)}function isSelectedProvider(e){return SELECTED_PROVIDERS.some(t=>t===e)}function isDefaultSandboxSessionState(e){return isObject(e)&&isSelectedProvider(e.provider)&&typeof e.stateProtocolVersion==`number`&&`state`in e}function isDefaultSandboxPreparedArtifact(e){return isObject(e)&&(e.provider===null||isSelectedProvider(e.provider)&&`artifact`in e)}export{DefaultSandbox};
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { DockerSandboxEnvironmentOptions, DockerSandboxRuntimeOptions } from "#public/sandbox/docker-sandbox.js";
|
|
1
|
+
import type { DockerCli } from "#execution/sandbox/bindings/docker-cli.js";
|
|
2
|
+
import type { DockerSandboxEnvironmentOptions, DockerSandboxRuntimeOptions, DockerSandboxSession } from "#public/sandbox/docker-sandbox.js";
|
|
3
|
+
import { type SandboxProvider } from "#public/sandbox/provider.js";
|
|
3
4
|
import type { SandboxEnvironment } from "#shared/sandbox-environment.js";
|
|
4
5
|
export type { DockerSandboxEnvironmentOptions, DockerSandboxRuntimeOptions, } from "#public/sandbox/docker-sandbox.js";
|
|
5
6
|
type DockerfileEnvironmentInput = Omit<DockerSandboxEnvironmentOptions, "image">;
|
|
7
|
+
/** Defines the Docker provider over `dockerCli`, the real `docker` CLI unless tests inject one. */
|
|
8
|
+
export declare function defineDockerSandboxProvider(dockerCli?: DockerCli): SandboxProvider<DockerSandboxEnvironmentOptions, DockerSandboxRuntimeOptions, DockerSandboxSession>;
|
|
6
9
|
export declare const DockerSandbox: {
|
|
7
10
|
name: string;
|
|
8
11
|
environment(options?: Readonly<DockerSandboxEnvironmentOptions> | undefined): SandboxEnvironment<DockerSandboxRuntimeOptions, DockerSandboxSession>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createDockerSandboxProvider}from"#execution/sandbox/bindings/local.js";import{defineSandboxProvider}from"#
|
|
1
|
+
import{DOCKER_PROVIDER_NAME,createDockerSandboxProvider}from"#execution/sandbox/bindings/local.js";import{defineSandboxProvider}from"#public/sandbox/provider.js";function defineDockerSandboxProvider(e){return defineSandboxProvider({name:DOCKER_PROVIDER_NAME,environment:t=>createDockerSandboxProvider(t,e)})}const provider=defineDockerSandboxProvider(),DockerSandbox={...provider,dockerfile(e={}){return provider.environment(e)},image(e,t={}){return provider.environment({...t,image:e})}};export{DockerSandbox,defineDockerSandboxProvider};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { JustBashSandboxCreateOptions } from "#public/sandbox/just-bash-sandbox.js";
|
|
2
|
-
import type
|
|
3
|
-
|
|
4
|
-
export
|
|
2
|
+
import { type WithPrepareOption } from "#public/sandbox/provider.js";
|
|
3
|
+
import type { SandboxSession } from "#public/sandbox/index.js";
|
|
4
|
+
export type JustBashEnvironmentOptions = WithPrepareOption<JustBashSandboxCreateOptions, SandboxSession>;
|
|
5
|
+
export declare const JustBashSandbox: import("#public/sandbox/provider.js").SandboxProvider<WithPrepareOption<JustBashSandboxCreateOptions, SandboxSession>, undefined, SandboxSession>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createJustBashSandboxProvider}from"#execution/sandbox/bindings/local.js";import{defineSandboxProvider}from"#
|
|
1
|
+
import{createJustBashSandboxProvider}from"#execution/sandbox/bindings/local.js";import{defineSandboxProvider}from"#public/sandbox/provider.js";const JustBashSandbox=defineSandboxProvider({name:`just-bash`,environment:e=>createJustBashSandboxProvider(e)});export{JustBashSandbox};
|
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import type { VercelSandboxSession } from "#public/sandbox/vercel.js";
|
|
2
|
+
import { type SandboxProvider, type WithPrepareOption } from "#public/sandbox/provider.js";
|
|
2
3
|
import type { VercelSandboxCreateOptions, VercelSandboxRuntimeOptions } from "#public/sandbox/vercel-sandbox.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export type VercelSandboxEnvironmentOptions = VercelSandboxCreateOptions & {
|
|
6
|
-
readonly prepare?: (sandbox: SandboxSession) => Promise<void> | void;
|
|
7
|
-
};
|
|
4
|
+
/** Vercel create options plus `prepare`, which receives a {@link VercelSandboxSession}. */
|
|
5
|
+
export type VercelSandboxEnvironmentOptions = WithPrepareOption<VercelSandboxCreateOptions, VercelSandboxSession>;
|
|
8
6
|
export type { VercelSandboxRuntimeOptions } from "#public/sandbox/vercel-sandbox.js";
|
|
9
|
-
export declare
|
|
10
|
-
export declare const VercelSandbox: {
|
|
11
|
-
name: string;
|
|
12
|
-
environment(options?: VercelSandboxEnvironmentOptions): SandboxEnvironment<VercelSandboxRuntimeOptions, VercelSandboxSession>;
|
|
13
|
-
};
|
|
7
|
+
export declare const VercelSandbox: SandboxProvider<VercelSandboxEnvironmentOptions | undefined, VercelSandboxRuntimeOptions, VercelSandboxSession>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{defineSandboxProvider}from"#
|
|
1
|
+
import{defineSandboxProvider}from"#public/sandbox/provider.js";import{createVercelSandbox}from"#execution/sandbox/bindings/vercel.js";const VercelSandbox=defineSandboxProvider({name:`vercel`,environment:e=>createVercelSandbox({createOptions:e})});export{VercelSandbox};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export { DefaultSandbox } from "#sandbox/providers/default.js";
|
|
2
2
|
export { DockerSandbox } from "#sandbox/providers/docker.js";
|
|
3
3
|
export { JustBashSandbox } from "#sandbox/providers/just-bash.js";
|
|
4
|
-
export { MicrosandboxSandbox } from "#sandbox/providers/microsandbox.js";
|
|
5
4
|
export { VercelSandbox } from "#sandbox/providers/vercel.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{DockerSandbox}from"#sandbox/providers/docker.js";import{DefaultSandbox}from"#sandbox/providers/default.js";import{JustBashSandbox}from"#sandbox/providers/just-bash.js";import{
|
|
1
|
+
import{DockerSandbox}from"#sandbox/providers/docker.js";import{DefaultSandbox}from"#sandbox/providers/default.js";import{JustBashSandbox}from"#sandbox/providers/just-bash.js";import{VercelSandbox}from"#sandbox/providers/vercel.js";export{DefaultSandbox,DockerSandbox,JustBashSandbox,VercelSandbox};
|