eve 0.63.0 → 0.64.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/dist/src/ai/evaluate.js +1 -1
- package/dist/src/channel/channel-address.d.ts +4 -1
- package/dist/src/channel/channel-address.js +1 -1
- package/dist/src/channel/channel-operations.d.ts +4 -1
- package/dist/src/channel/cross-channel-receive.d.ts +4 -1
- package/dist/src/channel/cross-channel-receive.js +1 -1
- package/dist/src/channel/session.d.ts +3 -1
- package/dist/src/channel/session.js +1 -1
- package/dist/src/channel/types.d.ts +7 -0
- package/dist/src/chunks/{use-eve-agent-C5-yqRuq.js → use-eve-agent-BdKlQF32.js} +8 -8
- package/dist/src/chunks/{use-eve-agent-CVWk5KKy.js → use-eve-agent-IIuxkn6y.js} +8 -8
- package/dist/src/cli/commands/build.js +1 -1
- package/dist/src/cli/commands/init-agent-workspace.d.ts +2 -0
- package/dist/src/cli/commands/init.js +1 -1
- package/dist/src/cli/commands/registry-pnpm-build-policy-flow.d.ts +1 -1
- package/dist/src/cli/commands/registry-pnpm-build-policy-flow.js +1 -1
- package/dist/src/cli/dev/tui/line-editor.d.ts +11 -1
- package/dist/src/cli/dev/tui/line-editor.js +3 -3
- package/dist/src/cli/dev/tui/model-picker.d.ts +2 -0
- package/dist/src/cli/dev/tui/model-picker.js +1 -1
- package/dist/src/cli/dev/tui/runner.d.ts +0 -1
- package/dist/src/cli/dev/tui/runner.js +2 -2
- package/dist/src/cli/dev/tui/setup-panel.js +1 -1
- package/dist/src/cli/dev/tui/setup-selection-input.js +1 -1
- package/dist/src/cli/dev/tui/stream-format.d.ts +6 -0
- package/dist/src/cli/dev/tui/stream-format.js +2 -2
- package/dist/src/cli/dev/tui/terminal-renderer.d.ts +0 -1
- package/dist/src/cli/dev/tui/terminal-renderer.js +12 -12
- package/dist/src/cli/run.js +1 -1
- package/dist/src/client/agent-info-schema.d.ts +8 -14
- package/dist/src/client/agent-info-schema.js +1 -1
- package/dist/src/client/eve-agent-store.js +1 -1
- package/dist/src/client/session.js +1 -1
- package/dist/src/client/types.d.ts +4 -2
- package/dist/src/compiled/.vendor-stamp.json +11 -11
- package/dist/src/compiled/@chat-adapter/slack/_chat-adapter-shared.d.ts +1 -0
- package/dist/src/compiled/@chat-adapter/slack/api.d.ts +3 -2
- package/dist/src/compiled/@chat-adapter/slack/api.js +1 -1
- package/dist/src/compiled/@chat-adapter/slack/blocks.js +1 -1
- package/dist/src/compiled/@chat-adapter/slack/format.js +1 -1
- package/dist/src/compiled/@chat-adapter/slack/index.d.ts +410 -63
- package/dist/src/compiled/@chat-adapter/slack/index.js +47 -25
- package/dist/src/compiled/@chat-adapter/twilio/api.d.ts +5 -1
- package/dist/src/compiled/@chat-adapter/twilio/api.js +1 -1
- package/dist/src/compiled/@chat-adapter/twilio/index.d.ts +37 -3
- package/dist/src/compiled/@chat-adapter/twilio/index.js +5 -1
- package/dist/src/compiled/@chat-adapter/twilio/webhook.d.ts +2 -2
- package/dist/src/compiled/@chat-adapter/twilio/webhook.js +1 -1
- package/dist/src/compiled/@linqapp/chat-sdk-adapter/index.js +6 -6
- package/dist/src/compiled/@photon-ai/chat-adapter-imessage/index.js +50 -50
- package/dist/src/compiled/@vercel/sandbox/index.js +4 -4
- package/dist/src/compiled/@workflow/core/attribute-changes.d.ts +2 -1
- package/dist/src/compiled/@workflow/core/events-consumer.d.ts +6 -3
- package/dist/src/compiled/@workflow/core/index.js +2 -2
- package/dist/src/compiled/@workflow/core/private.d.ts +37 -5
- package/dist/src/compiled/@workflow/core/private.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime/deployment-guard.d.ts +2 -1
- package/dist/src/compiled/@workflow/core/runtime/helpers.js +1 -1
- package/dist/src/compiled/@workflow/core/runtime/invocations.d.ts +35 -0
- package/dist/src/compiled/@workflow/core/runtime/lifecycle-hooks.d.ts +90 -0
- package/dist/src/compiled/@workflow/core/runtime/quickjs-runtime.d.ts +2 -1
- package/dist/src/compiled/@workflow/core/runtime/resume-hook.d.ts +8 -6
- package/dist/src/compiled/@workflow/core/runtime/step-single-flight.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/runtime.js +4 -4
- package/dist/src/compiled/@workflow/core/serialization.d.ts +5 -1
- package/dist/src/compiled/@workflow/core/serialization.js +1 -1
- package/dist/src/compiled/@workflow/core/version.d.ts +1 -1
- package/dist/src/compiled/@workflow/core/workflow/set-attributes.d.ts +4 -0
- package/dist/src/compiled/@workflow/core/workflow.js +1 -1
- package/dist/src/compiled/@workflow/world/analytics.d.ts +1 -1
- package/dist/src/compiled/@workflow/world/attributes-validation.d.ts +5 -0
- package/dist/src/compiled/@workflow/world/events.d.ts +2 -2
- package/dist/src/compiled/@workflow/world/index.d.ts +2 -1
- package/dist/src/compiled/@workflow/world/interfaces.d.ts +12 -1
- package/dist/src/compiled/@workflow/world/invocation.d.ts +19 -0
- package/dist/src/compiled/@workflow/world/queue.d.ts +24 -3
- package/dist/src/compiled/@workflow/world-local/index.js +3 -3
- package/dist/src/compiled/@workflow/world-vercel/index.js +16 -16
- package/dist/src/compiled/_chunks/node/chunk-6QHBXN7B-gl4n6nmi.js +12 -0
- package/dist/src/compiled/_chunks/node/chunk-7WDLOIRP-B_IWkVtZ.js +1 -0
- package/dist/src/compiled/_chunks/node/chunk-KBOOTKHF-DJqFk2r1.js +1 -0
- package/dist/src/compiled/_chunks/node/chunk-TREVQR3E-CLsTAn-O.js +1 -0
- package/dist/src/compiled/_chunks/node/dist-DYDVZ-FS.js +98 -0
- package/dist/src/compiled/_chunks/node/dist-iEFkK9qw.js +6 -0
- package/dist/src/compiled/_chunks/workflow/attribute-changes-DFx4eluc.js +6 -0
- package/dist/src/compiled/_chunks/workflow/{dist-D38gP7YF.js → dist-DjECvUyK.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{frames-QcJfYHmh.js → frames-D_Q-7A1N.js} +2 -2
- package/dist/src/compiled/_chunks/workflow/{helpers-6kObVbfS.js → helpers-Bw52uyzw.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{logger-NN5YHpYy.js → logger-DFNCa8Nl.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/resume-hook-BhA_nDEV.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{run-DJevv8zz.js → run-BT6SQv5f.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{serialization-C5KgPESk.js → serialization-Cl0SYU0I.js} +3 -3
- package/dist/src/compiled/_chunks/workflow/sleep-DB4AH9-A.js +1 -0
- package/dist/src/compiled/_chunks/workflow/{wait-until-BMY_tOr-.js → wait-until-Dzhr6tzf.js} +1 -1
- package/dist/src/compiled/_chunks/workflow/{ws-transport-DSDcKH08.js → ws-transport-BpTMh40s.js} +1 -1
- package/dist/src/compiled/chat/index.d.ts +1 -725
- package/dist/src/compiled/chat/index.js +1 -1
- package/dist/src/compiler/artifacts.d.ts +1 -0
- package/dist/src/compiler/artifacts.js +1 -1
- package/dist/src/compiler/extension-compatibility.d.ts +23 -15
- package/dist/src/compiler/extension-compatibility.js +1 -1
- package/dist/src/compiler/manifest.d.ts +14 -18
- package/dist/src/compiler/manifest.js +1 -1
- package/dist/src/compiler/normalize-helpers.js +1 -1
- package/dist/src/compiler/normalize-sandbox.d.ts +2 -7
- 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.d.ts +2 -0
- package/dist/src/context/build-callback-context.js +1 -1
- package/dist/src/context/container.d.ts +1 -1
- package/dist/src/context/container.js +1 -1
- package/dist/src/context/key-names.d.ts +1 -0
- package/dist/src/context/key-names.js +1 -1
- package/dist/src/context/keys.d.ts +7 -2
- package/dist/src/context/keys.js +1 -1
- package/dist/src/context/providers/sandbox.js +1 -1
- package/dist/src/context/providers/session.d.ts +19 -2
- package/dist/src/context/session-context.d.ts +1 -1
- package/dist/src/discover/sandbox.js +1 -1
- package/dist/src/evals/cli/eval.js +1 -1
- package/dist/src/evals/context.d.ts +1 -0
- package/dist/src/evals/context.js +1 -1
- package/dist/src/evals/define-eval-config.d.ts +7 -7
- package/dist/src/evals/define-eval-config.js +1 -1
- package/dist/src/evals/define-eval.d.ts +5 -2
- package/dist/src/evals/index.d.ts +1 -1
- package/dist/src/evals/runner/execute-eval.d.ts +2 -0
- package/dist/src/evals/runner/execute-eval.js +1 -1
- package/dist/src/evals/runner/execute-task.d.ts +2 -0
- package/dist/src/evals/runner/execute-task.js +1 -1
- package/dist/src/evals/runner/run-evals.d.ts +2 -0
- package/dist/src/evals/runner/run-evals.js +1 -1
- package/dist/src/evals/target.js +1 -1
- package/dist/src/evals/types.d.ts +22 -6
- package/dist/src/eve-channel/create-request.d.ts +2 -1
- package/dist/src/eve-channel/delivery-policy-request.d.ts +4 -0
- package/dist/src/eve-channel/delivery-policy-request.js +1 -0
- package/dist/src/eve-channel/index.js +1 -1
- package/dist/src/eve-channel/request.d.ts +2 -1
- package/dist/src/eve-channel/request.js +1 -1
- package/dist/src/execution/coordination-dispatch-shared.d.ts +2 -1
- package/dist/src/execution/coordination-dispatch-shared.js +1 -1
- package/dist/src/execution/dynamic-workflow/tool.js +1 -1
- package/dist/src/execution/runtime-context.js +1 -1
- package/dist/src/execution/sandbox/active-handles.d.ts +7 -8
- package/dist/src/execution/sandbox/active-handles.js +1 -1
- package/dist/src/execution/sandbox/bash.js +1 -1
- package/dist/src/execution/sandbox/bindings/docker-cli.d.ts +1 -1
- package/dist/src/execution/sandbox/bindings/docker-cli.js +1 -1
- package/dist/src/execution/sandbox/bindings/docker-container.d.ts +2 -2
- package/dist/src/execution/sandbox/bindings/docker-container.js +1 -1
- package/dist/src/execution/sandbox/bindings/docker-network.d.ts +1 -1
- package/dist/src/execution/sandbox/bindings/docker-network.js +1 -1
- package/dist/src/execution/sandbox/bindings/docker-options.d.ts +4 -5
- package/dist/src/execution/sandbox/bindings/docker-options.js +1 -1
- package/dist/src/execution/sandbox/bindings/docker-session.d.ts +0 -1
- package/dist/src/execution/sandbox/bindings/docker-session.js +2 -2
- package/dist/src/execution/sandbox/bindings/docker.d.ts +16 -18
- package/dist/src/execution/sandbox/bindings/docker.js +1 -1
- package/dist/src/execution/sandbox/bindings/immutable-resources.d.ts +21 -0
- package/dist/src/execution/sandbox/bindings/immutable-resources.js +2 -0
- package/dist/src/execution/sandbox/bindings/just-bash-runtime.d.ts +9 -5
- package/dist/src/execution/sandbox/bindings/just-bash-runtime.js +1 -1
- package/dist/src/execution/sandbox/bindings/just-bash.d.ts +13 -26
- package/dist/src/execution/sandbox/bindings/just-bash.js +1 -1
- package/dist/src/execution/sandbox/bindings/{local-backend-utils.d.ts → local-provider-utils.d.ts} +7 -5
- package/dist/src/execution/sandbox/bindings/local-provider-utils.js +1 -0
- package/dist/src/execution/sandbox/bindings/local.d.ts +3 -3
- package/dist/src/execution/sandbox/bindings/local.js +1 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-create.js +1 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.d.ts +30 -8
- package/dist/src/execution/sandbox/bindings/microsandbox-lifecycle.js +1 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-metadata.d.ts +9 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-metadata.js +1 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-network.js +1 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-options.d.ts +10 -4
- package/dist/src/execution/sandbox/bindings/microsandbox-options.js +1 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-platform.js +1 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-runtime.d.ts +7 -5
- package/dist/src/execution/sandbox/bindings/microsandbox-runtime.js +1 -1
- package/dist/src/execution/sandbox/bindings/microsandbox-templates.js +1 -1
- package/dist/src/execution/sandbox/bindings/microsandbox.d.ts +11 -21
- package/dist/src/execution/sandbox/bindings/microsandbox.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel-base-runtime.js +2 -2
- package/dist/src/execution/sandbox/bindings/vercel-credentials.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel-errors.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel-lifecycle.d.ts +2 -2
- package/dist/src/execution/sandbox/bindings/vercel-lifecycle.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel-lookup.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel-options.d.ts +1 -2
- package/dist/src/execution/sandbox/bindings/vercel-options.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel.d.ts +20 -12
- package/dist/src/execution/sandbox/bindings/vercel.js +2 -2
- package/dist/src/execution/sandbox/development-cleanup.js +1 -1
- package/dist/src/execution/sandbox/development-lazy-prewarm.d.ts +7 -0
- package/dist/src/execution/sandbox/development-lazy-prewarm.js +1 -0
- package/dist/src/execution/sandbox/development-run.d.ts +2 -3
- package/dist/src/execution/sandbox/dockerfile.d.ts +25 -0
- package/dist/src/execution/sandbox/dockerfile.js +1 -0
- package/dist/src/execution/sandbox/ensure.d.ts +0 -17
- package/dist/src/execution/sandbox/ensure.js +1 -1
- package/dist/src/execution/sandbox/logging-session.js +1 -1
- package/dist/src/execution/sandbox/prewarm.d.ts +23 -27
- package/dist/src/execution/sandbox/prewarm.js +1 -2
- package/dist/src/execution/sandbox/provider-files.d.ts +2 -0
- package/dist/src/execution/sandbox/provider-files.js +1 -0
- package/dist/src/execution/sandbox/provider-host-development.d.ts +2 -0
- package/dist/src/execution/sandbox/provider-host-development.js +1 -0
- package/dist/src/execution/sandbox/provider-host.d.ts +2 -0
- package/dist/src/execution/sandbox/provider-host.js +1 -0
- package/dist/src/execution/sandbox/provider-identity.d.ts +1 -0
- package/dist/src/execution/sandbox/provider-identity.js +1 -0
- package/dist/src/execution/sandbox/ripgrep-probe.d.ts +0 -7
- package/dist/src/execution/sandbox/ripgrep-probe.js +1 -1
- package/dist/src/execution/sandbox/session.d.ts +8 -8
- package/dist/src/execution/sandbox/session.js +1 -1
- package/dist/src/execution/session/handoff-steps.js +1 -1
- package/dist/src/execution/session/handoff.d.ts +1 -1
- package/dist/src/execution/session/handoff.js +1 -1
- package/dist/src/execution/session/input-queue.d.ts +2 -1
- package/dist/src/execution/session/input-queue.js +1 -1
- package/dist/src/execution/session/next-input.js +1 -1
- package/dist/src/execution/session/program.js +1 -1
- package/dist/src/execution/session/turn-step.js +1 -1
- package/dist/src/execution/session-inbox/protocol.js +1 -1
- package/dist/src/execution/tasks/parent/tool-execution.js +1 -1
- package/dist/src/execution/tools/agent-router-workflow.js +1 -1
- package/dist/src/execution/tools/sleep-workflow.js +1 -1
- package/dist/src/execution/tools/subagent/emit-event-step.js +1 -1
- package/dist/src/execution/tools/subagent/invoke-preparation.js +1 -1
- package/dist/src/execution/tools/subagent/start.d.ts +1 -0
- package/dist/src/framework/sources/modules/sandbox.d.ts +2 -1
- package/dist/src/framework/sources/modules/sandbox.js +1 -1
- package/dist/src/harness/approval-delivery-coordinator.js +1 -1
- package/dist/src/harness/hitl/approval-input-requests.d.ts +1 -1
- package/dist/src/harness/hitl/approval-input-requests.js +1 -1
- package/dist/src/harness/input-requests.d.ts +6 -0
- package/dist/src/harness/input-requests.js +1 -1
- package/dist/src/harness/messages.d.ts +2 -1
- package/dist/src/harness/messages.js +1 -1
- package/dist/src/harness/pending-input-batches.d.ts +1 -0
- package/dist/src/harness/pending-input-batches.js +1 -1
- package/dist/src/harness/tool-loop.js +2 -2
- package/dist/src/instrumentation/ai-sdk-warnings.d.ts +6 -0
- package/dist/src/instrumentation/ai-sdk-warnings.js +1 -0
- package/dist/src/instrumentation/runtime.d.ts +1 -0
- package/dist/src/instrumentation/runtime.js +1 -1
- package/dist/src/internal/application/compiled-artifacts.d.ts +2 -0
- package/dist/src/internal/application/compiled-artifacts.js +2 -2
- package/dist/src/internal/application/optional-package-install.d.ts +3 -0
- package/dist/src/internal/application/optional-package-install.js +2 -2
- package/dist/src/internal/application/output-publication-lock.d.ts +6 -0
- package/dist/src/internal/application/output-publication-lock.js +1 -1
- package/dist/src/internal/application/output-publication.js +1 -1
- package/dist/src/internal/application/package.js +1 -1
- package/dist/src/internal/authored-module-loader.d.ts +1 -0
- package/dist/src/internal/authored-module-loader.js +1 -1
- package/dist/src/internal/authored-runtime-modules.d.ts +1 -0
- package/dist/src/internal/nitro/development-generation.js +1 -1
- package/dist/src/internal/nitro/host/artifacts-config.d.ts +6 -1
- package/dist/src/internal/nitro/host/artifacts-config.js +1 -1
- package/dist/src/internal/nitro/host/build-application.js +1 -1
- package/dist/src/internal/nitro/host/compiled-sandbox-provider-prune-plugin.d.ts +16 -0
- package/dist/src/internal/nitro/host/compiled-sandbox-provider-prune-plugin.js +5 -0
- package/dist/src/internal/nitro/host/configure-nitro-routes.js +2 -2
- package/dist/src/internal/nitro/host/create-application-nitro.d.ts +3 -3
- package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
- package/dist/src/internal/nitro/host/dev-authored-rebuild-coordinator.js +1 -1
- package/dist/src/internal/nitro/host/dev-host-fingerprint.js +1 -1
- package/dist/src/internal/nitro/host/development-runtime-prune-plugin.d.ts +9 -0
- package/dist/src/internal/nitro/host/development-runtime-prune-plugin.js +2 -0
- package/dist/src/internal/nitro/host/prepare-application-host.d.ts +1 -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 +2 -2
- package/dist/src/internal/nitro/host/types.d.ts +1 -1
- package/dist/src/internal/nitro/routes/agent-info/build-agent-info-response.js +1 -1
- package/dist/src/internal/nitro/routes/runtime-artifacts.d.ts +1 -0
- package/dist/src/internal/nitro/routes/runtime-artifacts.js +1 -1
- package/dist/src/internal/runtime-registry.d.ts +2 -2
- package/dist/src/internal/vercel/build-agent-workspace.d.ts +3 -1
- package/dist/src/internal/vercel/build-agent-workspace.js +1 -1
- package/dist/src/public/channels/chat-sdk/chatSdkChannel.d.ts +4 -5
- package/dist/src/public/channels/chat-sdk/chatSdkChannel.js +2 -2
- package/dist/src/public/channels/github/checkout.js +1 -1
- package/dist/src/public/channels/index.d.ts +1 -1
- package/dist/src/public/channels/slack/slackChannel.d.ts +3 -1
- package/dist/src/public/channels/slack/slackChannel.js +1 -1
- package/dist/src/public/definitions/channel.d.ts +1 -1
- package/dist/src/public/definitions/sandbox.d.ts +5 -43
- package/dist/src/public/definitions/sandbox.js +1 -1
- package/dist/src/public/local-dev.d.ts +4 -5
- package/dist/src/public/next/vercel-output-config.js +1 -1
- package/dist/src/public/sandbox/docker-sandbox.d.ts +16 -40
- package/dist/src/public/sandbox/docker.d.ts +2 -2
- package/dist/src/public/sandbox/docker.js +1 -1
- package/dist/src/public/sandbox/index.d.ts +4 -9
- package/dist/src/public/sandbox/index.js +1 -1
- package/dist/src/public/sandbox/just-bash-sandbox.d.ts +11 -6
- package/dist/src/public/sandbox/just-bash.d.ts +2 -2
- package/dist/src/public/sandbox/just-bash.js +1 -1
- package/dist/src/public/sandbox/microsandbox-sandbox.d.ts +11 -17
- package/dist/src/public/sandbox/microsandbox.d.ts +2 -2
- package/dist/src/public/sandbox/microsandbox.js +1 -1
- package/dist/src/public/sandbox/provider.d.ts +1 -0
- package/dist/src/public/sandbox/provider.js +1 -0
- package/dist/src/public/sandbox/vercel-sandbox.d.ts +10 -41
- package/dist/src/public/sandbox/vercel.d.ts +2 -2
- package/dist/src/public/sandbox/vercel.js +1 -1
- package/dist/src/runtime/cache-key.js +1 -1
- package/dist/src/runtime/compiled-artifacts-source.d.ts +6 -1
- package/dist/src/runtime/compiled-artifacts-source.js +1 -1
- package/dist/src/runtime/loaders/artifact-paths.d.ts +1 -0
- package/dist/src/runtime/loaders/artifact-paths.js +1 -1
- package/dist/src/runtime/loaders/bundled-artifacts.d.ts +3 -0
- package/dist/src/runtime/loaders/bundled-artifacts.js +1 -1
- package/dist/src/runtime/loaders/compile-metadata.js +1 -1
- package/dist/src/runtime/loaders/manifest.js +1 -1
- package/dist/src/runtime/loaders/module-map.js +1 -1
- package/dist/src/runtime/local-dev-capability.d.ts +14 -12
- package/dist/src/runtime/local-dev-capability.js +1 -1
- package/dist/src/runtime/resolve-agent-graph.js +1 -1
- package/dist/src/runtime/resolve-sandbox.d.ts +1 -10
- package/dist/src/runtime/resolve-sandbox.js +1 -1
- package/dist/src/runtime/sandbox/prepared-artifacts.d.ts +13 -0
- package/dist/src/runtime/sandbox/prepared-artifacts.js +1 -0
- package/dist/src/runtime/sandbox/registry.d.ts +2 -9
- package/dist/src/runtime/sandbox/registry.js +1 -1
- package/dist/src/runtime/sessions/runtime-session.js +1 -1
- package/dist/src/runtime/types.d.ts +13 -26
- package/dist/src/runtime/workspace/types.d.ts +1 -1
- package/dist/src/sandbox/providers/default.d.ts +27 -0
- package/dist/src/sandbox/providers/default.js +1 -0
- package/dist/src/sandbox/providers/docker.d.ts +11 -0
- package/dist/src/sandbox/providers/docker.js +1 -0
- package/dist/src/sandbox/providers/just-bash.d.ts +4 -0
- package/dist/src/sandbox/providers/just-bash.js +1 -0
- package/dist/src/sandbox/providers/microsandbox.d.ts +12 -0
- package/dist/src/sandbox/providers/microsandbox.js +1 -0
- package/dist/src/sandbox/providers/vercel.d.ts +12 -0
- package/dist/src/sandbox/providers/vercel.js +1 -0
- package/dist/src/sandbox/providers.d.ts +5 -0
- package/dist/src/sandbox/providers.js +1 -0
- package/dist/src/sandbox/state.d.ts +6 -25
- package/dist/src/self-modification/extension/subagents/agent/agent.d.ts +1 -1
- package/dist/src/self-modification/extension/subagents/agent/agent.js +1 -1
- package/dist/src/self-modification/extension/subagents/agent/sandbox.d.ts +2 -25
- package/dist/src/self-modification/extension/subagents/agent/sandbox.js +1 -1
- package/dist/src/self-modification/extension/subagents/agent/tools/publish.js +1 -1
- package/dist/src/self-modification/extension/subagents/agent/tools/registry_add.js +1 -1
- package/dist/src/self-modification/filesystem.d.ts +3 -1
- package/dist/src/self-modification/filesystem.js +1 -1
- package/dist/src/self-modification/git-workspace.d.ts +1 -1
- package/dist/src/self-modification/git.d.ts +1 -1
- package/dist/src/self-modification/sandbox.d.ts +14 -9
- package/dist/src/self-modification/sandbox.js +1 -1
- package/dist/src/setup/boxes/select-model.js +1 -1
- package/dist/src/setup/cli/select-state.d.ts +4 -2
- package/dist/src/setup/cli/select-state.js +1 -1
- package/dist/src/setup/flows/model-login.js +1 -1
- package/dist/src/{cli/commands/registry-pnpm-build-policy.d.ts → setup/primitives/pm/pnpm-build-policy.d.ts} +4 -0
- package/dist/src/setup/primitives/pm/pnpm-build-policy.js +8 -0
- package/dist/src/setup/primitives/pm/pnpm.js +3 -2
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/shared/default-agent-model.d.ts +1 -1
- package/dist/src/shared/default-agent-model.js +1 -1
- package/dist/src/shared/sandbox-environment.d.ts +45 -0
- package/dist/src/shared/sandbox-environment.js +1 -0
- package/dist/src/shared/sandbox-network-policy.d.ts +8 -3
- package/dist/src/shared/sandbox-network-policy.js +1 -1
- package/dist/src/shared/sandbox-prepared-artifacts.d.ts +16 -0
- package/dist/src/shared/sandbox-prepared-artifacts.js +1 -0
- package/dist/src/shared/sandbox-provider.d.ts +112 -0
- package/dist/src/shared/sandbox-provider.js +1 -0
- package/dist/src/shared/sandbox-session.d.ts +18 -41
- package/dist/src/shared/sandbox-template-error.d.ts +9 -0
- package/dist/src/shared/sandbox-template-error.js +1 -0
- package/dist/src/subagents/tool.d.ts +1 -1
- package/dist/src/subagents/tool.js +1 -1
- package/dist/src/svelte/index.js +1 -1
- package/dist/src/svelte/use-eve-agent.js +1 -1
- package/dist/src/tasks/delivery-context.d.ts +6 -4
- package/dist/src/tasks/delivery-context.js +1 -1
- package/dist/src/tasks/delivery-policy.d.ts +2 -0
- package/dist/src/tasks/delivery-policy.js +1 -1
- package/dist/src/tools/framework/agent-contract.js +1 -1
- package/dist/src/vue/index.js +1 -1
- package/dist/src/vue/use-eve-agent.js +1 -1
- package/docs/README.md +40 -45
- package/docs/agent-config.md +2 -2
- package/docs/channels/eve.mdx +1 -1
- package/docs/channels/overview.mdx +48 -0
- package/docs/channels/slack.mdx +1 -1
- package/docs/concepts/execution-model-and-durability.mdx +1 -1
- package/docs/concepts/sessions-runs-and-streaming.md +3 -3
- package/docs/dynamic-configuration/meta.json +5 -0
- package/docs/evals/overview.mdx +43 -0
- package/docs/getting-started.mdx +1 -1
- package/docs/guides/client/overview.mdx +1 -1
- package/docs/guides/deployment/overview.md +1 -1
- package/docs/guides/deployment/self-hosting.md +5 -5
- package/docs/guides/deployment/vercel.mdx +10 -18
- package/docs/guides/dev-tui.md +1 -1
- package/docs/guides/hooks.md +4 -0
- package/docs/guides/instrumentation/instrumentation.mdx +1 -1
- package/docs/guides/instrumentation/migration.md +1 -6
- package/docs/guides/instrumentation/otel.mdx +15 -47
- package/docs/memory/meta.json +1 -1
- package/docs/memory/overview.mdx +4 -0
- package/docs/meta.json +13 -16
- package/docs/patterns/meta.json +2 -2
- package/docs/protocols/acp.md +1 -1
- package/docs/protocols/ucp.mdx +1 -1
- package/docs/reference/cli.md +10 -9
- package/docs/reference/meta.json +4 -1
- package/docs/reference/typescript-api.md +2 -25
- package/docs/sandbox/default.mdx +17 -0
- package/docs/sandbox/docker.mdx +29 -0
- package/docs/sandbox/index.mdx +218 -0
- package/docs/sandbox/just-bash.mdx +24 -0
- package/docs/sandbox/meta.json +5 -0
- package/docs/sandbox/microsandbox.mdx +31 -0
- package/docs/sandbox/vercel.mdx +106 -0
- package/docs/schedules.mdx +35 -1
- package/docs/subagents/index.mdx +31 -13
- package/docs/subagents/meta.json +1 -1
- package/docs/tools/overview.mdx +14 -6
- package/docs/tutorial/run-analysis.mdx +6 -5
- package/package.json +20 -11
- package/dist/src/cli/commands/registry-pnpm-build-policy.js +0 -6
- package/dist/src/compiled/_chunks/node/chunk-5OX2R7AJ-CxVV-owP.js +0 -1
- package/dist/src/compiled/_chunks/node/chunk-AYN7QRWH-B__hKQV7.js +0 -1
- package/dist/src/compiled/_chunks/node/chunk-QZV7YRVM-Dzw4WEBv.js +0 -1
- package/dist/src/compiled/_chunks/node/dist-CweJdVFE.js +0 -6
- package/dist/src/compiled/_chunks/node/dist-Da54NuK8.js +0 -96
- package/dist/src/compiled/_chunks/workflow/attribute-changes-A6HfMNG3.js +0 -6
- package/dist/src/compiled/_chunks/workflow/resume-hook-CAqlhwic.js +0 -1
- package/dist/src/compiled/_chunks/workflow/sleep-CbUwdv6O.js +0 -1
- package/dist/src/compiled/chat/_mdast.d.ts +0 -24
- package/dist/src/compiled/chat/_workflow-serde.d.ts +0 -3
- package/dist/src/compiled/chat/jsx-runtime-_JEEAotp.d.ts +0 -907
- package/dist/src/execution/sandbox/bindings/local-backend-utils.js +0 -1
- package/dist/src/execution/sandbox/development-prewarm.d.ts +0 -15
- package/dist/src/execution/sandbox/development-prewarm.js +0 -1
- package/dist/src/execution/sandbox/lazy-backend.d.ts +0 -15
- package/dist/src/execution/sandbox/lazy-backend.js +0 -1
- package/dist/src/execution/sandbox/template-prewarm-lock.d.ts +0 -8
- package/dist/src/execution/sandbox/template-prewarm-lock.js +0 -1
- package/dist/src/internal/authored-definition/sandbox.d.ts +0 -17
- package/dist/src/internal/authored-definition/sandbox.js +0 -1
- package/dist/src/internal/nitro/host/compiled-sandbox-backend-prune-plugin.d.ts +0 -16
- package/dist/src/internal/nitro/host/compiled-sandbox-backend-prune-plugin.js +0 -2
- package/dist/src/public/definitions/sandbox-backend.d.ts +0 -17
- package/dist/src/public/definitions/sandbox-backend.js +0 -1
- package/dist/src/public/sandbox/backends/default.d.ts +0 -1
- package/dist/src/public/sandbox/backends/default.js +0 -1
- package/dist/src/public/sandbox/backends/docker.d.ts +0 -1
- package/dist/src/public/sandbox/backends/docker.js +0 -1
- package/dist/src/public/sandbox/backends/just-bash.d.ts +0 -1
- package/dist/src/public/sandbox/backends/just-bash.js +0 -1
- package/dist/src/public/sandbox/backends/microsandbox.d.ts +0 -1
- package/dist/src/public/sandbox/backends/microsandbox.js +0 -1
- package/dist/src/public/sandbox/backends/vercel.d.ts +0 -1
- package/dist/src/public/sandbox/backends/vercel.js +0 -1
- package/dist/src/runtime/sandbox/keys.d.ts +0 -42
- package/dist/src/runtime/sandbox/keys.js +0 -1
- package/dist/src/runtime/sandbox/template-plan.d.ts +0 -24
- package/dist/src/runtime/sandbox/template-plan.js +0 -1
- package/dist/src/sandbox/backends/default.d.ts +0 -42
- package/dist/src/sandbox/backends/default.js +0 -1
- package/dist/src/sandbox/backends/docker.d.ts +0 -14
- package/dist/src/sandbox/backends/docker.js +0 -1
- package/dist/src/sandbox/backends/just-bash.d.ts +0 -17
- package/dist/src/sandbox/backends/just-bash.js +0 -1
- package/dist/src/sandbox/backends/microsandbox.d.ts +0 -17
- package/dist/src/sandbox/backends/microsandbox.js +0 -1
- package/dist/src/sandbox/backends/vercel.d.ts +0 -30
- package/dist/src/sandbox/backends/vercel.js +0 -1
- package/dist/src/shared/sandbox-backend.d.ts +0 -176
- package/dist/src/shared/sandbox-backend.js +0 -1
- package/dist/src/shared/sandbox-definition.d.ts +0 -112
- package/dist/src/shared/sandbox-definition.js +0 -1
- package/docs/sandbox.mdx +0 -342
package/docs/meta.json
CHANGED
|
@@ -2,40 +2,37 @@
|
|
|
2
2
|
"pages": [
|
|
3
3
|
"---Introduction---",
|
|
4
4
|
"getting-started",
|
|
5
|
+
"tutorial",
|
|
5
6
|
"concepts",
|
|
6
7
|
"---Build---",
|
|
7
8
|
"agent-config",
|
|
8
9
|
"instructions",
|
|
10
|
+
"skills",
|
|
11
|
+
"sandbox",
|
|
12
|
+
"schedules",
|
|
13
|
+
"guides/hooks",
|
|
9
14
|
"memory",
|
|
10
15
|
"tools",
|
|
11
16
|
"connections",
|
|
12
17
|
"channels",
|
|
13
|
-
"skills",
|
|
14
|
-
"sandbox",
|
|
15
18
|
"subagents",
|
|
16
|
-
"
|
|
17
|
-
"guides/session-context",
|
|
18
|
-
"schedules",
|
|
19
|
-
"guides/hooks",
|
|
20
|
-
"guides/dynamic-capabilities",
|
|
19
|
+
"dynamic-configuration",
|
|
21
20
|
"---Integrate---",
|
|
22
21
|
"install-integrations",
|
|
23
22
|
"extensions",
|
|
24
|
-
"
|
|
25
|
-
"guides/remote-agents",
|
|
26
|
-
"protocols",
|
|
27
|
-
"guides/frontend",
|
|
23
|
+
"protocols/acp",
|
|
28
24
|
"guides/client",
|
|
25
|
+
"guides/frontend",
|
|
29
26
|
"---Operate---",
|
|
30
|
-
"guides/deployment",
|
|
31
27
|
"guides/auth-and-route-protection",
|
|
28
|
+
"guides/deployment",
|
|
29
|
+
"evals",
|
|
32
30
|
"guides/instrumentation",
|
|
33
|
-
"guides/dev-tui",
|
|
34
31
|
"---Reference---",
|
|
35
|
-
"
|
|
36
|
-
"patterns",
|
|
32
|
+
"guides/dev-tui",
|
|
37
33
|
"...reference",
|
|
38
34
|
"responsible-use",
|
|
39
|
-
"[Benchmarks](/benchmarks)"
|
|
35
|
+
"[Benchmarks](/benchmarks)",
|
|
36
|
+
"patterns"
|
|
40
37
|
]
|
|
41
38
|
}
|
package/docs/patterns/meta.json
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"title": "Patterns",
|
|
3
3
|
"defaultOpen": false,
|
|
4
4
|
"pages": [
|
|
5
|
-
"multi-tenant-memory",
|
|
6
5
|
"dynamic-scheduling",
|
|
7
6
|
"durable-cross-channel-notifications",
|
|
8
7
|
"multi-tenant-auth",
|
|
9
|
-
"multi-tenant-approvals"
|
|
8
|
+
"multi-tenant-approvals",
|
|
9
|
+
"../protocols/ucp"
|
|
10
10
|
]
|
|
11
11
|
}
|
package/docs/protocols/acp.md
CHANGED
package/docs/protocols/ucp.mdx
CHANGED
package/docs/reference/cli.md
CHANGED
|
@@ -42,7 +42,7 @@ eve collects CLI telemetry by default to improve the command-line interface. Run
|
|
|
42
42
|
## `eve init`
|
|
43
43
|
|
|
44
44
|
```bash
|
|
45
|
-
eve init [target] [--model <provider/model-id>] [--reasoning <effort>] [--channel-web-nextjs]
|
|
45
|
+
eve init [target] [--model <provider/model-id>] [--reasoning <effort>] [--channel-web-nextjs] [--non-interactive]
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
Creates a new agent app or adds an agent to an existing app. Always installs dependencies. New directories also initialize Git.
|
|
@@ -57,13 +57,14 @@ Creates a new agent app or adds an agent to an existing app. Always installs dep
|
|
|
57
57
|
|
|
58
58
|
Existing packages do not need a target-selection prompt: run `eve init` from the project directory or `eve init path/to/app`. New projects in non-interactive environments need a new directory name, such as `eve init my-agent`.
|
|
59
59
|
|
|
60
|
-
After scaffolding in an interactive human terminal, eve opens the TUI directly. Noninteractive and coding-agent invocations return without starting an interactive session. Fresh projects use the parent workspace's package manager when there is one; otherwise they use the manager that launched `eve init`.
|
|
60
|
+
After scaffolding in an interactive human terminal, eve opens the TUI directly. Pass `-n` or `--non-interactive` to return after scaffolding instead. It still installs dependencies and follows the normal Git setup behavior. Noninteractive and coding-agent invocations return without starting an interactive session. Fresh projects use the parent workspace's package manager when there is one; otherwise they use the manager that launched `eve init`.
|
|
61
61
|
|
|
62
|
-
| Flag
|
|
63
|
-
|
|
|
64
|
-
| `--model <model>`
|
|
65
|
-
| `--reasoning <effort>`
|
|
66
|
-
| `--channel-web-nextjs`
|
|
62
|
+
| Flag | Type | Default | Description |
|
|
63
|
+
| ----------------------- | ------ | -------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
|
|
64
|
+
| `--model <model>` | string | `openai/gpt-5.6-luna-fast` | Set the root agent's AI Gateway model ID. |
|
|
65
|
+
| `--reasoning <effort>` | enum | provider default | Set reasoning to `none`, `minimal`, `low`, `medium`, `high`, or `xhigh`. `provider-default` leaves the field unauthored. |
|
|
66
|
+
| `--channel-web-nextjs` | flag | off | Add the Web Chat app (Next.js). Not for existing projects — run `eve add channel/web` there instead. |
|
|
67
|
+
| `-n, --non-interactive` | flag | off | Scaffold and install dependencies without starting development. |
|
|
67
68
|
|
|
68
69
|
## `eve extension`
|
|
69
70
|
|
|
@@ -160,7 +161,7 @@ Run this first when something behaves unexpectedly. It confirms a file was disco
|
|
|
160
161
|
eve build [--profile <path>] [--skip-sandbox-prewarm]
|
|
161
162
|
```
|
|
162
163
|
|
|
163
|
-
Compiles and bundles in an invocation-owned directory under `.eve/builds/`, then publishes the completed host output and prints its path. Scratch workspaces are removed after success or failure.
|
|
164
|
+
Compiles and bundles in an invocation-owned directory under `.eve/builds/`, prepares sandbox artifacts, then publishes the completed host output and prints its path. Scratch workspaces are removed after success or failure. Pass `--skip-sandbox-prewarm` when you only need compiled output, such as before a separate typecheck. Skipping preparation can produce output that cannot start its configured sandbox, so do not deploy that output.
|
|
164
165
|
|
|
165
166
|
Authored bundles preserve custom Node.js resolution conditions supplied through `--conditions`,
|
|
166
167
|
`-C`, or `NODE_OPTIONS`. For example, `NODE_OPTIONS="--conditions=react-server" eve build`
|
|
@@ -169,7 +170,7 @@ keeps a channel's `server-only` imports on the same export used during compilati
|
|
|
169
170
|
| Flag | Type | Default | Description |
|
|
170
171
|
| ------------------------ | ------ | ------- | --------------------------------------------------------------------------------------------- |
|
|
171
172
|
| `--profile <path>` | string | off | Best-effort versioned JSON report with build-phase timings and final output-size measurements |
|
|
172
|
-
| `--skip-sandbox-prewarm` | flag | off | Skip sandbox
|
|
173
|
+
| `--skip-sandbox-prewarm` | flag | off | Skip sandbox preparation; the output might not be deployable |
|
|
173
174
|
|
|
174
175
|
Use a profile file to establish a repeatable baseline before changing the build pipeline:
|
|
175
176
|
|
package/docs/reference/meta.json
CHANGED
|
@@ -136,9 +136,9 @@ Tool definitions accept `availableInSubagents: false` to restrict the tool to to
|
|
|
136
136
|
| `eve/memory/file` | `fileMemory`, `inMemory`, and the conditional document backend contract |
|
|
137
137
|
| `eve/memory/file/vercel` | `vercelBlob` and Vercel Blob backend options |
|
|
138
138
|
| `eve/context` | `defineState`, session and state types |
|
|
139
|
-
| `eve/sandbox` | `defineSandbox`,
|
|
139
|
+
| `eve/sandbox` | `defineSandbox`, provider environments, and sandbox session types |
|
|
140
140
|
| `eve/instrumentation` | `defineInstrumentation`, `disableInstrumentation`, `isChannel`, lifecycle provider types |
|
|
141
|
-
| `eve/instrumentation/otel` | `otel`, `otelIntegration`, `localTraces`,
|
|
141
|
+
| `eve/instrumentation/otel` | `otel`, `otelIntegration`, `localTraces`, OpenTelemetry policy types |
|
|
142
142
|
| `eve/local-dev` | `getLocalDevCapability`, `LocalDevCapability` |
|
|
143
143
|
| [`eve/models`](../guides/evaluate) | Automatic model selection with `auto` |
|
|
144
144
|
| `eve/models/openai` | `openai`, `chatgpt`, deprecated `experimental_chatgpt` |
|
|
@@ -154,29 +154,6 @@ Tool definitions accept `availableInSubagents: false` to restrict the tool to to
|
|
|
154
154
|
|
|
155
155
|
Exported types ship from the same entrypoint as the helper they describe (for example `ToolDefinition` and `ToolContext` from `eve/tools`). The `exports` field in `packages/eve/package.json` lists every public entrypoint.
|
|
156
156
|
|
|
157
|
-
## Local development capability
|
|
158
|
-
|
|
159
|
-
Use `getLocalDevCapability()` when an authored tool needs to modify the local application's source tree during an interactive development turn:
|
|
160
|
-
|
|
161
|
-
```ts
|
|
162
|
-
import { getLocalDevCapability } from "eve/local-dev";
|
|
163
|
-
|
|
164
|
-
const localDev = getLocalDevCapability();
|
|
165
|
-
if (localDev === undefined) {
|
|
166
|
-
throw new Error("This tool is available only from a local eve dev client.");
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
await localDev.withSuspendedSource(async () => {
|
|
170
|
-
// Write under localDev.appRoot here.
|
|
171
|
-
});
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
The function returns `LocalDevCapability | undefined`. It returns a capability only while authored code handles a request from a client on the same machine as the `eve dev` server. Deployed runtimes and clients attached over the network receive `undefined`, even when the target is another development server. A local TUI that attaches to an existing headless server receives the capability because availability follows each request rather than the process that started the server.
|
|
175
|
-
|
|
176
|
-
`appRoot` is the authored application directory containing `package.json` and `agent/`, not the temporary runtime snapshot. `interactiveClient` is `true` when the requesting local client is the dev TUI; check it before starting a flow that requires terminal interaction.
|
|
177
|
-
|
|
178
|
-
Run source mutations inside `withSuspendedSource()`. It acquires a unique watcher lease, waits for your asynchronous callback to settle, and then releases the lease. Concurrent or nested calls cannot resume each other early, and releasing the final lease rebuilds the runtime artifacts. The callback's return value is returned, and its error is rethrown after release. If suspension cannot be acquired, the callback does not run. If the host cannot confirm release after a retry, the method throws an actionable error; restart `eve dev` before making more source changes.
|
|
179
|
-
|
|
180
157
|
## Direct provider models
|
|
181
158
|
|
|
182
159
|
`openai(model?)` from `eve/models/openai` and `anthropic(model?)` from `eve/models/anthropic` return eve-owned model instances using the vendored providers. They accept only an optional model ID. Defaults are `gpt-5.6-luna-fast` and `claude-sonnet-5`, respectively.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Default Sandbox"
|
|
3
|
+
description: "Let eve select the sandbox provider for the current environment."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
`DefaultSandbox.environment()` preserves eve's standard behavior without exposing provider-specific live creation options.
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import { DefaultSandbox, defineSandbox } from "eve/sandbox";
|
|
10
|
+
|
|
11
|
+
export const environment = DefaultSandbox.environment();
|
|
12
|
+
export default defineSandbox(() => environment.open());
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
On Vercel, it selects [Vercel Sandbox](/docs/sandbox/vercel). Elsewhere, it tries [Docker](/docs/sandbox/docker), [microsandbox](/docs/sandbox/microsandbox), and [just-bash](/docs/sandbox/just-bash), in that order, according to host support.
|
|
16
|
+
|
|
17
|
+
Use a provider directly when you need its image, VM, network, compute, or mount options.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Docker Sandbox"
|
|
3
|
+
description: "Create local persistent containers from an image or Dockerfile."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Docker environments can use eve's default image, an existing OCI image, or `agent/sandbox/Dockerfile`.
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import { defineSandbox } from "eve/sandbox";
|
|
10
|
+
import { DockerSandbox } from "eve/sandbox/docker";
|
|
11
|
+
|
|
12
|
+
export const environment = DockerSandbox.image("ghcr.io/acme/agent@sha256:...");
|
|
13
|
+
|
|
14
|
+
export default defineSandbox(() => environment.open({ networkPolicy: "deny-all" }));
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Use `DockerSandbox.environment()` for the default image or `DockerSandbox.dockerfile()` for the colocated Dockerfile convention.
|
|
18
|
+
|
|
19
|
+
## Environment options
|
|
20
|
+
|
|
21
|
+
Image, pull policy, environment variables, and `prepare` belong to the reusable environment. During preparation, eve starts a temporary container, hydrates managed resources, runs authored preparation, and commits the result as the recorded template image.
|
|
22
|
+
|
|
23
|
+
## Live container options
|
|
24
|
+
|
|
25
|
+
Pass `networkPolicy` to `open()`. Docker supports only `"allow-all"` and `"deny-all"`. The policy applies to the live container, not the prepared image.
|
|
26
|
+
|
|
27
|
+
A session-owned container keeps writable `/workspace` state in its container filesystem. A stopped container restarts with that state.
|
|
28
|
+
|
|
29
|
+
See the [sandbox overview](/docs/sandbox) for managed workspace, skills, parent inheritance, and custom providers.
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Sandbox"
|
|
3
|
+
description: "Configure the isolated filesystem and command environment used by an eve agent."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Every eve agent has one sandbox rooted at `/workspace`. The built-in `bash`, `read_file`, and `write_file` tools use it. Without an authored sandbox file, eve selects the best available environment automatically.
|
|
7
|
+
|
|
8
|
+
## Use the sandbox
|
|
9
|
+
|
|
10
|
+
Authored tools and callbacks access the live sandbox with `ctx.getSandbox()`:
|
|
11
|
+
|
|
12
|
+
```ts title="agent/tools/run_analysis.ts"
|
|
13
|
+
import { defineTool } from "eve/tools";
|
|
14
|
+
import { z } from "zod";
|
|
15
|
+
|
|
16
|
+
export default defineTool({
|
|
17
|
+
description: "Run a Python script.",
|
|
18
|
+
inputSchema: z.object({ script: z.string() }),
|
|
19
|
+
async execute({ script }, ctx) {
|
|
20
|
+
const sandbox = await ctx.getSandbox();
|
|
21
|
+
await sandbox.writeTextFile({ path: "analysis.py", content: script });
|
|
22
|
+
const result = await sandbox.run({ command: "python analysis.py" });
|
|
23
|
+
if (result.exitCode !== 0) throw new Error(result.stderr);
|
|
24
|
+
return result.stdout;
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Relative paths resolve under `/workspace`. `run()` returns `{ exitCode, stdout, stderr }`; a nonzero exit code does not throw automatically. Use `spawn()` for a long-running process.
|
|
30
|
+
|
|
31
|
+
## Define an environment
|
|
32
|
+
|
|
33
|
+
A sandbox module exports an environment and returns a sandbox from `defineSandbox()`:
|
|
34
|
+
|
|
35
|
+
```ts title="agent/sandbox.ts"
|
|
36
|
+
import { DefaultSandbox, defineSandbox } from "eve/sandbox";
|
|
37
|
+
|
|
38
|
+
export const environment = DefaultSandbox.environment();
|
|
39
|
+
export default defineSandbox(() => environment.open());
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
`environment.open()` starts the persistent sandbox owned by the current eve session. The `defineSandbox()` selector runs until initialization succeeds, then eve checkpoints the selected provider and its state. Later workflow steps and process restarts call the provider's `resume()` directly without rerunning the selector or `environment.open()`.
|
|
43
|
+
|
|
44
|
+
Pass options for the live sandbox to `open()`, then configure the returned sandbox before returning it. This initialization runs once for a successfully started durable sandbox:
|
|
45
|
+
|
|
46
|
+
```ts
|
|
47
|
+
import { defineSandbox } from "eve/sandbox";
|
|
48
|
+
import { VercelSandbox } from "eve/sandbox/vercel";
|
|
49
|
+
|
|
50
|
+
export const environment = VercelSandbox.environment();
|
|
51
|
+
|
|
52
|
+
export default defineSandbox(async ({ session }) => {
|
|
53
|
+
const sandbox = await environment.open({ networkPolicy: "deny-all" });
|
|
54
|
+
await sandbox.writeTextFile({ path: ".eve/session", content: session.id });
|
|
55
|
+
return sandbox;
|
|
56
|
+
});
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
The environment export is required because `eve build` prepares immutable environment inputs before a session exists.
|
|
60
|
+
|
|
61
|
+
### Prepare a reusable environment
|
|
62
|
+
|
|
63
|
+
Use the environment's `prepare` option for setup every new sandbox inherits:
|
|
64
|
+
|
|
65
|
+
```ts
|
|
66
|
+
import { defineSandbox } from "eve/sandbox";
|
|
67
|
+
import { VercelSandbox } from "eve/sandbox/vercel";
|
|
68
|
+
|
|
69
|
+
export const environment = VercelSandbox.environment({
|
|
70
|
+
prepare: async (sandbox) => {
|
|
71
|
+
const result = await sandbox.run({
|
|
72
|
+
command: "sudo apt-get update && sudo apt-get install -y jq",
|
|
73
|
+
});
|
|
74
|
+
if (result.exitCode !== 0) throw new Error(result.stderr);
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
export default defineSandbox(() => environment.open());
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
eve runs `prepare` while creating a reusable provider artifact, not once for each live session sandbox. Vercel captures a snapshot; Docker captures an image; microsandbox captures a VM snapshot; and just-bash captures a filesystem template.
|
|
82
|
+
|
|
83
|
+
During `eve dev`, startup and authored-source rebuilds do not prepare sandbox environments. The first sandbox access prepares all environments in that compiled generation before opening the requested sandbox. This includes environments declared by subagents and extensions, even if they use different providers. Concurrent requests share the preparation work; a failed preparation can be retried on a later access. Optional provider installation and setup can make that first access slow.
|
|
84
|
+
|
|
85
|
+
`eve build` still prepares environments eagerly. In production, eve passes the recorded artifact directly to the provider when it creates a live sandbox. Production runtime does not rebuild or repair a missing artifact. A missing image, snapshot, or template fails with rebuild or redeploy guidance.
|
|
86
|
+
|
|
87
|
+
### Reuse native resources across sessions
|
|
88
|
+
|
|
89
|
+
Built-in environments do not expose cross-session sharing. To reuse native compute or storage across eve sessions, define a custom provider that returns a session-owned logical sandbox view and keeps shared resources outside that view's `stop`, `shutdown`, and `delete` operations. A session-specific path is not an isolation boundary; mutually untrusted sessions require separate native compute or stronger provider-owned isolation.
|
|
90
|
+
|
|
91
|
+
### Share a parent sandbox
|
|
92
|
+
|
|
93
|
+
A declared subagent can use its dispatching parent's sandbox explicitly:
|
|
94
|
+
|
|
95
|
+
```ts title="agent/subagents/reviewer/sandbox.ts"
|
|
96
|
+
import { defineParentSandbox } from "eve/sandbox";
|
|
97
|
+
|
|
98
|
+
export default defineParentSandbox();
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
An inheriting subagent cannot declare its own managed workspace or skill files.
|
|
102
|
+
|
|
103
|
+
## Managed workspace and skills
|
|
104
|
+
|
|
105
|
+
Use the sandbox directory for authored workspace seeds:
|
|
106
|
+
|
|
107
|
+
```text
|
|
108
|
+
agent/sandbox/
|
|
109
|
+
sandbox.ts
|
|
110
|
+
workspace/
|
|
111
|
+
schema.sql
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Files under `agent/sandbox/workspace/` seed writable `/workspace`. eve copies the seed when it prepares a new environment generation. Existing live sandbox state is not overwritten by later seed changes.
|
|
115
|
+
|
|
116
|
+
Agent skills are compiled into a separate resource tree and exposed at `$HOME/.agents/skills`. These are stable paths across every built-in provider, so instructions and tools can refer to `/workspace` and `$HOME/.agents/skills`. Do not refer to a concrete home directory or `/eve/resources`, which is provider-internal staging.
|
|
117
|
+
|
|
118
|
+
Providers receive both trees with explicit metadata:
|
|
119
|
+
|
|
120
|
+
```ts
|
|
121
|
+
interface SandboxProviderResources {
|
|
122
|
+
source:
|
|
123
|
+
| { kind: "none" }
|
|
124
|
+
| { kind: "inline"; key: string }
|
|
125
|
+
| { kind: "materialized"; key: string; path: string }
|
|
126
|
+
| { kind: "reference"; key: string };
|
|
127
|
+
workspace?: SandboxProviderResourceTree;
|
|
128
|
+
skills?: SandboxProviderResourceTree;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
interface SandboxProviderResourceTree {
|
|
132
|
+
key: string;
|
|
133
|
+
files: ResourceFile[];
|
|
134
|
+
mountPath: string;
|
|
135
|
+
targetPath: string;
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Docker and microsandbox mount the compiled trees read-only under `/eve/resources`, copy workspace seeds into writable `/workspace`, and expose skills read-only where possible. Vercel's snapshot environment writes workspace and skill contents before capturing its snapshot. Custom providers decide whether to upload, mount, or write each tree, but must expose the final target paths before authored preparation runs.
|
|
140
|
+
|
|
141
|
+
## Custom providers
|
|
142
|
+
|
|
143
|
+
Define a provider with `defineSandboxProvider()` from `eve/sandbox/provider`. The five generic parameters describe environment options, live options, the prepared artifact, minimal serialized session state, and the provider-specific sandbox session type:
|
|
144
|
+
|
|
145
|
+
```ts
|
|
146
|
+
import type { SandboxSession } from "eve/sandbox";
|
|
147
|
+
import { defineSandboxProvider } from "eve/sandbox/provider";
|
|
148
|
+
|
|
149
|
+
export const AcmeSandbox = defineSandboxProvider<
|
|
150
|
+
{ image: string; prepare?: (sandbox: SandboxSession) => Promise<void> },
|
|
151
|
+
{ networkPolicy?: "allow-all" | "deny-all" },
|
|
152
|
+
{ templateId: string },
|
|
153
|
+
{ remoteId: string; version: 1 },
|
|
154
|
+
SandboxSession
|
|
155
|
+
>({
|
|
156
|
+
name: "acme",
|
|
157
|
+
environment(options) {
|
|
158
|
+
const client = createAcmeClient(options);
|
|
159
|
+
|
|
160
|
+
return {
|
|
161
|
+
async prepare(ctx) {
|
|
162
|
+
const temporary = await client.createTemporary({
|
|
163
|
+
files: await ctx.files.list(),
|
|
164
|
+
resources: ctx.resources,
|
|
165
|
+
});
|
|
166
|
+
const sandbox = adaptAcmeSandbox(temporary);
|
|
167
|
+
await options?.prepare?.(sandbox);
|
|
168
|
+
return { templateId: (await temporary.capture()).id };
|
|
169
|
+
},
|
|
170
|
+
|
|
171
|
+
async start(ctx, liveOptions, artifact) {
|
|
172
|
+
const remote = await client.open({
|
|
173
|
+
identity: sessionIdentity(ctx.session.id, artifact, liveOptions),
|
|
174
|
+
networkPolicy: liveOptions?.networkPolicy,
|
|
175
|
+
templateId: artifact.templateId,
|
|
176
|
+
});
|
|
177
|
+
return {
|
|
178
|
+
handle: createHandle(remote),
|
|
179
|
+
state: { remoteId: remote.id, version: 1 },
|
|
180
|
+
};
|
|
181
|
+
},
|
|
182
|
+
|
|
183
|
+
async resume(_ctx, artifact, state) {
|
|
184
|
+
const remote = await client.resume({ id: state.remoteId, templateId: artifact.templateId });
|
|
185
|
+
return createHandle(remote);
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
`prepare()` returns the complete JSON-serializable artifact. Core calls `start()` once for a new durable sandbox session and persists its minimal JSON-compatible state. Process restarts call `resume()` with only the current context, that state, and the target deployment's exact artifact. Provider handles implement `onSessionStop()`, `onRuntimeShutdown()`, and `onSessionDelete()`.
|
|
193
|
+
|
|
194
|
+
Open options belong to `start()` and are not serialized or passed to `resume()`. A provider must put any immutable option-derived data needed for reconnection in its session state. With the current immutable-state contract, `resume()` reconnects existing native state and fails if it is gone rather than recreating callback side effects. A custom provider may define start-only callback fields, but built-in providers initialize the sandbox in `defineSandbox()` after `open()`.
|
|
195
|
+
|
|
196
|
+
Preparation discovers authored files through `ctx.files`; core keeps project layout and artifact storage keys private. Keep provider SDK values behind the provider. `environment.open()` preserves the provider's sandbox capability type, while the heterogeneous runtime registry erases it to eve's common session surface.
|
|
197
|
+
|
|
198
|
+
## Providers
|
|
199
|
+
|
|
200
|
+
| Provider | Use it for |
|
|
201
|
+
| ------------------------------------------ | --------------------------------------------------------------------------------------- |
|
|
202
|
+
| [Default](/docs/sandbox/default) | Automatic provider selection with eve's standard behavior. |
|
|
203
|
+
| [Vercel](/docs/sandbox/vercel) | Snapshot-backed persistent Vercel Sandboxes, domain network policies, and Drive mounts. |
|
|
204
|
+
| [Docker](/docs/sandbox/docker) | Local containers from the default image, an existing OCI image, or a Dockerfile. |
|
|
205
|
+
| [microsandbox](/docs/sandbox/microsandbox) | Local lightweight VMs from an OCI image or Dockerfile. |
|
|
206
|
+
| [just-bash](/docs/sandbox/just-bash) | A pure-JavaScript shell and virtual filesystem without native process isolation. |
|
|
207
|
+
|
|
208
|
+
## Lifecycle
|
|
209
|
+
|
|
210
|
+
Session-owned sandboxes persist across turns and deployments while their provider state remains available. `sandbox.stop()` stops compute without deleting persisted state; a later access resumes that state directly. `sandbox.delete()` clears provider state, so the next `ctx.getSandbox()` reruns the selector and starts a fresh sandbox from the current environment.
|
|
211
|
+
|
|
212
|
+
Changing sandbox source, preparation code, Dockerfile content, environment options, workspace resources, or skills produces a new environment generation. Existing durable sessions retain their recorded sandbox state; new sessions use the current generation.
|
|
213
|
+
|
|
214
|
+
## What to read next
|
|
215
|
+
|
|
216
|
+
- [Subagents](/docs/subagents) explains delegation and sandbox ownership.
|
|
217
|
+
- [Security model](/docs/concepts/security-model) describes the app-runtime and sandbox trust boundary.
|
|
218
|
+
- [Vercel Sandbox](https://vercel.com/docs/sandbox) documents hosted sandbox behavior.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "just-bash Sandbox"
|
|
3
|
+
description: "Use a pure-JavaScript shell and virtual filesystem."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
`JustBashSandbox.environment()` provides a shell and filesystem without starting a container or VM.
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import { defineSandbox } from "eve/sandbox";
|
|
10
|
+
import { JustBashSandbox } from "eve/sandbox/just-bash";
|
|
11
|
+
|
|
12
|
+
export const environment = JustBashSandbox.environment();
|
|
13
|
+
export default defineSandbox(() => environment.open());
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
just-bash can prepare and persist its virtual filesystem. It cannot use OCI images or Dockerfiles, does not run native processes, and provides no network isolation. The session does not expose `setNetworkPolicy()`.
|
|
17
|
+
|
|
18
|
+
## Automatic installation
|
|
19
|
+
|
|
20
|
+
When an environment uses just-bash during `eve dev`, eve installs the package into your application if it is missing, unless you set `autoInstall: false` in the environment options. `DefaultSandbox` selects only one provider, but another environment, such as local self-modification, can use just-bash independently. Other environments require you to install the package yourself.
|
|
21
|
+
|
|
22
|
+
For pnpm projects, automatic installation adds `@mongodb-js/zstd` and `node-liblzma` to `ignoredOptionalDependencies` in the owning `pnpm-workspace.yaml` when they have no explicit package policy. These optional native codecs are not needed for basic shell and filesystem operations. Commands that require those codecs may be unavailable without them. eve preserves existing package-specific build decisions and does not automatically approve build scripts.
|
|
23
|
+
|
|
24
|
+
See the [sandbox overview](/docs/sandbox) for managed workspace, skills, parent inheritance, and custom providers.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "microsandbox"
|
|
3
|
+
description: "Create local lightweight VMs from an OCI image or Dockerfile."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
microsandbox environments use eve's default image, an existing OCI image, or `agent/sandbox/Dockerfile`.
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import { defineSandbox } from "eve/sandbox";
|
|
10
|
+
import { MicrosandboxSandbox } from "eve/sandbox/microsandbox";
|
|
11
|
+
|
|
12
|
+
export const environment = MicrosandboxSandbox.dockerfile({
|
|
13
|
+
setup: { autoInstall: false },
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
export default defineSandbox(() => environment.open({ networkPolicy: "deny-all" }));
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Supported hosts are macOS on Apple Silicon and Linux with glibc and KVM.
|
|
20
|
+
|
|
21
|
+
## Environment options
|
|
22
|
+
|
|
23
|
+
Image, CPU, memory, pull policy, environment variables, VM setup, and `prepare` belong to the reusable environment. `eve build` builds a Dockerfile image when present, prepares a VM, and records its snapshot and image references.
|
|
24
|
+
|
|
25
|
+
## Live VM options
|
|
26
|
+
|
|
27
|
+
Pass `networkPolicy` to `open()`. The policy applies to the live VM, not the prepared snapshot. microsandbox accepts domain policies and credential transforms.
|
|
28
|
+
|
|
29
|
+
Session creation uses the recorded snapshot and image directly. Writable VM state persists through the provider's session snapshot lifecycle.
|
|
30
|
+
|
|
31
|
+
See the [sandbox overview](/docs/sandbox) for managed workspace, skills, parent inheritance, and custom providers.
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Vercel Sandbox"
|
|
3
|
+
description: "Create snapshot-backed persistent sandboxes on Vercel."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
`VercelSandbox.environment()` prepares a reusable Vercel Sandbox snapshot and creates persistent session sandboxes from its recorded snapshot ID.
|
|
7
|
+
|
|
8
|
+
```ts
|
|
9
|
+
import { defineSandbox } from "eve/sandbox";
|
|
10
|
+
import { VercelSandbox } from "eve/sandbox/vercel";
|
|
11
|
+
|
|
12
|
+
export const environment = VercelSandbox.environment({
|
|
13
|
+
prepare: async (sandbox) => {
|
|
14
|
+
await sandbox.run({ command: "pnpm install --frozen-lockfile" });
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export default defineSandbox(() =>
|
|
19
|
+
environment.open({
|
|
20
|
+
networkPolicy: {
|
|
21
|
+
allow: {
|
|
22
|
+
"api.github.com": [],
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
resources: { vcpus: 4 },
|
|
26
|
+
}),
|
|
27
|
+
);
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Snapshot preparation
|
|
31
|
+
|
|
32
|
+
eve creates a temporary persistent Vercel Sandbox during build, installs the base runtime, writes managed workspace and skill files, runs the authored `prepare` callback, and captures a snapshot. The build artifact records the snapshot ID.
|
|
33
|
+
|
|
34
|
+
When a live session sandbox does not exist, eve creates it directly from that snapshot ID. Runtime does not need to look up the temporary template Sandbox.
|
|
35
|
+
|
|
36
|
+
## Initialize after open
|
|
37
|
+
|
|
38
|
+
Initialize session-specific state after `open()` and before returning the sandbox. This selector writes a configuration file into the persistent `/workspace` filesystem:
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
import { defineSandbox } from "eve/sandbox";
|
|
42
|
+
import { VercelSandbox } from "eve/sandbox/vercel";
|
|
43
|
+
|
|
44
|
+
export const environment = VercelSandbox.environment();
|
|
45
|
+
|
|
46
|
+
export default defineSandbox(async ({ session }) => {
|
|
47
|
+
const sandbox = await environment.open();
|
|
48
|
+
await sandbox.writeTextFile({
|
|
49
|
+
content: JSON.stringify({ sessionId: session.id, workspace: "analysis" }),
|
|
50
|
+
path: ".eve/session.json",
|
|
51
|
+
});
|
|
52
|
+
return sandbox;
|
|
53
|
+
});
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
The selector runs until initialization succeeds. Later workflow steps and process restarts resume the same provider state without rerunning the selector, so the file is not rewritten at each boundary.
|
|
57
|
+
|
|
58
|
+
You can also configure the live sandbox and run setup commands before returning it:
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
export default defineSandbox(async () => {
|
|
62
|
+
const sandbox = await environment.open();
|
|
63
|
+
await sandbox.setNetworkPolicy("deny-all");
|
|
64
|
+
const result = await sandbox.run({ command: "mkdir -p .cache/app" });
|
|
65
|
+
if (result.exitCode !== 0) throw new Error(result.stderr);
|
|
66
|
+
return sandbox;
|
|
67
|
+
});
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Use the environment's `prepare` callback for immutable setup that every new session should inherit. Use post-open initialization for state that belongs only to one durable session.
|
|
71
|
+
|
|
72
|
+
## Network policy
|
|
73
|
+
|
|
74
|
+
Pass the initial policy to `open()`. It applies to the new live Vercel Sandbox, not to the environment definition:
|
|
75
|
+
|
|
76
|
+
```ts
|
|
77
|
+
return environment.open({
|
|
78
|
+
networkPolicy: {
|
|
79
|
+
allow: {
|
|
80
|
+
"api.example.com": [
|
|
81
|
+
{
|
|
82
|
+
transform: [{ headers: { authorization: `Bearer ${token}` } }],
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
});
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Credential transforms inject headers at the network boundary so the secret does not enter the sandbox process. The dedicated Vercel environment returns a session where `setNetworkPolicy()` is required, so you can update the policy directly after `open()` without a capability check:
|
|
91
|
+
|
|
92
|
+
```ts
|
|
93
|
+
const sandbox = await environment.open();
|
|
94
|
+
await sandbox.setNetworkPolicy("deny-all");
|
|
95
|
+
return sandbox;
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Live sandbox options
|
|
99
|
+
|
|
100
|
+
`open()` also accepts Vercel compute resources, timeout, and Drive mounts. Configure project credentials and custom fetch behavior on the environment, not in `open()`, because resume does not reconstruct start-only options.
|
|
101
|
+
|
|
102
|
+
Initialize the returned sandbox directly in `defineSandbox()`. If initialization fails, eve deletes the newly started sandbox and retries the selector on the next access. After initialization succeeds, the provider persists only immutable JSON-compatible state. If the named Vercel Sandbox later disappears, resume fails rather than recreating initialization side effects.
|
|
103
|
+
|
|
104
|
+
eve owns the persistent sandbox identity and prepared snapshot source.
|
|
105
|
+
|
|
106
|
+
See the [sandbox overview](/docs/sandbox) for managed workspace, skills, parent inheritance, and custom providers.
|