openclaw/package.json
Peter Steinberger 4157ed60ff
fix(ui): stop serving a failed Control UI build on the next Gateway start (#161438)
* fix(ui): stop serving a failed Control UI build on the next Gateway start

Rolldown writes the complete bundle, runs the writeBundle hook, and only
then reports aggregated resolve errors and exits non-zero. scripts/ui.mts
built straight into the served dist/control-ui and reused the runtime build
identity, so a failed build left a correctly stamped tree that the Gateway's
asset health check accepted as ready on the next start (observed: a bare
markdown-it-emoji import broke the Control UI after a gateway-profile worktree
install skipped ui/ dependencies).

scripts/ui.mts now builds into a same-depth dist/control-ui.build-<pid>-*
sibling, runs both validators against it, and renames it into place only on
success, restoring the previous output if publication fails. Dead-process
leftovers are reclaimed on the next build and tsdown's dist cleaning skips
in-flight staging trees. The gateway worktree-setup workload now installs
./ui... because the Gateway builds the Control UI from source on first start.

* fix(ui): restore the previous Control UI bundle after an interrupted swap

A builder killed between moving dist/control-ui aside and renaming its staged build into place left the previous complete bundle only in a dead-process .retired sibling, which the next build's leftover cleanup deleted. The next build now restores the newest dead-process retired bundle when the served path is missing, before reclaiming leftovers, so a failed retry still serves it.

* fix(ui): keep interrupted Control UI builds out of packages

A killed builder cannot reach its cleanup, so a dist/control-ui.build-* staging or retired sibling can survive until the next UI build. Exclude those siblings from the package files list, which also drives the dist inventory, and type the new UI test fixtures for the scripts test lane.

* fix(ui): retry transient Windows denials when publishing the Control UI build

Windows scanners and indexers can briefly deny renaming a freshly written or served directory with EPERM, which failed an otherwise valid rebuild on its first attempt. Every publication rename now retries EPERM, EACCES, and EBUSY on a bounded 100-1600 ms schedule (about 3 s) and keeps restoring the previous bundle when the denial is permanent.
2026-09-30 03:28:17 +00:00

2395 lines
142 KiB
JSON

{
"name": "openclaw",
"version": "2026.9.6",
"openclaw": {
"updateAdmissionProtocol": 1,
"schemaVersions": {
"state": 19,
"agent": 24
}
},
"description": "Multi-channel AI gateway with extensible messaging integrations",
"keywords": [],
"homepage": "https://github.com/openclaw/openclaw#readme",
"bugs": {
"url": "https://github.com/openclaw/openclaw/issues"
},
"license": "MIT",
"author": "OpenClaw Foundation (https://openclaw.org)",
"repository": {
"type": "git",
"url": "git+https://github.com/openclaw/openclaw.git"
},
"bin": {
"openclaw": "openclaw.mjs"
},
"publishConfig": {
"executableFiles": [
"dist/crabbox-wrapper.js",
"dist/entry.js",
"dist/index.js",
"dist/mac-node-worker.js",
"dist/native-hook-relay/entry.js"
]
},
"directories": {
"doc": "docs",
"test": "test"
},
"files": [
"CHANGELOG.md",
"LICENSE",
"cli-root-options.mjs",
"gateway-run-argv.mjs",
"gateway-shutdown-budget.mjs",
"node-sqlite.mjs",
"node-version.mjs",
"node-runtime-update.mjs",
"node-runtime-recovery.mjs",
"node-host-launcher.mjs",
"node-compile-cache.mjs",
"openclaw.mjs",
"pnpm-workspace.yaml",
"README.md",
"THIRD_PARTY_NOTICES.md",
"dist/",
".openclaw-lifecycle-pending",
"!dist/.buildstamp",
"!dist/.runtime-postbuildstamp",
"!dist/**/*.app",
"!dist/control-ui.build-*",
"!dist/**/*.map",
"!dist/plugin-sdk/.tsbuildinfo",
"!dist/plugin-sdk/access-groups.d.ts",
"!dist/plugin-sdk/account-resolution-runtime.d.ts",
"!dist/plugin-sdk/acp-binding-resolve-runtime.d.ts",
"!dist/plugin-sdk/acp-binding-runtime.d.ts",
"!dist/plugin-sdk/acp-runtime.d.ts",
"!dist/plugin-sdk/acp-runtime-backend.d.ts",
"!dist/plugin-sdk/agent-core.d.ts",
"!dist/plugin-sdk/agent-harness-exec-review-runtime.d.ts",
"!dist/plugin-sdk/agent-harness-completion.d.ts",
"!dist/plugin-sdk/agent-harness-tool-runtime.d.ts",
"!dist/plugin-sdk/agent-runtime-test-contracts.js",
"!dist/plugin-sdk/agent-runtime-test-contracts.d.ts",
"!dist/plugin-sdk/agent-sessions.d.ts",
"!dist/plugin-sdk/approval-reaction-runtime.d.ts",
"!dist/plugin-sdk/approval-reference-runtime.d.ts",
"!dist/plugin-sdk/async-lock-runtime.d.ts",
"!dist/plugin-sdk/browser-cdp.d.ts",
"!dist/plugin-sdk/browser-config.d.ts",
"!dist/plugin-sdk/bundled-channel-config-schema.d.ts",
"!dist/plugin-sdk/channel-activity-runtime.d.ts",
"!dist/plugin-sdk/channel-config-ui-hints.d.ts",
"!dist/plugin-sdk/channel-config-writes.d.ts",
"!dist/plugin-sdk/channel-contract-testing.js",
"!dist/plugin-sdk/channel-contract-testing.d.ts",
"!dist/plugin-sdk/channel-ingress-test-runtime.js",
"!dist/plugin-sdk/channel-ingress-test-runtime.d.ts",
"!dist/plugin-sdk/channel-join-intro-runtime.d.ts",
"!dist/plugin-sdk/channel-mention-gating.d.ts",
"!dist/plugin-sdk/channel-route.d.ts",
"!dist/plugin-sdk/channel-secret-owner-runtime.d.ts",
"!dist/plugin-sdk/channel-secret-tts-runtime.d.ts",
"!dist/plugin-sdk/channel-target-testing.js",
"!dist/plugin-sdk/channel-target-testing.d.ts",
"!dist/plugin-sdk/channel-targets.d.ts",
"!dist/plugin-sdk/channel-test-helpers.js",
"!dist/plugin-sdk/channel-test-helpers.d.ts",
"!dist/plugin-sdk/chat-channel-ids.d.ts",
"!dist/plugin-sdk/cli-backend.d.ts",
"!dist/plugin-sdk/claude-model-runtime.d.ts",
"!dist/plugin-sdk/cli-runtime.d.ts",
"!dist/plugin-sdk/codex-mcp-projection.d.ts",
"!dist/plugin-sdk/codex-session-transcript-runtime.d.ts",
"!dist/plugin-sdk/command-status-runtime.d.ts",
"!dist/plugin-sdk/command-surface.d.ts",
"!dist/plugin-sdk/concurrency-runtime.d.ts",
"!dist/plugin-sdk/context-visibility-runtime.d.ts",
"!dist/plugin-sdk/conversation-binding-runtime.d.ts",
"!dist/plugin-sdk/cron-store-runtime.d.ts",
"!dist/plugin-sdk/dangerous-name-runtime.d.ts",
"!dist/plugin-sdk/delivery-queue-runtime.d.ts",
"!dist/plugin-sdk/direct-dm-guard-policy.d.ts",
"!dist/plugin-sdk/directory-config-runtime.d.ts",
"!dist/plugin-sdk/document-extractor.d.ts",
"!dist/plugin-sdk/embedding-providers.d.ts",
"!dist/plugin-sdk/exec-approvals-runtime.d.ts",
"!dist/plugin-sdk/expect-runtime.d.ts",
"!dist/plugin-sdk/fetch-runtime.d.ts",
"!dist/plugin-sdk/file-access-runtime.d.ts",
"!dist/plugin-sdk/file-lock.d.ts",
"!dist/plugin-sdk/gateway-config-runtime.d.ts",
"!dist/plugin-sdk/global-singleton.d.ts",
"!dist/plugin-sdk/group-activation.d.ts",
"!dist/plugin-sdk/heartbeat-runtime.d.ts",
"!dist/plugin-sdk/host-runtime.d.ts",
"!dist/plugin-sdk/html-entity-runtime.d.ts",
"!dist/plugin-sdk/image-generation.d.ts",
"!dist/plugin-sdk/image-generation-core.d.ts",
"!dist/plugin-sdk/image-generation-runtime.d.ts",
"!dist/plugin-sdk/inline-image-data-url-runtime.d.ts",
"!dist/plugin-sdk/json-schema-runtime.d.ts",
"!dist/plugin-sdk/json-unsafe-integers.d.ts",
"!dist/plugin-sdk/keyed-async-queue.d.ts",
"!dist/plugin-sdk/llm.d.ts",
"!dist/plugin-sdk/markdown-table-runtime.d.ts",
"!dist/plugin-sdk/media-generation-runtime.d.ts",
"!dist/plugin-sdk/meeting-page-script-runtime.d.ts",
"!dist/plugin-sdk/memory-core-host-embedding-registry.d.ts",
"!dist/plugin-sdk/memory-core-host-engine-curated.d.ts",
"!dist/plugin-sdk/memory-core-host-engine-embeddings.d.ts",
"!dist/plugin-sdk/memory-core-host-engine-fs.d.ts",
"!dist/plugin-sdk/memory-core-host-engine-sessions.d.ts",
"!dist/plugin-sdk/memory-core-host-engine-schema.d.ts",
"!dist/plugin-sdk/memory-core-host-engine-storage.d.ts",
"!dist/plugin-sdk/memory-core-host-runtime-cli.d.ts",
"!dist/plugin-sdk/memory-core-host-runtime-core.d.ts",
"!dist/plugin-sdk/memory-core-host-runtime-files.d.ts",
"!dist/plugin-sdk/memory-core-host-secret.d.ts",
"!dist/plugin-sdk/memory-core-host-status.d.ts",
"!dist/plugin-sdk/memory-host-events.d.ts",
"!dist/plugin-sdk/memory-host-markdown.d.ts",
"!dist/plugin-sdk/memory-host-search.d.ts",
"!dist/plugin-sdk/message-tool-delivery-hints.d.ts",
"!dist/plugin-sdk/migration.d.ts",
"!dist/plugin-sdk/migration-runtime.d.ts",
"!dist/plugin-sdk/music-generation.d.ts",
"!dist/plugin-sdk/native-hook-relay-runtime.d.ts",
"!dist/plugin-sdk/node-host.d.ts",
"!dist/plugin-sdk/node-selection-runtime.d.ts",
"!dist/plugin-sdk/number-runtime.d.ts",
"!dist/plugin-sdk/outbound-media.d.ts",
"!dist/plugin-sdk/pair-loop-guard-runtime.d.ts",
"!dist/plugin-sdk/plugin-state-runtime.d.ts",
"!dist/plugin-sdk/plugin-state-test-runtime.js",
"!dist/plugin-sdk/plugin-state-test-runtime.d.ts",
"!dist/plugin-sdk/plugin-test-api.js",
"!dist/plugin-sdk/plugin-test-api.d.ts",
"!dist/plugin-sdk/plugin-test-contracts.js",
"!dist/plugin-sdk/plugin-test-contracts.d.ts",
"!dist/plugin-sdk/plugin-test-runtime.js",
"!dist/plugin-sdk/plugin-test-runtime.d.ts",
"!dist/plugin-sdk/poll-runtime.d.ts",
"!dist/plugin-sdk/process-runtime.d.ts",
"!dist/plugin-sdk/provider-auth-api-key.d.ts",
"!dist/plugin-sdk/provider-auth-login-flow-runtime.d.ts",
"!dist/plugin-sdk/provider-auth-result.d.ts",
"!dist/plugin-sdk/provider-auth-runtime.d.ts",
"!dist/plugin-sdk/provider-catalog-live-runtime.d.ts",
"!dist/plugin-sdk/provider-catalog-shared.d.ts",
"!dist/plugin-sdk/provider-entry.d.ts",
"!dist/plugin-sdk/provider-env-vars.d.ts",
"!dist/plugin-sdk/provider-http.d.ts",
"!dist/plugin-sdk/provider-http-test-mocks.js",
"!dist/plugin-sdk/provider-http-test-mocks.d.ts",
"!dist/plugin-sdk/provider-model-shared.d.ts",
"!dist/plugin-sdk/provider-model-types.d.ts",
"!dist/plugin-sdk/provider-oauth-runtime.d.ts",
"!dist/plugin-sdk/provider-onboard.d.ts",
"!dist/plugin-sdk/provider-selection-runtime.d.ts",
"!dist/plugin-sdk/provider-setup.d.ts",
"!dist/plugin-sdk/provider-stream.d.ts",
"!dist/plugin-sdk/provider-stream-family.d.ts",
"!dist/plugin-sdk/provider-stream-shared.d.ts",
"!dist/plugin-sdk/provider-test-contracts.js",
"!dist/plugin-sdk/provider-test-contracts.d.ts",
"!dist/plugin-sdk/provider-tools.d.ts",
"!dist/plugin-sdk/provider-transport-runtime.d.ts",
"!dist/plugin-sdk/provider-usage.d.ts",
"!dist/plugin-sdk/provider-web-fetch.d.ts",
"!dist/plugin-sdk/provider-web-fetch-contract.d.ts",
"!dist/plugin-sdk/provider-web-search.d.ts",
"!dist/plugin-sdk/provider-web-search-config-contract.d.ts",
"!dist/plugin-sdk/provider-web-search-contract.d.ts",
"!dist/plugin-sdk/qa-runner-runtime.d.ts",
"!dist/plugin-sdk/realtime-bootstrap-context.d.ts",
"!dist/plugin-sdk/realtime-transcription.d.ts",
"!dist/plugin-sdk/realtime-voice-audio-queue.d.ts",
"!dist/plugin-sdk/realtime-voice-activation.d.ts",
"!dist/plugin-sdk/realtime-voice.d.ts",
"!dist/plugin-sdk/reply-payload-testing.js",
"!dist/plugin-sdk/reply-payload-testing.d.ts",
"!dist/plugin-sdk/reply-reference.d.ts",
"!dist/plugin-sdk/request-url.d.ts",
"!dist/plugin-sdk/response-limit-runtime.d.ts",
"!dist/plugin-sdk/retry-runtime.d.ts",
"!dist/plugin-sdk/runtime-doctor-migrations.d.ts",
"!dist/plugin-sdk/doctor-repair-runtime.d.ts",
"!dist/plugin-sdk/model-ref-parse.d.ts",
"!dist/plugin-sdk/outbound-echo-runtime.d.ts",
"!dist/plugin-sdk/plugin-state-store-runtime.d.ts",
"!dist/plugin-sdk/secret-provider-alias.d.ts",
"!dist/plugin-sdk/session-store-paths.d.ts",
"!dist/plugin-sdk/runtime-doctor.d.ts",
"!dist/plugin-sdk/runtime-fetch.d.ts",
"!dist/plugin-sdk/sandbox.d.ts",
"!dist/plugin-sdk/secret-file-runtime.d.ts",
"!dist/plugin-sdk/secure-random-runtime.d.ts",
"!dist/plugin-sdk/session-binding-runtime.d.ts",
"!dist/plugin-sdk/session-catalog-runtime.d.ts",
"!dist/plugin-sdk/session-key-runtime.d.ts",
"!dist/plugin-sdk/session-transcript-hit.d.ts",
"!dist/plugin-sdk/session-transcript-runtime.d.ts",
"!dist/plugin-sdk/session-visibility.d.ts",
"!dist/plugin-sdk/simple-completion-runtime.d.ts",
"!dist/plugin-sdk/speech.d.ts",
"!dist/plugin-sdk/speech-core.d.ts",
"!dist/plugin-sdk/sqlite-runtime.d.ts",
"!dist/plugin-sdk/sqlite-runtime-testing.js",
"!dist/plugin-sdk/sqlite-runtime-testing.d.ts",
"!dist/plugin-sdk/ssrf-dispatcher.d.ts",
"!dist/plugin-sdk/ssrf-runtime-internal.d.ts",
"!dist/plugin-sdk/string-normalization-runtime.d.ts",
"!dist/plugin-sdk/system-event-runtime.d.ts",
"!dist/plugin-sdk/talk-config-runtime.d.ts",
"!dist/plugin-sdk/target-resolver-runtime.d.ts",
"!dist/plugin-sdk/test-env.js",
"!dist/plugin-sdk/test-env.d.ts",
"!dist/plugin-sdk/test-fixtures.js",
"!dist/plugin-sdk/test-fixtures.d.ts",
"!dist/plugin-sdk/test-live.js",
"!dist/plugin-sdk/test-live.d.ts",
"!dist/plugin-sdk/test-live-auth.js",
"!dist/plugin-sdk/test-live-auth.d.ts",
"!dist/plugin-sdk/test-media-generation.js",
"!dist/plugin-sdk/test-media-generation.d.ts",
"!dist/plugin-sdk/test-media-understanding.js",
"!dist/plugin-sdk/test-media-understanding.d.ts",
"!dist/plugin-sdk/test-state.js",
"!dist/plugin-sdk/test-state.d.ts",
"!dist/plugin-sdk/test-node-mocks.js",
"!dist/plugin-sdk/test-node-mocks.d.ts",
"!dist/plugin-sdk/text-autolink-runtime.d.ts",
"!dist/plugin-sdk/text-utility-runtime.d.ts",
"!dist/plugin-sdk/thread-bindings-runtime.d.ts",
"!dist/plugin-sdk/thread-bindings-session-runtime.d.ts",
"!dist/plugin-sdk/time-runtime.d.ts",
"!dist/plugin-sdk/tool-payload.d.ts",
"!dist/plugin-sdk/transcripts.d.ts",
"!dist/plugin-sdk/transport-ready-runtime.d.ts",
"!dist/plugin-sdk/tts-runtime.d.ts",
"!dist/plugin-sdk/types.d.ts",
"!dist/plugin-sdk/video-generation.d.ts",
"!dist/plugin-sdk/video-generation-runtime.d.ts",
"!dist/plugin-sdk/web-content-extractor.d.ts",
"!dist/plugin-sdk/webhook-targets.d.ts",
"!dist/plugin-sdk/windows-spawn.d.ts",
"!dist/plugin-sdk/src/agents/test-helpers/**",
"!dist/plugin-sdk/src/test-helpers/**",
"!dist/plugin-sdk/src/test-utils/**",
"!dist/plugin-sdk/src/plugin-sdk/test-helpers/**",
"!dist/extensions/acpx/**",
"!dist/extensions/amazon-bedrock/**",
"!dist/extensions/amazon-bedrock-mantle/**",
"!dist/extensions/anthropic-vertex/**",
"!dist/extensions/node_modules/**",
"!dist/extensions/*/node_modules/**",
"!dist/extensions/arcee/**",
"!dist/extensions/baseten/**",
"!dist/extensions/brave/**",
"!dist/extensions/byteplus/**",
"!dist/extensions/buzz/**",
"!dist/extensions/cerebras/**",
"!dist/extensions/chutes/**",
"!dist/extensions/cohere/**",
"!dist/extensions/comfy/**",
"!dist/extensions/clickclack/**",
"!dist/extensions/cloudflare-ai-gateway/**",
"!dist/extensions/codex/**",
"!dist/extensions/copilot/**",
"!dist/extensions/deepinfra/**",
"!dist/extensions/deepseek/**",
"!dist/extensions/diagnostics-otel/**",
"!dist/extensions/diagnostics-prometheus/**",
"!dist/extensions/diffs/**",
"!dist/extensions/diffs-language-pack/**",
"!dist/extensions/discord/**",
"!dist/extensions/duckduckgo/**",
"!dist/extensions/exa/**",
"!dist/extensions/facetime/**",
"!dist/extensions/featherless/**",
"!dist/extensions/feishu/**",
"!dist/extensions/firecrawl/**",
"!dist/extensions/fireworks/**",
"!dist/extensions/fish-audio-speech/**",
"!dist/extensions/google-meet/**",
"!dist/extensions/googlechat/**",
"!dist/extensions/gmi/**",
"!dist/extensions/gradium/**",
"!dist/extensions/groq/**",
"!dist/extensions/inworld/**",
"!dist/extensions/imessage/**",
"!dist/extensions/irc/**",
"!dist/extensions/kilocode/**",
"!dist/extensions/kimi-coding/**",
"!dist/extensions/line/**",
"!dist/extensions/llama-cpp/**",
"!dist/extensions/lobster/**",
"!dist/extensions/longcat/**",
"!dist/extensions/mattermost/**",
"!dist/extensions/memory-lancedb/**",
"!dist/extensions/meta/**",
"!dist/extensions/matrix/**",
"!dist/extensions/mistral/**",
"!dist/extensions/moonshot/**",
"!dist/extensions/msteams/**",
"!dist/extensions/mxc/**",
"!dist/extensions/nextcloud-talk/**",
"!dist/extensions/nostr/**",
"!dist/extensions/novita/**",
"!dist/extensions/onnx/**",
"!dist/extensions/opencode/**",
"!dist/extensions/parallel/**",
"!dist/extensions/perplexity/**",
"!dist/extensions/qianfan/**",
"!dist/extensions/raft/**",
"!dist/extensions/radius/**",
"!dist/extensions/pixverse/**",
"!dist/extensions/qa-channel/**",
"!dist/extensions/qa-lab/**",
"!dist/extensions/openshell/**",
"!dist/extensions/qwen/**",
"!dist/extensions/searxng/**",
"!dist/extensions/signal/**",
"!dist/extensions/slack/**",
"!dist/extensions/slack-huddles/**",
"!dist/extensions/sms/**",
"!dist/extensions/stepfun/**",
"!dist/extensions/synthetic/**",
"!dist/extensions/synology-chat/**",
"!dist/extensions/tavily/**",
"!dist/extensions/team-reports/**",
"!dist/extensions/teams-meetings/**",
"!dist/extensions/tencent/**",
"!dist/extensions/tokenjuice/**",
"!dist/extensions/tlon/**",
"!dist/extensions/twitch/**",
"!dist/extensions/typesafe/**",
"!dist/extensions/venice/**",
"!dist/extensions/vercel-ai-gateway/**",
"!dist/extensions/visitor-access/**",
"!dist/extensions/voice-call/**",
"!dist/extensions/volcengine/**",
"!dist/extensions/voyage/**",
"!dist/extensions/vydra/**",
"!dist/extensions/whatsapp/**",
"!dist/extensions/xiaomi/**",
"!dist/extensions/zai/**",
"!dist/extensions/zalo/**",
"!dist/extensions/zalouser/**",
"!dist/extensions/zoom-meetings/**",
"!dist/plugin-sdk/extensions/qa-channel/**",
"!dist/plugin-sdk/extensions/qa-lab/**",
"!dist/plugin-sdk/qa-channel.*",
"!dist/plugin-sdk/qa-channel-protocol.*",
"!dist/plugin-sdk/qa-lab.*",
"!dist/plugin-sdk/qa-runtime.*",
"!dist/plugin-sdk/src/**",
"!dist/plugin-sdk/src/plugin-sdk/qa-channel.d.ts",
"!dist/plugin-sdk/src/plugin-sdk/qa-channel-protocol.d.ts",
"!dist/plugin-sdk/src/plugin-sdk/qa-lab.d.ts",
"!dist/plugin-sdk/src/plugin-sdk/qa-runtime.d.ts",
"!dist/qa-runtime-*",
"docs/",
"!docs/.generated/**",
"!docs/.i18n/**",
"!docs/ci.md",
"!docs/channels/qa-channel.md",
"!docs/assets/**",
"!docs/images/**",
"!docs/maturity/taxonomy.md",
"!docs/refactor/**",
"!docs/releases/**",
"!docs/**/*.jpg",
"!docs/**/*.png",
"patches/",
"skills/",
"custodian-skills/",
"scripts/check-install-dependency-ownership.mjs",
"scripts/freebsd-service-inspect.mjs",
"scripts/lib/freebsd-service-discovery.d.mts",
"scripts/lib/freebsd-service-discovery.mjs",
"scripts/lib/fs-safe-prebuild.mjs",
"scripts/lib/javascript-statements.mjs",
"scripts/install-cli.sh",
"scripts/install.ps1",
"scripts/prepare-git-hooks.mjs",
"scripts/preinstall-package-manager-warning.mjs",
"scripts/lib/official-external-channel-catalog.json",
"scripts/lib/official-external-plugin-catalog.json",
"scripts/lib/official-external-provider-catalog.json",
"scripts/lib/package-dist-imports.mjs",
"scripts/lib/package-lifecycle-marker.mjs",
"scripts/lib/recommended-tool-installs.json",
"scripts/postinstall-bundled-plugins.mjs",
"scripts/windows-cmd-helpers.mjs",
"!dist/plugin-sdk/model-catalog-pricing.d.ts",
"!dist/plugin-sdk/blob-runtime.d.ts",
"!dist/plugin-sdk/realtime-transcription-session.d.ts",
"!dist/plugin-sdk/speech-provider.d.ts",
"!dist/plugin-sdk/realtime-voice-provider.d.ts",
"!dist/plugin-sdk/provider-thinking-runtime.d.ts",
"!dist/plugin-sdk/embedding-provider-adapter.d.ts",
"!dist/plugin-sdk/agent-harness-registration.d.ts",
"!dist/plugin-sdk/session-catalog-paging.d.ts",
"!dist/plugin-sdk/provider-auth-aliases.d.ts",
"!dist/plugin-sdk/provider-model-metadata.d.ts",
"!dist/plugin-sdk/memory-core-host-engine-knn.d.ts",
"!dist/plugin-sdk/memory-core-host-engine-indexing.d.ts",
"!dist/plugin-sdk/sqlite-worker-runtime.d.ts",
"!dist/plugin-sdk/worker-task-server.d.ts",
"!dist/plugin-sdk/media-ffmpeg.d.ts",
"!dist/plugin-sdk/realtime-voice-playback.d.ts",
"!dist/plugin-sdk/text-grapheme.d.ts",
"!dist/plugin-sdk/agent-harness-session-runtime.d.ts",
"!dist/plugin-sdk/agent-harness-attempt-runtime.d.ts",
"!dist/plugin-sdk/secret-egress-runtime.d.ts"
],
"type": "module",
"main": "dist/index.js",
"exports": {
".": "./dist/index.js",
"./plugin-sdk/core": {
"types": "./dist/plugin-sdk/core.d.ts",
"default": "./dist/plugin-sdk/core.js"
},
"./plugin-sdk/code-mode-executor-runtime": {
"types": "./dist/plugin-sdk/code-mode-executor-runtime.d.ts",
"default": "./dist/plugin-sdk/code-mode-executor-runtime.js"
},
"./plugin-sdk/control-ui-link-reader": {
"types": "./dist/plugin-sdk/control-ui-link-reader.d.ts",
"default": "./dist/plugin-sdk/control-ui-link-reader.js"
},
"./plugin-sdk/provider-setup": {
"default": "./dist/plugin-sdk/provider-setup.js"
},
"./plugin-sdk/sandbox": {
"default": "./dist/plugin-sdk/sandbox.js"
},
"./plugin-sdk/routing": {
"types": "./dist/plugin-sdk/routing.d.ts",
"default": "./dist/plugin-sdk/routing.js"
},
"./plugin-sdk/runtime": {
"types": "./dist/plugin-sdk/runtime.d.ts",
"default": "./dist/plugin-sdk/runtime.js"
},
"./plugin-sdk/health": {
"types": "./dist/plugin-sdk/health.d.ts",
"default": "./dist/plugin-sdk/health.js"
},
"./plugin-sdk/doctor-repair-runtime": {
"default": "./dist/plugin-sdk/doctor-repair-runtime.js"
},
"./plugin-sdk/model-ref-parse": {
"default": "./dist/plugin-sdk/model-ref-parse.js"
},
"./plugin-sdk/model-catalog-pricing": {
"default": "./dist/plugin-sdk/model-catalog-pricing.js"
},
"./plugin-sdk/outbound-echo-runtime": {
"default": "./dist/plugin-sdk/outbound-echo-runtime.js"
},
"./plugin-sdk/secret-provider-alias": {
"default": "./dist/plugin-sdk/secret-provider-alias.js"
},
"./plugin-sdk/session-store-paths": {
"default": "./dist/plugin-sdk/session-store-paths.js"
},
"./plugin-sdk/plugin-state-store-runtime": {
"default": "./dist/plugin-sdk/plugin-state-store-runtime.js"
},
"./plugin-sdk/runtime-doctor": {
"default": "./dist/plugin-sdk/runtime-doctor.js"
},
"./plugin-sdk/runtime-doctor-migrations": {
"default": "./dist/plugin-sdk/runtime-doctor-migrations.js"
},
"./plugin-sdk/runtime-env": {
"types": "./dist/plugin-sdk/runtime-env.d.ts",
"default": "./dist/plugin-sdk/runtime-env.js"
},
"./plugin-sdk/proxy-capture": {
"types": "./dist/plugin-sdk/proxy-capture.d.ts",
"default": "./dist/plugin-sdk/proxy-capture.js"
},
"./plugin-sdk/setup": {
"types": "./dist/plugin-sdk/setup.d.ts",
"default": "./dist/plugin-sdk/setup.js"
},
"./plugin-sdk/setup-runtime": {
"types": "./dist/plugin-sdk/setup-runtime.d.ts",
"default": "./dist/plugin-sdk/setup-runtime.js"
},
"./plugin-sdk/channel-setup": {
"types": "./dist/plugin-sdk/channel-setup.d.ts",
"default": "./dist/plugin-sdk/channel-setup.js"
},
"./plugin-sdk/channel-streaming-config": {
"types": "./dist/plugin-sdk/channel-streaming-config.d.ts",
"default": "./dist/plugin-sdk/channel-streaming-config.js"
},
"./plugin-sdk/setup-tools": {
"types": "./dist/plugin-sdk/setup-tools.d.ts",
"default": "./dist/plugin-sdk/setup-tools.js"
},
"./plugin-sdk/archive": {
"types": "./dist/plugin-sdk/archive.d.ts",
"default": "./dist/plugin-sdk/archive.js"
},
"./plugin-sdk/blob-runtime": {
"default": "./dist/plugin-sdk/blob-runtime.js"
},
"./plugin-sdk/root-walk": {
"types": "./dist/plugin-sdk/root-walk.d.ts",
"default": "./dist/plugin-sdk/root-walk.js"
},
"./plugin-sdk/secret-file": {
"types": "./dist/plugin-sdk/secret-file.d.ts",
"default": "./dist/plugin-sdk/secret-file.js"
},
"./plugin-sdk/approval-auth-runtime": {
"types": "./dist/plugin-sdk/approval-auth-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-auth-runtime.js"
},
"./plugin-sdk/approval-client-runtime": {
"types": "./dist/plugin-sdk/approval-client-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-client-runtime.js"
},
"./plugin-sdk/approval-delivery-runtime": {
"types": "./dist/plugin-sdk/approval-delivery-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-delivery-runtime.js"
},
"./plugin-sdk/approval-gateway-runtime": {
"types": "./dist/plugin-sdk/approval-gateway-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-gateway-runtime.js"
},
"./plugin-sdk/approval-reference-runtime": {
"default": "./dist/plugin-sdk/approval-reference-runtime.js"
},
"./plugin-sdk/approval-handler-adapter-runtime": {
"types": "./dist/plugin-sdk/approval-handler-adapter-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-handler-adapter-runtime.js"
},
"./plugin-sdk/approval-handler-runtime": {
"types": "./dist/plugin-sdk/approval-handler-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-handler-runtime.js"
},
"./plugin-sdk/channel-runtime-context": {
"types": "./dist/plugin-sdk/channel-runtime-context.d.ts",
"default": "./dist/plugin-sdk/channel-runtime-context.js"
},
"./plugin-sdk/approval-native-runtime": {
"types": "./dist/plugin-sdk/approval-native-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-native-runtime.js"
},
"./plugin-sdk/approval-reaction-runtime": {
"default": "./dist/plugin-sdk/approval-reaction-runtime.js"
},
"./plugin-sdk/approval-reply-runtime": {
"types": "./dist/plugin-sdk/approval-reply-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-reply-runtime.js"
},
"./plugin-sdk/approval-runtime": {
"types": "./dist/plugin-sdk/approval-runtime.d.ts",
"default": "./dist/plugin-sdk/approval-runtime.js"
},
"./plugin-sdk/question-gateway-runtime": {
"types": "./dist/plugin-sdk/question-gateway-runtime.d.ts",
"default": "./dist/plugin-sdk/question-gateway-runtime.js"
},
"./plugin-sdk/config-runtime": {
"types": "./dist/plugin-sdk/config-runtime.d.ts",
"default": "./dist/plugin-sdk/config-runtime.js"
},
"./plugin-sdk/config-contracts": {
"types": "./dist/plugin-sdk/config-contracts.d.ts",
"default": "./dist/plugin-sdk/config-contracts.js"
},
"./plugin-sdk/plugin-config-runtime": {
"types": "./dist/plugin-sdk/plugin-config-runtime.d.ts",
"default": "./dist/plugin-sdk/plugin-config-runtime.js"
},
"./plugin-sdk/config-mutation": {
"types": "./dist/plugin-sdk/config-mutation.d.ts",
"default": "./dist/plugin-sdk/config-mutation.js"
},
"./plugin-sdk/cron-store-runtime": {
"default": "./dist/plugin-sdk/cron-store-runtime.js"
},
"./plugin-sdk/json-schema-runtime": {
"default": "./dist/plugin-sdk/json-schema-runtime.js"
},
"./plugin-sdk/json-unsafe-integers": {
"default": "./dist/plugin-sdk/json-unsafe-integers.js"
},
"./plugin-sdk/reply-runtime": {
"types": "./dist/plugin-sdk/reply-runtime.d.ts",
"default": "./dist/plugin-sdk/reply-runtime.js"
},
"./plugin-sdk/reply-dispatch-runtime": {
"types": "./dist/plugin-sdk/reply-dispatch-runtime.d.ts",
"default": "./dist/plugin-sdk/reply-dispatch-runtime.js"
},
"./plugin-sdk/reply-reference": {
"default": "./dist/plugin-sdk/reply-reference.js"
},
"./plugin-sdk/reply-chunking": {
"types": "./dist/plugin-sdk/reply-chunking.d.ts",
"default": "./dist/plugin-sdk/reply-chunking.js"
},
"./plugin-sdk/reply-payload": {
"types": "./dist/plugin-sdk/reply-payload.d.ts",
"default": "./dist/plugin-sdk/reply-payload.js"
},
"./plugin-sdk/agent-media-payload": {
"types": "./dist/plugin-sdk/agent-media-payload.d.ts",
"default": "./dist/plugin-sdk/agent-media-payload.js"
},
"./plugin-sdk/inbound-reply-dispatch": {
"types": "./dist/plugin-sdk/inbound-reply-dispatch.d.ts",
"default": "./dist/plugin-sdk/inbound-reply-dispatch.js"
},
"./plugin-sdk/inbound-envelope": {
"types": "./dist/plugin-sdk/inbound-envelope.d.ts",
"default": "./dist/plugin-sdk/inbound-envelope.js"
},
"./plugin-sdk/inbound-event-delivery": {
"types": "./dist/plugin-sdk/inbound-event-delivery.d.ts",
"default": "./dist/plugin-sdk/inbound-event-delivery.js"
},
"./plugin-sdk/channel-reply-pipeline": {
"types": "./dist/plugin-sdk/channel-reply-pipeline.d.ts",
"default": "./dist/plugin-sdk/channel-reply-pipeline.js"
},
"./plugin-sdk/interactive-runtime": {
"types": "./dist/plugin-sdk/interactive-runtime.d.ts",
"default": "./dist/plugin-sdk/interactive-runtime.js"
},
"./plugin-sdk/outbound-media": {
"default": "./dist/plugin-sdk/outbound-media.js"
},
"./plugin-sdk/pair-loop-guard-runtime": {
"default": "./dist/plugin-sdk/pair-loop-guard-runtime.js"
},
"./plugin-sdk/poll-runtime": {
"default": "./dist/plugin-sdk/poll-runtime.js"
},
"./plugin-sdk/async-lock-runtime": {
"default": "./dist/plugin-sdk/async-lock-runtime.js"
},
"./plugin-sdk/channel-activity-runtime": {
"default": "./dist/plugin-sdk/channel-activity-runtime.js"
},
"./plugin-sdk/channel-join-intro-runtime": {
"default": "./dist/plugin-sdk/channel-join-intro-runtime.js"
},
"./plugin-sdk/concurrency-runtime": {
"default": "./dist/plugin-sdk/concurrency-runtime.js"
},
"./plugin-sdk/dedupe-runtime": {
"types": "./dist/plugin-sdk/dedupe-runtime.d.ts",
"default": "./dist/plugin-sdk/dedupe-runtime.js"
},
"./plugin-sdk/delivery-queue-runtime": {
"default": "./dist/plugin-sdk/delivery-queue-runtime.js"
},
"./plugin-sdk/file-access-runtime": {
"default": "./dist/plugin-sdk/file-access-runtime.js"
},
"./plugin-sdk/node-selection-runtime": {
"default": "./dist/plugin-sdk/node-selection-runtime.js"
},
"./plugin-sdk/heartbeat-runtime": {
"default": "./dist/plugin-sdk/heartbeat-runtime.js"
},
"./plugin-sdk/expect-runtime": {
"default": "./dist/plugin-sdk/expect-runtime.js"
},
"./plugin-sdk/number-runtime": {
"default": "./dist/plugin-sdk/number-runtime.js"
},
"./plugin-sdk/secure-random-runtime": {
"default": "./dist/plugin-sdk/secure-random-runtime.js"
},
"./plugin-sdk/system-event-runtime": {
"default": "./dist/plugin-sdk/system-event-runtime.js"
},
"./plugin-sdk/transport-ready-runtime": {
"default": "./dist/plugin-sdk/transport-ready-runtime.js"
},
"./plugin-sdk/exec-approvals-runtime": {
"default": "./dist/plugin-sdk/exec-approvals-runtime.js"
},
"./plugin-sdk/infra-runtime": {
"types": "./dist/plugin-sdk/infra-runtime.d.ts",
"default": "./dist/plugin-sdk/infra-runtime.js"
},
"./plugin-sdk/runtime-config-snapshot": {
"types": "./dist/plugin-sdk/runtime-config-snapshot.d.ts",
"default": "./dist/plugin-sdk/runtime-config-snapshot.js"
},
"./plugin-sdk/runtime-group-policy": {
"types": "./dist/plugin-sdk/runtime-group-policy.d.ts",
"default": "./dist/plugin-sdk/runtime-group-policy.js"
},
"./plugin-sdk/model-session-runtime": {
"types": "./dist/plugin-sdk/model-session-runtime.d.ts",
"default": "./dist/plugin-sdk/model-session-runtime.js"
},
"./plugin-sdk/talk-config-runtime": {
"default": "./dist/plugin-sdk/talk-config-runtime.js"
},
"./plugin-sdk/ssrf-policy": {
"types": "./dist/plugin-sdk/ssrf-policy.d.ts",
"default": "./dist/plugin-sdk/ssrf-policy.js"
},
"./plugin-sdk/ssrf-runtime": {
"types": "./dist/plugin-sdk/ssrf-runtime.d.ts",
"default": "./dist/plugin-sdk/ssrf-runtime.js"
},
"./plugin-sdk/ssrf-runtime-internal": {
"default": "./dist/plugin-sdk/ssrf-runtime-internal.js"
},
"./plugin-sdk/media-runtime": {
"types": "./dist/plugin-sdk/media-runtime.d.ts",
"default": "./dist/plugin-sdk/media-runtime.js"
},
"./plugin-sdk/media-local-roots": {
"types": "./dist/plugin-sdk/media-local-roots.d.ts",
"default": "./dist/plugin-sdk/media-local-roots.js"
},
"./plugin-sdk/media-store": {
"types": "./dist/plugin-sdk/media-store.d.ts",
"default": "./dist/plugin-sdk/media-store.js"
},
"./plugin-sdk/media-mime": {
"types": "./dist/plugin-sdk/media-mime.d.ts",
"default": "./dist/plugin-sdk/media-mime.js"
},
"./plugin-sdk/media-ffmpeg": {
"default": "./dist/plugin-sdk/media-ffmpeg.js"
},
"./plugin-sdk/embedding-providers": {
"default": "./dist/plugin-sdk/embedding-providers.js"
},
"./plugin-sdk/embedding-provider-runtime-contract": {
"types": "./dist/plugin-sdk/embedding-provider-runtime-contract.d.ts",
"default": "./dist/plugin-sdk/embedding-provider-runtime-contract.js"
},
"./plugin-sdk/embedding-provider-adapter": {
"default": "./dist/plugin-sdk/embedding-provider-adapter.js"
},
"./plugin-sdk/media-generation-runtime": {
"default": "./dist/plugin-sdk/media-generation-runtime.js"
},
"./plugin-sdk/conversation-binding-inspection-runtime": {
"types": "./dist/plugin-sdk/conversation-binding-inspection-runtime.d.ts",
"default": "./dist/plugin-sdk/conversation-binding-inspection-runtime.js"
},
"./plugin-sdk/conversation-binding-runtime": {
"default": "./dist/plugin-sdk/conversation-binding-runtime.js"
},
"./plugin-sdk/conversation-runtime": {
"types": "./dist/plugin-sdk/conversation-runtime.d.ts",
"default": "./dist/plugin-sdk/conversation-runtime.js"
},
"./plugin-sdk/thread-bindings-runtime": {
"default": "./dist/plugin-sdk/thread-bindings-runtime.js"
},
"./plugin-sdk/thread-bindings-session-runtime": {
"default": "./dist/plugin-sdk/thread-bindings-session-runtime.js"
},
"./plugin-sdk/text-chunking": {
"types": "./dist/plugin-sdk/text-chunking.d.ts",
"default": "./dist/plugin-sdk/text-chunking.js"
},
"./plugin-sdk/agent-scope-runtime": {
"types": "./dist/plugin-sdk/agent-scope-runtime.d.ts",
"default": "./dist/plugin-sdk/agent-scope-runtime.js"
},
"./plugin-sdk/agent-runtime": {
"types": "./dist/plugin-sdk/agent-runtime.d.ts",
"default": "./dist/plugin-sdk/agent-runtime.js"
},
"./plugin-sdk/simple-completion-runtime": {
"default": "./dist/plugin-sdk/simple-completion-runtime.js"
},
"./plugin-sdk/speech-core": {
"default": "./dist/plugin-sdk/speech-core.js"
},
"./plugin-sdk/speech-provider": {
"default": "./dist/plugin-sdk/speech-provider.js"
},
"./plugin-sdk/speech-settings": {
"types": "./dist/plugin-sdk/speech-settings.d.ts",
"default": "./dist/plugin-sdk/speech-settings.js"
},
"./plugin-sdk/tts-runtime": {
"default": "./dist/plugin-sdk/tts-runtime.js"
},
"./plugin-sdk/plugin-command-runtime": {
"types": "./dist/plugin-sdk/plugin-command-runtime.d.ts",
"default": "./dist/plugin-sdk/plugin-command-runtime.js"
},
"./plugin-sdk/plugin-runtime": {
"types": "./dist/plugin-sdk/plugin-runtime.d.ts",
"default": "./dist/plugin-sdk/plugin-runtime.js"
},
"./plugin-sdk/channel-secret-basic-runtime": {
"types": "./dist/plugin-sdk/channel-secret-basic-runtime.d.ts",
"default": "./dist/plugin-sdk/channel-secret-basic-runtime.js"
},
"./plugin-sdk/channel-secret-owner-runtime": {
"default": "./dist/plugin-sdk/channel-secret-owner-runtime.js"
},
"./plugin-sdk/channel-secret-tts-runtime": {
"default": "./dist/plugin-sdk/channel-secret-tts-runtime.js"
},
"./plugin-sdk/secret-ref-runtime": {
"types": "./dist/plugin-sdk/secret-ref-runtime.d.ts",
"default": "./dist/plugin-sdk/secret-ref-runtime.js"
},
"./plugin-sdk/secret-egress-runtime": {
"default": "./dist/plugin-sdk/secret-egress-runtime.js"
},
"./plugin-sdk/secret-file-runtime": {
"default": "./dist/plugin-sdk/secret-file-runtime.js"
},
"./plugin-sdk/security-runtime": {
"types": "./dist/plugin-sdk/security-runtime.d.ts",
"default": "./dist/plugin-sdk/security-runtime.js"
},
"./plugin-sdk/gateway-config-runtime": {
"default": "./dist/plugin-sdk/gateway-config-runtime.js"
},
"./plugin-sdk/gateway-method-runtime": {
"types": "./dist/plugin-sdk/gateway-method-runtime.d.ts",
"default": "./dist/plugin-sdk/gateway-method-runtime.js"
},
"./plugin-sdk/gateway-runtime": {
"types": "./dist/plugin-sdk/gateway-runtime.d.ts",
"default": "./dist/plugin-sdk/gateway-runtime.js"
},
"./plugin-sdk/websocket-runtime": {
"types": "./dist/plugin-sdk/websocket-runtime.d.ts",
"default": "./dist/plugin-sdk/websocket-runtime.js"
},
"./plugin-sdk/cli-argv": {
"types": "./dist/plugin-sdk/cli-argv.d.ts",
"default": "./dist/plugin-sdk/cli-argv.js"
},
"./plugin-sdk/cli-runtime": {
"default": "./dist/plugin-sdk/cli-runtime.js"
},
"./plugin-sdk/node-cli-runtime": {
"types": "./dist/plugin-sdk/node-cli-runtime.d.ts",
"default": "./dist/plugin-sdk/node-cli-runtime.js"
},
"./plugin-sdk/cli-backend": {
"default": "./dist/plugin-sdk/cli-backend.js"
},
"./plugin-sdk/claude-model-runtime": {
"default": "./dist/plugin-sdk/claude-model-runtime.js"
},
"./plugin-sdk/codex-mcp-projection": {
"default": "./dist/plugin-sdk/codex-mcp-projection.js"
},
"./plugin-sdk/native-hook-relay-runtime": {
"default": "./dist/plugin-sdk/native-hook-relay-runtime.js"
},
"./plugin-sdk/codex-session-transcript-runtime": {
"default": "./dist/plugin-sdk/codex-session-transcript-runtime.js"
},
"./plugin-sdk/agent-harness-completion": {
"default": "./dist/plugin-sdk/agent-harness-completion.js"
},
"./plugin-sdk/agent-harness": {
"types": "./dist/plugin-sdk/agent-harness.d.ts",
"default": "./dist/plugin-sdk/agent-harness.js"
},
"./plugin-sdk/agent-harness-attempt-runtime": {
"default": "./dist/plugin-sdk/agent-harness-attempt-runtime.js"
},
"./plugin-sdk/agent-harness-exec-review-runtime": {
"default": "./dist/plugin-sdk/agent-harness-exec-review-runtime.js"
},
"./plugin-sdk/agent-harness-registration": {
"default": "./dist/plugin-sdk/agent-harness-registration.js"
},
"./plugin-sdk/agent-harness-runtime": {
"types": "./dist/plugin-sdk/agent-harness-runtime.d.ts",
"default": "./dist/plugin-sdk/agent-harness-runtime.js"
},
"./plugin-sdk/agent-workspace-runtime": {
"types": "./dist/plugin-sdk/agent-workspace-runtime.d.ts",
"default": "./dist/plugin-sdk/agent-workspace-runtime.js"
},
"./plugin-sdk/agent-harness-session-runtime": {
"default": "./dist/plugin-sdk/agent-harness-session-runtime.js"
},
"./plugin-sdk/agent-harness-tool-runtime": {
"default": "./dist/plugin-sdk/agent-harness-tool-runtime.js"
},
"./plugin-sdk/hook-runtime": {
"types": "./dist/plugin-sdk/hook-runtime.d.ts",
"default": "./dist/plugin-sdk/hook-runtime.js"
},
"./plugin-sdk/html-entity-runtime": {
"default": "./dist/plugin-sdk/html-entity-runtime.js"
},
"./plugin-sdk/host-runtime": {
"default": "./dist/plugin-sdk/host-runtime.js"
},
"./plugin-sdk/types": {
"default": "./dist/plugin-sdk/types.js"
},
"./plugin-sdk/process-runtime": {
"default": "./dist/plugin-sdk/process-runtime.js"
},
"./plugin-sdk/worker-task-server": {
"default": "./dist/plugin-sdk/worker-task-server.js"
},
"./plugin-sdk/windows-spawn": {
"default": "./dist/plugin-sdk/windows-spawn.js"
},
"./plugin-sdk/acp-runtime": {
"default": "./dist/plugin-sdk/acp-runtime.js"
},
"./plugin-sdk/acp-runtime-backend": {
"default": "./dist/plugin-sdk/acp-runtime-backend.js"
},
"./plugin-sdk/acp-binding-runtime": {
"default": "./dist/plugin-sdk/acp-binding-runtime.js"
},
"./plugin-sdk/acp-binding-resolve-runtime": {
"default": "./dist/plugin-sdk/acp-binding-resolve-runtime.js"
},
"./plugin-sdk/lazy-runtime": {
"types": "./dist/plugin-sdk/lazy-runtime.d.ts",
"default": "./dist/plugin-sdk/lazy-runtime.js"
},
"./plugin-sdk/temp-path": {
"types": "./dist/plugin-sdk/temp-path.d.ts",
"default": "./dist/plugin-sdk/temp-path.js"
},
"./plugin-sdk/time-runtime": {
"default": "./dist/plugin-sdk/time-runtime.js"
},
"./plugin-sdk/logging-core": {
"types": "./dist/plugin-sdk/logging-core.d.ts",
"default": "./dist/plugin-sdk/logging-core.js"
},
"./plugin-sdk/migration": {
"default": "./dist/plugin-sdk/migration.js"
},
"./plugin-sdk/migration-runtime": {
"default": "./dist/plugin-sdk/migration-runtime.js"
},
"./plugin-sdk/plugin-state-runtime": {
"default": "./dist/plugin-sdk/plugin-state-runtime.js"
},
"./plugin-sdk/markdown-table-runtime": {
"default": "./dist/plugin-sdk/markdown-table-runtime.js"
},
"./plugin-sdk/account-helpers": {
"types": "./dist/plugin-sdk/account-helpers.d.ts",
"default": "./dist/plugin-sdk/account-helpers.js"
},
"./plugin-sdk/account-core": {
"types": "./dist/plugin-sdk/account-core.d.ts",
"default": "./dist/plugin-sdk/account-core.js"
},
"./plugin-sdk/account-id": {
"types": "./dist/plugin-sdk/account-id.d.ts",
"default": "./dist/plugin-sdk/account-id.js"
},
"./plugin-sdk/account-resolution": {
"types": "./dist/plugin-sdk/account-resolution.d.ts",
"default": "./dist/plugin-sdk/account-resolution.js"
},
"./plugin-sdk/account-resolution-runtime": {
"default": "./dist/plugin-sdk/account-resolution-runtime.js"
},
"./plugin-sdk/access-groups": {
"default": "./dist/plugin-sdk/access-groups.js"
},
"./plugin-sdk/allow-from": {
"types": "./dist/plugin-sdk/allow-from.d.ts",
"default": "./dist/plugin-sdk/allow-from.js"
},
"./plugin-sdk/allowlist-config-edit": {
"types": "./dist/plugin-sdk/allowlist-config-edit.d.ts",
"default": "./dist/plugin-sdk/allowlist-config-edit.js"
},
"./plugin-sdk/browser-cdp": {
"default": "./dist/plugin-sdk/browser-cdp.js"
},
"./plugin-sdk/browser-config": {
"default": "./dist/plugin-sdk/browser-config.js"
},
"./plugin-sdk/boolean-param": {
"types": "./dist/plugin-sdk/boolean-param.d.ts",
"default": "./dist/plugin-sdk/boolean-param.js"
},
"./plugin-sdk/channel-dm-policy": {
"types": "./dist/plugin-sdk/channel-dm-policy.d.ts",
"default": "./dist/plugin-sdk/channel-dm-policy.js"
},
"./plugin-sdk/dangerous-name-runtime": {
"default": "./dist/plugin-sdk/dangerous-name-runtime.js"
},
"./plugin-sdk/command-auth": {
"types": "./dist/plugin-sdk/command-auth.d.ts",
"default": "./dist/plugin-sdk/command-auth.js"
},
"./plugin-sdk/command-auth-native": {
"types": "./dist/plugin-sdk/command-auth-native.d.ts",
"default": "./dist/plugin-sdk/command-auth-native.js"
},
"./plugin-sdk/command-primitives-runtime": {
"types": "./dist/plugin-sdk/command-primitives-runtime.d.ts",
"default": "./dist/plugin-sdk/command-primitives-runtime.js"
},
"./plugin-sdk/command-status": {
"types": "./dist/plugin-sdk/command-status.d.ts",
"default": "./dist/plugin-sdk/command-status.js"
},
"./plugin-sdk/command-status-runtime": {
"default": "./dist/plugin-sdk/command-status-runtime.js"
},
"./plugin-sdk/command-detection": {
"types": "./dist/plugin-sdk/command-detection.d.ts",
"default": "./dist/plugin-sdk/command-detection.js"
},
"./plugin-sdk/command-surface": {
"default": "./dist/plugin-sdk/command-surface.js"
},
"./plugin-sdk/collection-runtime": {
"types": "./dist/plugin-sdk/collection-runtime.d.ts",
"default": "./dist/plugin-sdk/collection-runtime.js"
},
"./plugin-sdk/direct-dm-guard-policy": {
"default": "./dist/plugin-sdk/direct-dm-guard-policy.js"
},
"./plugin-sdk/discord": {
"types": "./dist/plugin-sdk/discord.d.ts",
"default": "./dist/plugin-sdk/discord.js"
},
"./plugin-sdk/device-bootstrap": {
"types": "./dist/plugin-sdk/device-bootstrap.d.ts",
"default": "./dist/plugin-sdk/device-bootstrap.js"
},
"./plugin-sdk/diagnostic-flags": {
"types": "./dist/plugin-sdk/diagnostic-flags.d.ts",
"default": "./dist/plugin-sdk/diagnostic-flags.js"
},
"./plugin-sdk/diagnostic-runtime": {
"types": "./dist/plugin-sdk/diagnostic-runtime.d.ts",
"default": "./dist/plugin-sdk/diagnostic-runtime.js"
},
"./plugin-sdk/error-runtime": {
"types": "./dist/plugin-sdk/error-runtime.d.ts",
"default": "./dist/plugin-sdk/error-runtime.js"
},
"./plugin-sdk/extension-shared": {
"types": "./dist/plugin-sdk/extension-shared.d.ts",
"default": "./dist/plugin-sdk/extension-shared.js"
},
"./plugin-sdk/channel-config-helpers": {
"types": "./dist/plugin-sdk/channel-config-helpers.d.ts",
"default": "./dist/plugin-sdk/channel-config-helpers.js"
},
"./plugin-sdk/channel-config-ui-hints": {
"default": "./dist/plugin-sdk/channel-config-ui-hints.js"
},
"./plugin-sdk/channel-config-writes": {
"default": "./dist/plugin-sdk/channel-config-writes.js"
},
"./plugin-sdk/channel-config-primitives": {
"types": "./dist/plugin-sdk/channel-config-primitives.d.ts",
"default": "./dist/plugin-sdk/channel-config-primitives.js"
},
"./plugin-sdk/channel-config-schema": {
"types": "./dist/plugin-sdk/channel-config-schema.d.ts",
"default": "./dist/plugin-sdk/channel-config-schema.js"
},
"./plugin-sdk/bundled-channel-config-schema": {
"default": "./dist/plugin-sdk/bundled-channel-config-schema.js"
},
"./plugin-sdk/chat-channel-ids": {
"default": "./dist/plugin-sdk/chat-channel-ids.js"
},
"./plugin-sdk/channel-actions": {
"types": "./dist/plugin-sdk/channel-actions.d.ts",
"default": "./dist/plugin-sdk/channel-actions.js"
},
"./plugin-sdk/channel-plugin-common": {
"types": "./dist/plugin-sdk/channel-plugin-common.d.ts",
"default": "./dist/plugin-sdk/channel-plugin-common.js"
},
"./plugin-sdk/channel-core": {
"types": "./dist/plugin-sdk/channel-core.d.ts",
"default": "./dist/plugin-sdk/channel-core.js"
},
"./plugin-sdk/channel-entry-contract": {
"types": "./dist/plugin-sdk/channel-entry-contract.d.ts",
"default": "./dist/plugin-sdk/channel-entry-contract.js"
},
"./plugin-sdk/channel-contract": {
"types": "./dist/plugin-sdk/channel-contract.d.ts",
"default": "./dist/plugin-sdk/channel-contract.js"
},
"./plugin-sdk/channel-feedback": {
"types": "./dist/plugin-sdk/channel-feedback.d.ts",
"default": "./dist/plugin-sdk/channel-feedback.js"
},
"./plugin-sdk/channel-inbound": {
"types": "./dist/plugin-sdk/channel-inbound.d.ts",
"default": "./dist/plugin-sdk/channel-inbound.js"
},
"./plugin-sdk/channel-inbound-debounce": {
"types": "./dist/plugin-sdk/channel-inbound-debounce.d.ts",
"default": "./dist/plugin-sdk/channel-inbound-debounce.js"
},
"./plugin-sdk/channel-mention-gating": {
"default": "./dist/plugin-sdk/channel-mention-gating.js"
},
"./plugin-sdk/channel-lifecycle": {
"types": "./dist/plugin-sdk/channel-lifecycle.d.ts",
"default": "./dist/plugin-sdk/channel-lifecycle.js"
},
"./plugin-sdk/channel-ingress-runtime": {
"types": "./dist/plugin-sdk/channel-ingress-runtime.d.ts",
"default": "./dist/plugin-sdk/channel-ingress-runtime.js"
},
"./plugin-sdk/channel-message": {
"types": "./dist/plugin-sdk/channel-message.d.ts",
"default": "./dist/plugin-sdk/channel-message.js"
},
"./plugin-sdk/channel-outbound": {
"types": "./dist/plugin-sdk/channel-outbound.d.ts",
"default": "./dist/plugin-sdk/channel-outbound.js"
},
"./plugin-sdk/channel-pairing": {
"types": "./dist/plugin-sdk/channel-pairing.d.ts",
"default": "./dist/plugin-sdk/channel-pairing.js"
},
"./plugin-sdk/channel-policy": {
"types": "./dist/plugin-sdk/channel-policy.d.ts",
"default": "./dist/plugin-sdk/channel-policy.js"
},
"./plugin-sdk/channel-send-result": {
"types": "./dist/plugin-sdk/channel-send-result.d.ts",
"default": "./dist/plugin-sdk/channel-send-result.js"
},
"./plugin-sdk/channel-route": {
"default": "./dist/plugin-sdk/channel-route.js"
},
"./plugin-sdk/channel-targets": {
"default": "./dist/plugin-sdk/channel-targets.js"
},
"./plugin-sdk/context-visibility-runtime": {
"default": "./dist/plugin-sdk/context-visibility-runtime.js"
},
"./plugin-sdk/file-lock": {
"default": "./dist/plugin-sdk/file-lock.js"
},
"./plugin-sdk/fetch-runtime": {
"default": "./dist/plugin-sdk/fetch-runtime.js"
},
"./plugin-sdk/runtime-fetch": {
"default": "./dist/plugin-sdk/runtime-fetch.js"
},
"./plugin-sdk/inline-image-data-url-runtime": {
"default": "./dist/plugin-sdk/inline-image-data-url-runtime.js"
},
"./plugin-sdk/node-host": {
"default": "./dist/plugin-sdk/node-host.js"
},
"./plugin-sdk/computer-use": {
"types": "./dist/plugin-sdk/computer-use.d.ts",
"default": "./dist/plugin-sdk/computer-use.js"
},
"./plugin-sdk/response-limit-runtime": {
"default": "./dist/plugin-sdk/response-limit-runtime.js"
},
"./plugin-sdk/session-binding-runtime": {
"default": "./dist/plugin-sdk/session-binding-runtime.js"
},
"./plugin-sdk/session-catalog": {
"types": "./dist/plugin-sdk/session-catalog.d.ts",
"default": "./dist/plugin-sdk/session-catalog.js"
},
"./plugin-sdk/session-catalog-paging": {
"default": "./dist/plugin-sdk/session-catalog-paging.js"
},
"./plugin-sdk/session-catalog-runtime": {
"default": "./dist/plugin-sdk/session-catalog-runtime.js"
},
"./plugin-sdk/session-discussion": {
"types": "./dist/plugin-sdk/session-discussion.d.ts",
"default": "./dist/plugin-sdk/session-discussion.js"
},
"./plugin-sdk/session-key-runtime": {
"default": "./dist/plugin-sdk/session-key-runtime.js"
},
"./plugin-sdk/session-store-runtime": {
"types": "./dist/plugin-sdk/session-store-runtime.d.ts",
"default": "./dist/plugin-sdk/session-store-runtime.js"
},
"./plugin-sdk/session-transcript-runtime": {
"default": "./dist/plugin-sdk/session-transcript-runtime.js"
},
"./plugin-sdk/sqlite-runtime": {
"default": "./dist/plugin-sdk/sqlite-runtime.js"
},
"./plugin-sdk/sqlite-worker-runtime": {
"default": "./dist/plugin-sdk/sqlite-worker-runtime.js"
},
"./plugin-sdk/session-transcript-hit": {
"default": "./dist/plugin-sdk/session-transcript-hit.js"
},
"./plugin-sdk/session-visibility": {
"default": "./dist/plugin-sdk/session-visibility.js"
},
"./plugin-sdk/ssrf-dispatcher": {
"default": "./dist/plugin-sdk/ssrf-dispatcher.js"
},
"./plugin-sdk/string-coerce-runtime": {
"types": "./dist/plugin-sdk/string-coerce-runtime.d.ts",
"default": "./dist/plugin-sdk/string-coerce-runtime.js"
},
"./plugin-sdk/group-activation": {
"default": "./dist/plugin-sdk/group-activation.js"
},
"./plugin-sdk/global-singleton": {
"default": "./dist/plugin-sdk/global-singleton.js"
},
"./plugin-sdk/directory-config-runtime": {
"default": "./dist/plugin-sdk/directory-config-runtime.js"
},
"./plugin-sdk/directory-runtime": {
"types": "./dist/plugin-sdk/directory-runtime.d.ts",
"default": "./dist/plugin-sdk/directory-runtime.js"
},
"./plugin-sdk/image-generation": {
"default": "./dist/plugin-sdk/image-generation.js"
},
"./plugin-sdk/image-generation-runtime": {
"default": "./dist/plugin-sdk/image-generation-runtime.js"
},
"./plugin-sdk/image-generation-core": {
"default": "./dist/plugin-sdk/image-generation-core.js"
},
"./plugin-sdk/music-generation": {
"default": "./dist/plugin-sdk/music-generation.js"
},
"./plugin-sdk/video-generation": {
"default": "./dist/plugin-sdk/video-generation.js"
},
"./plugin-sdk/video-generation-runtime": {
"default": "./dist/plugin-sdk/video-generation-runtime.js"
},
"./plugin-sdk/reply-history": {
"types": "./dist/plugin-sdk/reply-history.d.ts",
"default": "./dist/plugin-sdk/reply-history.js"
},
"./plugin-sdk/realtime-transcription": {
"default": "./dist/plugin-sdk/realtime-transcription.js"
},
"./plugin-sdk/realtime-transcription-session": {
"default": "./dist/plugin-sdk/realtime-transcription-session.js"
},
"./plugin-sdk/realtime-bootstrap-context": {
"default": "./dist/plugin-sdk/realtime-bootstrap-context.js"
},
"./plugin-sdk/realtime-voice-audio-queue": {
"default": "./dist/plugin-sdk/realtime-voice-audio-queue.js"
},
"./plugin-sdk/realtime-voice-activation": {
"default": "./dist/plugin-sdk/realtime-voice-activation.js"
},
"./plugin-sdk/realtime-voice": {
"default": "./dist/plugin-sdk/realtime-voice.js"
},
"./plugin-sdk/realtime-voice-playback": {
"default": "./dist/plugin-sdk/realtime-voice-playback.js"
},
"./plugin-sdk/realtime-voice-provider": {
"default": "./dist/plugin-sdk/realtime-voice-provider.js"
},
"./plugin-sdk/meeting-page-script-runtime": {
"default": "./dist/plugin-sdk/meeting-page-script-runtime.js"
},
"./plugin-sdk/meeting-runtime": {
"types": "./dist/plugin-sdk/meeting-runtime.d.ts",
"default": "./dist/plugin-sdk/meeting-runtime.js"
},
"./plugin-sdk/transcripts": {
"default": "./dist/plugin-sdk/transcripts.js"
},
"./plugin-sdk/media-understanding": {
"types": "./dist/plugin-sdk/media-understanding.d.ts",
"default": "./dist/plugin-sdk/media-understanding.js"
},
"./plugin-sdk/media-understanding-runtime": {
"types": "./dist/plugin-sdk/media-understanding-runtime.d.ts",
"default": "./dist/plugin-sdk/media-understanding-runtime.js"
},
"./plugin-sdk/request-url": {
"default": "./dist/plugin-sdk/request-url.js"
},
"./plugin-sdk/runtime-store": {
"types": "./dist/plugin-sdk/runtime-store.d.ts",
"default": "./dist/plugin-sdk/runtime-store.js"
},
"./plugin-sdk/json-store": {
"types": "./dist/plugin-sdk/json-store.d.ts",
"default": "./dist/plugin-sdk/json-store.js"
},
"./plugin-sdk/persistent-dedupe": {
"types": "./dist/plugin-sdk/persistent-dedupe.d.ts",
"default": "./dist/plugin-sdk/persistent-dedupe.js"
},
"./plugin-sdk/ingress-effect-once": {
"types": "./dist/plugin-sdk/ingress-effect-once.d.ts",
"default": "./dist/plugin-sdk/ingress-effect-once.js"
},
"./plugin-sdk/keyed-async-queue": {
"default": "./dist/plugin-sdk/keyed-async-queue.js"
},
"./plugin-sdk/qa-runner-runtime": {
"default": "./dist/plugin-sdk/qa-runner-runtime.js"
},
"./plugin-sdk/memory-core-host-embedding-registry": {
"default": "./dist/plugin-sdk/memory-core-host-embedding-registry.js"
},
"./plugin-sdk/memory-core-host-engine-embeddings": {
"default": "./dist/plugin-sdk/memory-core-host-engine-embeddings.js"
},
"./plugin-sdk/memory-core-host-engine-curated": {
"default": "./dist/plugin-sdk/memory-core-host-engine-curated.js"
},
"./plugin-sdk/memory-core-host-engine-foundation": {
"types": "./dist/plugin-sdk/memory-core-host-engine-foundation.d.ts",
"default": "./dist/plugin-sdk/memory-core-host-engine-foundation.js"
},
"./plugin-sdk/memory-core-host-engine-indexing": {
"default": "./dist/plugin-sdk/memory-core-host-engine-indexing.js"
},
"./plugin-sdk/memory-core-host-engine-knn": {
"default": "./dist/plugin-sdk/memory-core-host-engine-knn.js"
},
"./plugin-sdk/memory-core-host-engine-fs": {
"default": "./dist/plugin-sdk/memory-core-host-engine-fs.js"
},
"./plugin-sdk/memory-core-host-engine-sessions": {
"default": "./dist/plugin-sdk/memory-core-host-engine-sessions.js"
},
"./plugin-sdk/memory-core-host-engine-schema": {
"default": "./dist/plugin-sdk/memory-core-host-engine-schema.js"
},
"./plugin-sdk/memory-core-host-engine-storage": {
"default": "./dist/plugin-sdk/memory-core-host-engine-storage.js"
},
"./plugin-sdk/memory-core-host-secret": {
"default": "./dist/plugin-sdk/memory-core-host-secret.js"
},
"./plugin-sdk/memory-core-host-status": {
"default": "./dist/plugin-sdk/memory-core-host-status.js"
},
"./plugin-sdk/memory-core-host-runtime-cli": {
"default": "./dist/plugin-sdk/memory-core-host-runtime-cli.js"
},
"./plugin-sdk/memory-core-host-runtime-core": {
"default": "./dist/plugin-sdk/memory-core-host-runtime-core.js"
},
"./plugin-sdk/memory-core-host-runtime-files": {
"default": "./dist/plugin-sdk/memory-core-host-runtime-files.js"
},
"./plugin-sdk/memory-host-core": {
"types": "./dist/plugin-sdk/memory-host-core.d.ts",
"default": "./dist/plugin-sdk/memory-host-core.js"
},
"./plugin-sdk/memory-host-events": {
"default": "./dist/plugin-sdk/memory-host-events.js"
},
"./plugin-sdk/memory-host-markdown": {
"default": "./dist/plugin-sdk/memory-host-markdown.js"
},
"./plugin-sdk/memory-host-search": {
"default": "./dist/plugin-sdk/memory-host-search.js"
},
"./plugin-sdk/message-tool-delivery-hints": {
"default": "./dist/plugin-sdk/message-tool-delivery-hints.js"
},
"./plugin-sdk/models-provider-runtime": {
"types": "./dist/plugin-sdk/models-provider-runtime.d.ts",
"default": "./dist/plugin-sdk/models-provider-runtime.js"
},
"./plugin-sdk/skill-commands-runtime": {
"types": "./dist/plugin-sdk/skill-commands-runtime.d.ts",
"default": "./dist/plugin-sdk/skill-commands-runtime.js"
},
"./plugin-sdk/native-command-config-runtime": {
"types": "./dist/plugin-sdk/native-command-config-runtime.d.ts",
"default": "./dist/plugin-sdk/native-command-config-runtime.js"
},
"./plugin-sdk/native-command-registry": {
"types": "./dist/plugin-sdk/native-command-registry.d.ts",
"default": "./dist/plugin-sdk/native-command-registry.js"
},
"./plugin-sdk/provider-auth": {
"types": "./dist/plugin-sdk/provider-auth.d.ts",
"default": "./dist/plugin-sdk/provider-auth.js"
},
"./plugin-sdk/provider-auth-aliases": {
"default": "./dist/plugin-sdk/provider-auth-aliases.js"
},
"./plugin-sdk/provider-oauth-runtime": {
"default": "./dist/plugin-sdk/provider-oauth-runtime.js"
},
"./plugin-sdk/provider-auth-runtime": {
"default": "./dist/plugin-sdk/provider-auth-runtime.js"
},
"./plugin-sdk/provider-auth-login-flow-runtime": {
"default": "./dist/plugin-sdk/provider-auth-login-flow-runtime.js"
},
"./plugin-sdk/provider-auth-api-key": {
"default": "./dist/plugin-sdk/provider-auth-api-key.js"
},
"./plugin-sdk/provider-auth-result": {
"default": "./dist/plugin-sdk/provider-auth-result.js"
},
"./plugin-sdk/provider-selection-runtime": {
"default": "./dist/plugin-sdk/provider-selection-runtime.js"
},
"./plugin-sdk/plugin-entry": {
"types": "./dist/plugin-sdk/plugin-entry.d.ts",
"default": "./dist/plugin-sdk/plugin-entry.js"
},
"./plugin-sdk/provider-catalog-live-runtime": {
"default": "./dist/plugin-sdk/provider-catalog-live-runtime.js"
},
"./plugin-sdk/provider-catalog-runtime": {
"types": "./dist/plugin-sdk/provider-catalog-runtime.d.ts",
"default": "./dist/plugin-sdk/provider-catalog-runtime.js"
},
"./plugin-sdk/provider-catalog-shared": {
"default": "./dist/plugin-sdk/provider-catalog-shared.js"
},
"./plugin-sdk/provider-entry": {
"default": "./dist/plugin-sdk/provider-entry.js"
},
"./plugin-sdk/provider-env-vars": {
"default": "./dist/plugin-sdk/provider-env-vars.js"
},
"./plugin-sdk/provider-http": {
"default": "./dist/plugin-sdk/provider-http.js"
},
"./plugin-sdk/provider-binary-stream": {
"types": "./dist/plugin-sdk/provider-binary-stream.d.ts",
"default": "./dist/plugin-sdk/provider-binary-stream.js"
},
"./plugin-sdk/provider-model-types": {
"default": "./dist/plugin-sdk/provider-model-types.js"
},
"./plugin-sdk/provider-model-metadata": {
"default": "./dist/plugin-sdk/provider-model-metadata.js"
},
"./plugin-sdk/provider-model-shared": {
"default": "./dist/plugin-sdk/provider-model-shared.js"
},
"./plugin-sdk/provider-onboard": {
"default": "./dist/plugin-sdk/provider-onboard.js"
},
"./plugin-sdk/provider-stream-family": {
"default": "./dist/plugin-sdk/provider-stream-family.js"
},
"./plugin-sdk/provider-stream-shared": {
"default": "./dist/plugin-sdk/provider-stream-shared.js"
},
"./plugin-sdk/provider-thinking-runtime": {
"default": "./dist/plugin-sdk/provider-thinking-runtime.js"
},
"./plugin-sdk/provider-transport-runtime": {
"default": "./dist/plugin-sdk/provider-transport-runtime.js"
},
"./plugin-sdk/provider-stream": {
"default": "./dist/plugin-sdk/provider-stream.js"
},
"./plugin-sdk/provider-tools": {
"default": "./dist/plugin-sdk/provider-tools.js"
},
"./plugin-sdk/provider-usage": {
"default": "./dist/plugin-sdk/provider-usage.js"
},
"./plugin-sdk/document-extractor": {
"default": "./dist/plugin-sdk/document-extractor.js"
},
"./plugin-sdk/web-content-extractor": {
"default": "./dist/plugin-sdk/web-content-extractor.js"
},
"./plugin-sdk/provider-web-fetch-contract": {
"default": "./dist/plugin-sdk/provider-web-fetch-contract.js"
},
"./plugin-sdk/provider-web-fetch": {
"default": "./dist/plugin-sdk/provider-web-fetch.js"
},
"./plugin-sdk/provider-web-search-config-contract": {
"default": "./dist/plugin-sdk/provider-web-search-config-contract.js"
},
"./plugin-sdk/provider-web-search-contract": {
"default": "./dist/plugin-sdk/provider-web-search-contract.js"
},
"./plugin-sdk/provider-web-search": {
"default": "./dist/plugin-sdk/provider-web-search.js"
},
"./plugin-sdk/retry-runtime": {
"default": "./dist/plugin-sdk/retry-runtime.js"
},
"./plugin-sdk/run-command": {
"types": "./dist/plugin-sdk/run-command.d.ts",
"default": "./dist/plugin-sdk/run-command.js"
},
"./plugin-sdk/param-readers": {
"types": "./dist/plugin-sdk/param-readers.d.ts",
"default": "./dist/plugin-sdk/param-readers.js"
},
"./plugin-sdk/secret-input": {
"types": "./dist/plugin-sdk/secret-input.d.ts",
"default": "./dist/plugin-sdk/secret-input.js"
},
"./plugin-sdk/secret-input-runtime": {
"types": "./dist/plugin-sdk/secret-input-runtime.d.ts",
"default": "./dist/plugin-sdk/secret-input-runtime.js"
},
"./plugin-sdk/decisions": {
"types": "./dist/plugin-sdk/decisions.d.ts",
"default": "./dist/plugin-sdk/decisions.js"
},
"./plugin-sdk/secret-ref-readonly": {
"types": "./dist/plugin-sdk/secret-ref-readonly.d.ts",
"default": "./dist/plugin-sdk/secret-ref-readonly.js"
},
"./plugin-sdk/channel-status": {
"types": "./dist/plugin-sdk/channel-status.d.ts",
"default": "./dist/plugin-sdk/channel-status.js"
},
"./plugin-sdk/status-helpers": {
"types": "./dist/plugin-sdk/status-helpers.d.ts",
"default": "./dist/plugin-sdk/status-helpers.js"
},
"./plugin-sdk/speech": {
"default": "./dist/plugin-sdk/speech.js"
},
"./plugin-sdk/string-normalization-runtime": {
"default": "./dist/plugin-sdk/string-normalization-runtime.js"
},
"./plugin-sdk/state-paths": {
"types": "./dist/plugin-sdk/state-paths.d.ts",
"default": "./dist/plugin-sdk/state-paths.js"
},
"./plugin-sdk/target-resolver-runtime": {
"default": "./dist/plugin-sdk/target-resolver-runtime.js"
},
"./plugin-sdk/telegram-account": {
"types": "./dist/plugin-sdk/telegram-account.d.ts",
"default": "./dist/plugin-sdk/telegram-account.js"
},
"./plugin-sdk/text-autolink-runtime": {
"default": "./dist/plugin-sdk/text-autolink-runtime.js"
},
"./plugin-sdk/text-grapheme": {
"default": "./dist/plugin-sdk/text-grapheme.js"
},
"./plugin-sdk/text-utility-runtime": {
"default": "./dist/plugin-sdk/text-utility-runtime.js"
},
"./plugin-sdk/widget-html": {
"types": "./dist/plugin-sdk/widget-html.d.ts",
"default": "./dist/plugin-sdk/widget-html.js"
},
"./plugin-sdk/control-ui": {
"types": "./dist/plugin-sdk/control-ui.d.ts",
"default": "./dist/plugin-sdk/control-ui.js"
},
"./plugin-sdk/feature-contract": {
"types": "./dist/plugin-sdk/feature-contract.d.ts",
"default": "./dist/plugin-sdk/feature-contract.js"
},
"./plugin-sdk/feature-plugin": {
"types": "./dist/plugin-sdk/feature-plugin.d.ts",
"default": "./dist/plugin-sdk/feature-plugin.js"
},
"./plugin-sdk/tool-plugin": {
"types": "./dist/plugin-sdk/tool-plugin.d.ts",
"default": "./dist/plugin-sdk/tool-plugin.js"
},
"./plugin-sdk/tool-payload": {
"default": "./dist/plugin-sdk/tool-payload.js"
},
"./plugin-sdk/tool-results": {
"types": "./dist/plugin-sdk/tool-results.d.ts",
"default": "./dist/plugin-sdk/tool-results.js"
},
"./plugin-sdk/tool-send": {
"types": "./dist/plugin-sdk/tool-send.d.ts",
"default": "./dist/plugin-sdk/tool-send.js"
},
"./plugin-sdk/webhook-ingress": {
"types": "./dist/plugin-sdk/webhook-ingress.d.ts",
"default": "./dist/plugin-sdk/webhook-ingress.js"
},
"./plugin-sdk/webhook-targets": {
"default": "./dist/plugin-sdk/webhook-targets.js"
},
"./plugin-sdk/webhook-request-guards": {
"types": "./dist/plugin-sdk/webhook-request-guards.d.ts",
"default": "./dist/plugin-sdk/webhook-request-guards.js"
},
"./plugin-sdk/web-media": {
"types": "./dist/plugin-sdk/web-media.d.ts",
"default": "./dist/plugin-sdk/web-media.js"
},
"./plugin-sdk/agent-core": {
"default": "./dist/plugin-sdk/agent-core.js"
},
"./plugin-sdk/agent-sessions": {
"default": "./dist/plugin-sdk/agent-sessions.js"
},
"./plugin-sdk/llm": {
"default": "./dist/plugin-sdk/llm.js"
},
"./cli-entry": "./openclaw.mjs"
},
"scripts": {
"android:assemble": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:assemblePlayDebug :wear:assembleDebug :wear-shared:assembleDebug",
"android:assemble:third-party": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:assembleThirdPartyDebug",
"android:bundle:release": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android play_store_archive'",
"android:format": "cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat :wear:ktlintFormat :wear-shared:ktlintFormat",
"android:install": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:installPlayDebug",
"android:install:third-party": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:installThirdPartyDebug",
"android:lint": "cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck :wear:ktlintCheck :wear-shared:ktlintCheck",
"android:lint:android": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:lintPlayDebug :app:lintThirdPartyDebug :wear:lintDebug :wear-shared:lintDebug",
"android:run": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:runPlayDebug",
"android:run:third-party": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:runThirdPartyDebug",
"android:release": "bash scripts/android-release.sh",
"android:release:archive": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android play_store_archive'",
"android:release:auth:check": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android auth_check'",
"android:release:metadata": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android metadata'",
"android:release:preflight": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android release_preflight'",
"android:release:signing:check": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android signing_check'",
"android:release:signing:plan": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android signing_plan'",
"android:release:signing:sync:pull": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android signing_sync_pull'",
"android:release:signing:sync:push": "bash -lc 'source ./scripts/lib/android-fastlane.sh && cd apps/android && run_android_fastlane android signing_sync_push'",
"android:release:upload": "node scripts/mobile-release.mjs run --platform android",
"android:screenshots": "bash scripts/android-screenshots.sh",
"android:test": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:testPlayDebugUnitTest :wear:testDebugUnitTest :wear-shared:testDebugUnitTest",
"android:test:integration": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts",
"android:test:third-party": "node --import ./scripts/tsx.mjs scripts/run-android-gradle.mts :app:testThirdPartyDebugUnitTest",
"android:version": "node --import ./scripts/tsx.mjs scripts/android-version.ts --json",
"android:version:check": "node --import ./scripts/tsx.mjs scripts/android-sync-versioning.ts --check",
"android:version:pin": "node --import ./scripts/tsx.mjs scripts/android-pin-version.ts",
"android:version:sync": "node --import ./scripts/tsx.mjs scripts/android-sync-versioning.ts --write",
"audit:seams": "node --import ./scripts/tsx.mjs scripts/audit-seams.mts",
"bench:plugins:invocation": "node --import ./scripts/tsx.mjs scripts/bench-plugin-invocation.ts",
"bench:plugins:stream": "node --expose-gc --import ./scripts/tsx.mjs scripts/bench-plugin-stream.ts",
"bench:usage-refresh-memory": "node --import ./scripts/tsx.mjs scripts/bench-usage-refresh-memory.ts",
"build": "node --import ./scripts/tsx.mjs scripts/build-all.mts",
"build:ci-artifacts": "node --import ./scripts/tsx.mjs scripts/build-all.mts ciArtifacts",
"build:docker": "pnpm plugins:assets:build && node --import ./scripts/tsx.mjs scripts/tsdown-build.mts && node --import ./scripts/tsx.mjs scripts/check-cli-bootstrap-imports.mts && node scripts/runtime-postbuild.mjs && node --import ./scripts/tsx.mjs scripts/build-stamp.mts && node --import ./scripts/tsx.mjs scripts/runtime-postbuild-stamp.mts && pnpm plugins:assets:copy && node --import ./scripts/tsx.mjs scripts/write-build-info.ts && node --import ./scripts/tsx.mjs scripts/write-cli-startup-metadata.ts",
"build:package": "node --import ./scripts/tsx.mjs scripts/build-all.mts package",
"build:plugin-sdk:dts": "node --import ./scripts/tsx.mjs scripts/write-plugin-sdk-entry-dts.ts",
"build:plugin-sdk:strict-smoke": "node --import ./scripts/tsx.mjs scripts/build-all.mts pluginSdkStrictSmoke",
"build:strict-smoke": "node --import ./scripts/tsx.mjs scripts/build-all.mts strictSmoke",
"canvas:a2ui:bundle": "node --import ./scripts/tsx.mjs scripts/bundle-a2ui.mts",
"channels:catalog:check": "node scripts/write-official-channel-catalog.mjs --check",
"channels:catalog:gen": "node scripts/write-official-channel-catalog.mjs --write",
"changed:lanes": "node scripts/changed-lanes.mjs",
"check": "node --import ./scripts/tsx.mjs scripts/check.mts",
"check:architecture": "pnpm check:import-cycles && pnpm check:madge-import-cycles && pnpm check:deprecated-api-usage && pnpm check:wrapper-shadowing && pnpm check:deprecated-jsdoc && pnpm db:kysely:check && pnpm lint:kysely && pnpm check:database-first-legacy-stores",
"check:assertion-safety": "node --import ./scripts/tsx.mjs scripts/check-assertion-safety-ratchet.mts",
"check:base-config-schema": "node --import ./scripts/tsx.mjs scripts/generate-base-config-schema.ts --check",
"check:bundled-channel-config-metadata": "node --import ./scripts/tsx.mjs scripts/generate-bundled-channel-config-metadata.ts --check",
"check:changed": "node scripts/check-changed.mjs",
"check:changelog-attributions": "node --import ./scripts/tsx.mjs scripts/check-changelog-attributions.mts",
"check:coercion-helpers": "node --import ./scripts/tsx.mjs scripts/check-coercion-helper-declarations.mts",
"check:database-first-legacy-stores": "node --import ./scripts/tsx.mjs scripts/check-database-first-legacy-stores.mts",
"check:deprecated-api-usage": "node --import ./scripts/tsx.mjs scripts/check-deprecated-api-usage.mts",
"check:deprecated-jsdoc": "node --import ./scripts/tsx.mjs scripts/check-deprecated-jsdoc.mts",
"check:doctor-deprecation-registry": "node --import ./scripts/tsx.mjs scripts/check-doctor-deprecation-registry.ts",
"check:docs": "pnpm format:docs:check && pnpm lint:docs && pnpm lint:templates && pnpm docs:check-mdx && pnpm docs:check-i18n-glossary && pnpm docs:check-links && pnpm docs:check-config-examples && pnpm changelog:check",
"changelog:check": "node scripts/release-changelog.mjs check && node scripts/render-release-changelog.mjs --check",
"changelog:split": "node scripts/release-changelog.mjs split",
"changelog:from-docs": "node scripts/render-release-changelog.mjs",
"check:env-var-count": "node --import ./scripts/tsx.mjs scripts/check-env-var-count.mts",
"check:browser-inspect-script:swift": "node --import ./scripts/tsx.mjs scripts/generate-browser-inspect-script-swift.mts --check",
"check:host-env-policy:swift": "node --import ./scripts/tsx.mjs scripts/generate-host-env-security-policy-swift.mts --check",
"check:import-cycles": "node --import ./scripts/tsx.mjs scripts/check-import-cycles.ts",
"check:line-cap-ratchet": "node --import ./scripts/tsx.mjs scripts/check-line-cap-ratchet.mts",
"check:max-lines-ratchet": "node --import ./scripts/tsx.mjs scripts/check-max-lines-ratchet.mts",
"check:madge-import-cycles": "node --import ./scripts/tsx.mjs scripts/check-madge-import-cycles.ts",
"check:media-download-helpers": "node --import ./scripts/tsx.mjs scripts/check-media-download-helper-roundtrip.mts",
"check:no-conflict-markers": "node scripts/check-no-conflict-markers.mjs",
"check:no-runtime-action-load-config": "node --import ./scripts/tsx.mjs scripts/check-no-runtime-action-load-config.mts",
"check:opengrep-rule-metadata": "node security/opengrep/check-rule-metadata.mjs",
"check:protocol-coverage": "node scripts/check-protocol-event-coverage.mjs",
"check:runtime-sidecar-loaders": "node --import ./scripts/tsx.mjs scripts/check-runtime-sidecar-loaders.mts",
"check:script-erasability": "node --disable-warning=ExperimentalWarning scripts/check-script-erasability.mjs",
"check:static-import-sccs": "pnpm check:madge-import-cycles",
"check:temp-path-guardrails": "node --import ./scripts/tsx.mjs scripts/check-temp-path-guardrails.ts",
"check:wrapper-shadowing": "node --import ./scripts/tsx.mjs scripts/check-wrapper-shadowing.mts",
"check:test-types": "pnpm tsgo:test",
"check:timed": "node --import ./scripts/tsx.mjs scripts/check-timed.mts",
"check:timed:all-types": "node --import ./scripts/tsx.mjs scripts/check-timed.mts --include-test-types",
"check:timed:architecture": "node --import ./scripts/tsx.mjs scripts/check-timed.mts --include-architecture",
"check:workflows": "node --import ./scripts/tsx.mjs scripts/check-workflows.mts",
"ci:full-release": "node scripts/full-release-validation-at-sha.mjs",
"ci:git-owner:check": "node scripts/generate-ci-git-owner.mts --check",
"ci:git-owner:gen": "node scripts/generate-ci-git-owner.mts",
"frv": "node scripts/frv.mjs",
"ci:timings": "node scripts/ci-run-timings.mjs --latest-main",
"ci:timings:refit": "node --import ./scripts/tsx.mjs scripts/ci-refit-test-timings.mts",
"ci:timings:recent": "node scripts/ci-run-timings.mjs --recent 10",
"ci:timings:trend": "node scripts/ci-run-timings.mjs --trend-hours 72 --compare-hours 12",
"clean:dist": "node -e \"require('fs').rmSync('dist', {recursive: true, force: true})\"",
"codex-app-server:protocol:check": "node --import ./scripts/tsx.mjs scripts/check-codex-app-server-protocol.ts",
"codex-app-server:protocol:sync": "node --import ./scripts/tsx.mjs scripts/sync-codex-app-server-protocol.ts",
"codex-supervisor:mcp": "node --import ./scripts/tsx.mjs src/mcp/codex-supervision-tools-serve.ts",
"codex:mcp": "node --import ./scripts/tsx.mjs src/mcp/codex-supervision-tools-serve.ts",
"config:channels:check": "node --import ./scripts/tsx.mjs scripts/generate-bundled-channel-config-metadata.ts --check",
"config:channels:gen": "node --import ./scripts/tsx.mjs scripts/generate-bundled-channel-config-metadata.ts --write",
"config:docs:check": "node --import ./scripts/tsx.mjs scripts/generate-config-doc-baseline.ts --check",
"config:docs:gen": "node --import ./scripts/tsx.mjs scripts/generate-config-doc-baseline.ts --write",
"config:schema:check": "node --import ./scripts/tsx.mjs scripts/generate-base-config-schema.ts --check",
"config:schema:gen": "node --import ./scripts/tsx.mjs scripts/generate-base-config-schema.ts --write",
"crabbox:hydrate": "node scripts/crabbox-wrapper.mjs actions hydrate",
"crabbox:run": "node scripts/crabbox-wrapper.mjs run",
"crabbox:stop": "node scripts/crabbox-wrapper.mjs stop",
"crabbox:warmup": "node scripts/crabbox-wrapper.mjs warmup",
"deadcode:dependencies": "pnpm deadcode:full",
"deadcode:exports": "node --import ./scripts/tsx.mjs scripts/check-deadcode-exports.mts",
"deadcode:full": "pnpm dlx --package knip@6.32.2 knip --config config/knip.config.ts --production --no-progress --reporter compact --no-config-hints --exclude duplicates && pnpm dlx --package knip@6.32.2 knip --config config/knip.all-exports.config.ts --no-progress --reporter compact --no-config-hints --exports --exclude duplicates",
"deadcode:knip": "pnpm dlx --package knip@6.32.2 knip --config config/knip.config.ts --production --no-progress --reporter compact --files --dependencies",
"deadcode:report": "pnpm deadcode:full && pnpm deadcode:exports",
"deadcode:unused-files": "node --import ./scripts/tsx.mjs scripts/check-deadcode-unused-files.mts",
"deps:root-ownership": "node --import ./scripts/tsx.mjs scripts/root-dependency-ownership-audit.mts",
"deps:root-ownership:check": "node --import ./scripts/tsx.mjs scripts/root-dependency-ownership-audit.mts --check",
"deps:changes:report": "node --import ./scripts/tsx.mjs scripts/dependency-changes-report.mts",
"deps:patches:check": "node --import ./scripts/tsx.mjs scripts/check-package-patches.mts",
"deps:pins:check": "node --import ./scripts/tsx.mjs scripts/check-dependency-pins.mts",
"deps:npm-lock:check": "node scripts/generate-npm-package-lock.mjs --all",
"deps:npm-lock:check:changed": "node scripts/generate-npm-package-lock.mjs --changed",
"deps:npm-lock:report": "node --import ./scripts/tsx.mjs scripts/npm-package-locks-report.mts",
"deps:ownership-surface:check": "node --import ./scripts/tsx.mjs scripts/dependency-ownership-surface-report.mts --check",
"deps:ownership-surface:report": "node --import ./scripts/tsx.mjs scripts/dependency-ownership-surface-report.mts",
"deps:transitive-risk:report": "node --import ./scripts/tsx.mjs scripts/transitive-manifest-risk-report.mts",
"deps:vuln:gate": "node --import ./scripts/tsx.mjs scripts/dependency-vulnerability-gate.mts",
"db:kysely:check": "node --import ./scripts/tsx.mjs scripts/generate-kysely-types.mts --verify",
"db:kysely:gen": "node --import ./scripts/tsx.mjs scripts/generate-kysely-types.mts",
"db:worker-inventory:check": "node scripts/database-worker-inventory.mjs --check",
"db:worker-inventory:gen": "node scripts/database-worker-inventory.mjs --write",
"dev": "node scripts/run-node.mjs",
"dev:ui:mock": "node --import ./scripts/tsx.mjs scripts/control-ui-mock-dev.ts",
"docs:check-config-examples": "node scripts/check-docs-config-examples.mjs",
"docs:check-i18n-glossary": "node --import ./scripts/tsx.mjs scripts/check-docs-i18n-glossary.mts",
"docs:check-links": "node scripts/docs-link-audit.mjs",
"docs:check-links:anchors": "node scripts/docs-link-audit.mjs --anchors",
"docs:check-mdx": "node scripts/check-docs-mdx.mjs docs README.md",
"docs:dev": "node scripts/docs-dev.mjs",
"docs:list": "node scripts/docs-list.js",
"docs:map:gen": "node scripts/docs-list.js --headings",
"docs:spellcheck": "bash scripts/docs-spellcheck.sh",
"docs:spellcheck:fix": "bash scripts/docs-spellcheck.sh --write",
"maturity:check": "node --import ./scripts/tsx.mjs scripts/qa/render-maturity-docs.ts --check",
"maturity:render": "node --import ./scripts/tsx.mjs scripts/qa/render-maturity-docs.ts",
"dup:check": "node scripts/check-duplicates.mjs",
"dup:check:coverage": "node scripts/check-duplicates.mjs --coverage",
"dup:check:json": "node scripts/check-duplicates.mjs --json",
"format": "oxfmt --write --threads=1",
"format:all": "pnpm format && pnpm format:swift",
"format:check": "oxfmt --check",
"format:diff": "oxfmt --write --threads=1 && git --no-pager diff",
"format:docs": "node --import ./scripts/tsx.mjs scripts/format-docs.mts",
"format:docs:check": "node --import ./scripts/tsx.mjs scripts/format-docs.mts --check",
"format:fix": "oxfmt --write --threads=1",
"format:swift": "./scripts/format-swift.sh",
"gateway:dev": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway",
"gateway:dev:reset": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_SKIP_CHANNELS=1 -- node scripts/run-node.mjs --dev gateway --reset",
"gateway:watch": "node --import ./scripts/tsx.mjs scripts/gateway-watch-tmux.mts gateway --force",
"gateway:watch:raw": "node scripts/watch-node.mjs gateway --force",
"gen:browser-inspect-script:swift": "node --import ./scripts/tsx.mjs scripts/generate-browser-inspect-script-swift.mts --write",
"gen:host-env-policy:swift": "node --import ./scripts/tsx.mjs scripts/generate-host-env-security-policy-swift.mts --write",
"ghsa:patch": "node --import ./scripts/tsx.mjs scripts/ghsa-patch.mts",
"ios:app-review-notes:pdf": "xcrun swift scripts/ios-app-review-notes-pdf.swift apps/ios/APP-REVIEW-NOTES-APPLE.md apps/ios/build/app-review/APP-REVIEW-NOTES.pdf",
"ios:build": "/bin/bash -c 'export PATH=\"$PATH:/opt/homebrew/bin:/usr/local/bin\"; ./scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && node scripts/ios-write-swift-filelist.mjs && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-generic/platform=iOS Simulator}\" -configuration Debug build'",
"ios:filelist:gen": "node scripts/ios-write-swift-filelist.mjs",
"ios:gen": "/bin/bash -c 'export PATH=\"$PATH:/opt/homebrew/bin:/usr/local/bin\"; ./scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && node scripts/ios-write-swift-filelist.mjs && cd apps/ios && xcodegen generate'",
"ios:open": "/bin/bash -c 'export PATH=\"$PATH:/opt/homebrew/bin:/usr/local/bin\"; ./scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && node scripts/ios-write-swift-filelist.mjs && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'",
"ios:release:archive": "/bin/bash scripts/ios-release-archive.sh",
"ios:release:cut": "/bin/bash scripts/ios-release-cut.sh",
"ios:release:plan": "/bin/bash scripts/ios-release-plan.sh",
"ios:release:prepare": "/bin/bash scripts/ios-release-prepare.sh",
"ios:release:signing:check": "/bin/bash -lc 'source ./scripts/lib/ios-fastlane.sh && cd apps/ios && run_ios_fastlane ios signing_check'",
"ios:release:signing:plan": "/bin/bash -lc 'source ./scripts/lib/ios-fastlane.sh && cd apps/ios && run_ios_fastlane ios signing_plan'",
"ios:release:signing:setup": "/bin/bash -lc 'source ./scripts/lib/ios-fastlane.sh && cd apps/ios && run_ios_fastlane ios signing_setup'",
"ios:release:signing:sync:pull": "/bin/bash -lc 'source ./scripts/lib/ios-fastlane.sh && cd apps/ios && run_ios_fastlane ios signing_sync_pull'",
"ios:release:signing:sync:push": "/bin/bash -lc 'source ./scripts/lib/ios-fastlane.sh && cd apps/ios && run_ios_fastlane ios signing_sync_push'",
"ios:release:upload": "node scripts/mobile-release.mjs run --platform ios",
"ios:run": "/bin/bash scripts/ios-run.sh",
"ios:screenshots": "/bin/bash scripts/ios-screenshots.sh",
"ios:version": "node --import ./scripts/tsx.mjs scripts/ios-version.ts --json",
"ios:version:check": "node --import ./scripts/tsx.mjs scripts/ios-sync-versioning.ts --check",
"ios:version:sync": "node --import ./scripts/tsx.mjs scripts/ios-sync-versioning.ts --write",
"leak:embedded-run": "node --import ./scripts/tsx.mjs --expose-gc scripts/embedded-run-abort-leak.ts",
"leak:embedded-run:liveness": "node --import ./scripts/tsx.mjs --expose-gc scripts/embedded-run-liveness-leak.ts",
"lint": "node --import ./scripts/tsx.mjs scripts/run-lint.mts",
"lint:agent:ingress-owner": "node --import ./scripts/tsx.mjs scripts/check-ingress-agent-owner-context.mts",
"lint:all": "node scripts/run-oxlint.mjs",
"lint:apps": "pnpm lint:swift",
"lint:auth:no-pairing-store-group": "node --import ./scripts/tsx.mjs scripts/check-no-pairing-store-group-auth.mts",
"lint:auth:pairing-account-scope": "node --import ./scripts/tsx.mjs scripts/check-pairing-account-scope.mts",
"lint:core": "node --import ./scripts/tsx.mjs scripts/run-oxlint-shards.mts --only=core",
"lint:docker-e2e": "node --import ./scripts/tsx.mjs scripts/check-docker-e2e-boundaries.mts",
"lint:kysely": "node --import ./scripts/tsx.mjs scripts/check-kysely-guardrails.mts",
"lint:docs": "pnpm dlx --config.resolution-mode=highest markdownlint-cli2 --config config/markdownlint-cli2.jsonc",
"lint:docs:fix": "pnpm dlx --config.resolution-mode=highest markdownlint-cli2 --config config/markdownlint-cli2.jsonc --fix",
"lint:templates": "pnpm dlx --config.resolution-mode=highest markdownlint-cli2 --config config/markdownlint-templates.jsonc",
"lint:templates:fix": "pnpm dlx --config.resolution-mode=highest markdownlint-cli2 --config config/markdownlint-templates.jsonc --fix",
"lint:extensions:no-deprecated-channel-access": "node --import ./scripts/tsx.mjs scripts/check-no-deprecated-channel-access.ts",
"lint:extensions:telegram-grammy-types": "node --import ./scripts/tsx.mjs scripts/check-telegram-grammy-types-imports.mts",
"lint:extensions": "node scripts/run-oxlint.mjs --tsconfig extensions/tsconfig.json extensions",
"lint:extensions:no-guarded-wildcard-reexports": "node --import ./scripts/tsx.mjs scripts/check-extension-wildcard-reexports.mts",
"lint:extensions:no-normalization-core-bypass": "node --import ./scripts/tsx.mjs scripts/check-extension-plugin-sdk-boundary.mts --mode=normalization-core-bypass",
"lint:extensions:no-plugin-sdk-wildcard-reexports": "node --import ./scripts/tsx.mjs scripts/check-plugin-sdk-wildcard-reexports.mts",
"lint:extensions:no-relative-outside-package": "node --import ./scripts/tsx.mjs scripts/check-extension-plugin-sdk-boundary.mts --mode=relative-outside-package",
"lint:extensions:no-src-outside-plugin-sdk": "node --import ./scripts/tsx.mjs scripts/check-extension-plugin-sdk-boundary.mts --mode=src-outside-plugin-sdk",
"lint:fix": "node scripts/run-oxlint.mjs --fix && pnpm format",
"lint:plugins:no-extension-imports": "node --import ./scripts/tsx.mjs scripts/check-plugin-extension-import-boundary.mts",
"lint:plugins:no-extension-src-imports": "node --import ./scripts/tsx.mjs scripts/check-no-extension-src-imports.ts",
"lint:plugins:no-extension-test-core-imports": "node --import ./scripts/tsx.mjs scripts/check-no-extension-test-core-imports.ts",
"lint:plugins:no-monolithic-plugin-sdk-entry-imports": "node --import ./scripts/tsx.mjs scripts/check-no-monolithic-plugin-sdk-entry-imports.ts",
"lint:plugins:no-register-http-handler": "node scripts/run-oxlint.mjs --openclaw-focused-config --config config/oxlint/boundary-guards.json src extensions",
"lint:plugins:plugin-sdk-subpaths-exported": "node --import ./scripts/tsx.mjs scripts/check-plugin-sdk-subpath-exports.mts",
"lint:no-chained-type-assertions": "node scripts/run-oxlint.mjs --openclaw-focused-config --config config/oxlint/boundary-guards.json src extensions packages ui/src",
"lint:no-widen-then-assert": "node scripts/run-oxlint.mjs --openclaw-focused-config --config config/oxlint/boundary-guards.json src extensions packages ui/src",
"lint:scripts": "pnpm lint:docker-e2e && pnpm lint:tmp:no-raw-http2-imports && node scripts/run-oxlint.mjs --tsconfig config/tsconfig/oxlint.scripts.json scripts",
"lint:swift": "./scripts/lint-swift.sh",
"lint:tmp:channel-agnostic-boundaries": "node --import ./scripts/tsx.mjs scripts/check-channel-agnostic-boundaries.mts",
"lint:tmp:dynamic-import-warts": "node --import ./scripts/tsx.mjs scripts/check-dynamic-import-warts.mts",
"lint:tmp:export-name-collisions": "node --import ./scripts/tsx.mjs scripts/check-export-name-collisions.mts",
"lint:tmp:no-random-messaging": "node --import ./scripts/tsx.mjs scripts/check-no-random-messaging-tmp.mts",
"lint:tmp:no-raw-channel-fetch": "node --import ./scripts/tsx.mjs scripts/check-no-raw-channel-fetch.mts",
"lint:tmp:no-raw-http2-imports": "node --import ./scripts/tsx.mjs scripts/check-no-raw-http2-imports.mts",
"lint:tmp:session-accessor-boundary": "node --import ./scripts/tsx.mjs scripts/check-session-accessor-boundary.mts",
"lint:tmp:session-accessor-boundary:gen": "node --import ./scripts/tsx.mjs scripts/check-session-accessor-boundary.mts --update-debt-baseline",
"lint:tmp:session-transcript-reader-boundary": "node --import ./scripts/tsx.mjs scripts/check-session-transcript-reader-boundary.mts",
"lint:tmp:sqlite-transaction-boundary": "node --import ./scripts/tsx.mjs scripts/check-sqlite-transaction-boundary.mts",
"lint:tmp:tsgo-core-boundary": "node --import ./scripts/tsx.mjs scripts/check-tsgo-core-boundary.mts",
"lint:ui:i18n": "pnpm ui:i18n:verify",
"lint:ui:lit": "lit-analyzer \"ui/src/**/*.ts\" --quiet",
"lint:ui:no-raw-window-open": "node scripts/run-oxlint.mjs --openclaw-focused-config --config config/oxlint/boundary-guards.json ui/src",
"lint:ui:styles": "stylelint --config config/stylelint.config.mjs \"ui/src/**/*.css\" \"ui/src/**/*.ts\" \"ui/public/themes/*.css\"",
"lint:web-fetch-provider-boundaries": "node --import ./scripts/tsx.mjs scripts/check-web-fetch-provider-boundaries.mts",
"lint:webhook:no-low-level-body-read": "node --import ./scripts/tsx.mjs scripts/check-webhook-auth-body-order.mts",
"mac:open": "open dist/OpenClaw.app",
"mac:package": "/bin/bash scripts/package-mac-app.sh",
"mac:restart": "/bin/bash scripts/restart-mac.sh",
"mobile:release:notes": "node --import ./scripts/tsx.mjs scripts/mobile-release-notes.ts",
"mobile:release:preflight": "node --import ./scripts/tsx.mjs scripts/mobile-release-ref.ts preflight",
"mobile:release:record": "node --import ./scripts/tsx.mjs scripts/mobile-release-ref.ts record",
"mobile:release:resolve": "node --import ./scripts/tsx.mjs scripts/mobile-release-ref.ts resolve",
"openclaw": "node scripts/run-node.mjs",
"openclaw:rpc": "node scripts/run-node.mjs agent --mode rpc --json",
"perf:redaction": "node --import ./scripts/tsx.mjs scripts/bench-redaction-prefilters.ts",
"perf:web-fetch": "node --import ./scripts/tsx.mjs scripts/bench-web-fetch.ts",
"perf:write-diff": "node --import ./scripts/tsx.mjs scripts/bench-write-diff.ts",
"perf:kova:summary": "node --import ./scripts/tsx.mjs scripts/kova-ci-summary.mts",
"perf:source:summary": "node --import ./scripts/tsx.mjs scripts/openclaw-performance-source-summary.mts",
"plugin-sdk:api:diff": "node --max-old-space-size=8192 --import ./scripts/tsx.mjs scripts/plugin-sdk-api-diff.mts",
"plugin-sdk:check-exports": "node --import ./scripts/tsx.mjs scripts/sync-plugin-sdk-exports.mts --check",
"plugin-sdk:surface": "node --max-old-space-size=8192 --import ./scripts/tsx.mjs scripts/plugin-sdk-surface-report.mts",
"plugin-sdk:surface:check": "node --max-old-space-size=8192 --import ./scripts/tsx.mjs scripts/plugin-sdk-surface-report.mts --check",
"plugin-sdk:sync-exports": "node --import ./scripts/tsx.mjs scripts/sync-plugin-sdk-exports.mts",
"plugin-sdk:usage": "node --max-old-space-size=8192 --import ./scripts/tsx.mjs scripts/analyze-plugin-sdk-usage.ts",
"policy:config-coverage": "node --import ./scripts/tsx.mjs scripts/check-policy-config-coverage.ts",
"plugins:boundary-report": "node --import ./scripts/tsx.mjs scripts/plugin-boundary-report.ts",
"plugins:boundary-report:ci": "node --import ./scripts/tsx.mjs scripts/plugin-boundary-report.ts --summary --fail-on-eligible-compat",
"plugins:boundary-report:json": "node --import ./scripts/tsx.mjs scripts/plugin-boundary-report.ts --json",
"plugins:boundary-report:summary": "node --import ./scripts/tsx.mjs scripts/plugin-boundary-report.ts --summary",
"plugins:assets:build": "node --import ./scripts/tsx.mjs scripts/bundled-plugin-assets.mts --phase build",
"plugins:assets:check": "node --import ./scripts/tsx.mjs scripts/bundled-plugin-assets.mts --phase build --check",
"plugins:assets:copy": "node --import ./scripts/tsx.mjs scripts/bundled-plugin-assets.mts --phase copy",
"plugins:inventory:check": "node --import ./scripts/tsx.mjs scripts/generate-plugin-inventory-doc.mts --check",
"plugins:inventory:gen": "node --import ./scripts/tsx.mjs scripts/generate-plugin-inventory-doc.mts --write",
"plugins:inventory:json": "node scripts/generate-plugin-inventory-doc.mts --json",
"plugins:sync": "node --import ./scripts/tsx.mjs scripts/sync-plugin-versions.ts",
"plugins:sync:check": "node --import ./scripts/tsx.mjs scripts/sync-plugin-versions.ts --check",
"postinstall": "node scripts/postinstall-bundled-plugins.mjs",
"postpack": "node scripts/openclaw-postpack.mjs",
"pnpm:devPreinstall": "node scripts/check-install-dependency-ownership.mjs",
"preinstall": "node scripts/preinstall-package-manager-warning.mjs",
"prepack": "node --import ./scripts/tsx.mjs scripts/openclaw-prepack.ts",
"prepare": "node scripts/prepare-git-hooks.mjs",
"prepush:ci": "bash scripts/prepush-ci.sh",
"probe:anthropic:prompt": "node --import ./scripts/tsx.mjs scripts/anthropic-prompt-probe.ts",
"prompt:snapshots:check": "node --import ./scripts/tsx.mjs scripts/generate-prompt-snapshots.ts --check",
"prompt:snapshots:gen": "node --import ./scripts/tsx.mjs scripts/generate-prompt-snapshots.ts --write",
"prompt:snapshots:sync-codex-model": "node --import ./scripts/tsx.mjs scripts/sync-codex-model-prompt-fixture.ts",
"protocol:check": "pnpm protocol-registry:check && pnpm protocol:gen && pnpm protocol:check:swift && pnpm protocol:gen:kotlin && node --import ./scripts/tsx.mjs scripts/check-protocol-since.mts && git diff --exit-code -- apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift apps/android/app/src/main/java/ai/openclaw/app/gateway/GatewayProtocol.kt apps/android/app/src/main/java/ai/openclaw/app/protocol/OpenClawProtocolConstants.kt",
"protocol:check:kotlin": "pnpm protocol:gen:kotlin && git diff --exit-code -- apps/android/app/src/main/java/ai/openclaw/app/gateway/GatewayProtocol.kt apps/android/app/src/main/java/ai/openclaw/app/protocol/OpenClawProtocolConstants.kt",
"protocol:check:swift": "node --import ./scripts/tsx.mjs scripts/protocol-gen-swift.ts --check",
"protocol:gen": "node --import ./scripts/tsx.mjs scripts/protocol-gen.ts",
"protocol:gen:kotlin": "node --import ./scripts/tsx.mjs scripts/protocol-gen-kotlin.ts",
"protocol:gen:swift": "node --import ./scripts/tsx.mjs scripts/protocol-gen-swift.ts",
"protocol-registry:check": "node --import ./scripts/tsx.mjs scripts/check-protocol-registry.mts",
"proxy:coverage": "node scripts/run-node.mjs proxy coverage",
"proxy:gateway": "node scripts/run-node.mjs proxy run -- node scripts/run-node.mjs gateway",
"proxy:install-ca": "node --import ./scripts/tsx.mjs scripts/proxy-install-ca.mts",
"proxy:run": "node scripts/run-node.mjs proxy run",
"proxy:start": "node scripts/run-node.mjs proxy start",
"qa:e2e": "node --import ./scripts/tsx.mjs scripts/qa-e2e.ts",
"qa:lab:build": "node scripts/run-node-package-bin.mts vite build --config extensions/qa-lab/web/vite.config.ts",
"qa:lab:ui": "pnpm openclaw qa ui",
"qa:lab:up": "node --import ./scripts/tsx.mjs scripts/qa-lab-up.ts",
"qa:lab:up:fast": "node --import ./scripts/tsx.mjs scripts/qa-lab-up.ts --use-prebuilt-image --bind-ui-dist --skip-ui-build",
"qa:lab:watch": "node scripts/run-node-package-bin.mts vite build --watch --config extensions/qa-lab/web/vite.config.ts",
"qa:observability:collector-smoke": "pnpm qa:otel:collector-smoke && pnpm qa:prometheus:smoke",
"qa:observability:smoke": "pnpm qa:otel:smoke && pnpm qa:prometheus:smoke",
"qa:otel:collector-smoke": "node --import ./scripts/tsx.mjs test/e2e/qa-lab/runtime/qa-otel-smoke-runtime.ts --collector docker",
"qa:otel:smoke": "node --import ./scripts/tsx.mjs test/e2e/qa-lab/runtime/qa-otel-smoke-runtime.ts",
"qa:code-mode-models": "node --import ./scripts/tsx.mjs scripts/code-mode-model-matrix.ts",
"qa:prometheus:smoke": "node scripts/run-node.mjs qa suite --provider-mode mock-openai --scenario docker-prometheus-smoke --concurrency 1 --fast",
"release-metadata:check": "node --import ./scripts/tsx.mjs scripts/check-release-metadata-only.mts",
"release:beta": "node --import ./scripts/tsx.mjs scripts/release-candidate-checklist.mts",
"release:beta-smoke": "node --import ./scripts/tsx.mjs scripts/release-beta-smoke.ts",
"release:candidate": "node --import ./scripts/tsx.mjs scripts/release-candidate-checklist.mts",
"release:check": "pnpm build:package && pnpm release:generated:check && node --import ./scripts/tsx.mjs scripts/release-check.ts",
"release:fast-pretag-check": "bash scripts/release-fast-pretag-check.sh",
"release:generated:check": "node scripts/release-preflight.mjs --check",
"release:openclaw:npm:check": "node --import ./scripts/tsx.mjs scripts/openclaw-npm-release-check.ts",
"release:openclaw:npm:verify-published": "node --import ./scripts/tsx.mjs scripts/openclaw-npm-postpublish-verify.ts",
"release:prepare": "node --import ./scripts/tsx.mjs scripts/release-prepare.ts",
"release:plugins:clawhub:check": "node --import ./scripts/tsx.mjs scripts/plugin-clawhub-release-check.ts",
"release:plugins:clawhub:plan": "node --import ./scripts/tsx.mjs scripts/plugin-clawhub-release-plan.ts",
"release:plugins:npm:check": "node --import ./scripts/tsx.mjs scripts/plugin-npm-release-check.ts",
"release:plugins:npm:plan": "node --import ./scripts/tsx.mjs scripts/plugin-npm-release-plan.ts",
"release:verify-beta": "node --import ./scripts/tsx.mjs scripts/release-verify-beta.ts",
"release:prep": "node scripts/release-preflight.mjs --fix",
"release:prep:version": "node scripts/release-preflight.mjs --fix --scope version",
"release:publish-preflight": "node --import ./scripts/tsx.mjs scripts/release-publish-preflight.mts",
"release:stable": "node --import ./scripts/tsx.mjs scripts/release-stable.mts",
"release:version": "node --import ./scripts/tsx.mjs scripts/release-version.ts",
"runtime-sidecars:check": "node --import ./scripts/tsx.mjs scripts/generate-runtime-sidecar-paths-baseline.ts --check",
"runtime-sidecars:gen": "node --import ./scripts/tsx.mjs scripts/generate-runtime-sidecar-paths-baseline.ts --write",
"sqlite:sessions-schema:check": "node --import ./scripts/tsx.mjs scripts/generate-sqlite-session-schema-baseline.ts --check",
"sqlite:sessions-schema:gen": "node --import ./scripts/tsx.mjs scripts/generate-sqlite-session-schema-baseline.ts --write",
"start": "node openclaw.mjs",
"test": "node --import ./scripts/tsx.mjs scripts/test-projects.mts",
"test:all": "pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all",
"test:auth:compat": "node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts && node scripts/run-vitest.mjs run packages/gateway-protocol/src/connect-error-details.test.ts",
"test:build:singleton": "node --import ./scripts/tsx.mjs scripts/test-built-plugin-singleton.mts",
"test:build:status-message-runtime": "node --import ./scripts/tsx.mjs scripts/test-built-status-message-runtime.mts",
"test:bundled": "node scripts/run-vitest.mjs run --config test/vitest/vitest.bundled.config.ts",
"test:changed": "node --import ./scripts/tsx.mjs scripts/test-projects.mts --changed origin/main",
"test:changed:max": "node --import ./scripts/tsx.mjs scripts/test-projects-max.mts --changed origin/main",
"test:channels": "node scripts/run-vitest.mjs run --config test/vitest/vitest.channels.config.ts",
"test:contracts": "pnpm test:contracts:channels && pnpm test:contracts:plugins",
"test:contracts:channels": "node --import ./scripts/tsx.mjs scripts/test-projects.mts --maxWorkers=1 test/vitest/vitest.contracts-channel-surface.config.ts test/vitest/vitest.contracts-channel-config.config.ts test/vitest/vitest.contracts-channel-registry.config.ts test/vitest/vitest.contracts-channel-session.config.ts",
"test:contracts:plugins": "node scripts/run-vitest.mjs run --config test/vitest/vitest.contracts-plugin.config.ts --maxWorkers=1",
"test:coverage": "node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts --coverage",
"test:coverage:changed": "node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts --coverage --changed origin/main",
"test:docker:agent-bundle-mcp-tools": "bash scripts/e2e/agent-bundle-mcp-tools-docker.sh",
"test:docker:agents-delete-shared-workspace": "bash scripts/e2e/agents-delete-shared-workspace-docker.sh",
"test:docker:all": "node scripts/test-docker-all.mjs",
"test:docker:browser-cdp-snapshot": "bash scripts/e2e/browser-cdp-snapshot-docker.sh",
"test:docker:sandbox-browser-sidecar": "bash scripts/e2e/sandbox-browser-sidecar-docker.sh",
"test:docker:bundled-plugin-install-uninstall": "bash scripts/e2e/bundled-plugin-install-uninstall-docker.sh",
"test:docker:cleanup": "bash scripts/test-cleanup-docker.sh",
"test:docker:config-reload": "bash scripts/e2e/config-reload-source-docker.sh",
"test:docker:system-agent-first-run": "bash scripts/e2e/system-agent-first-run-docker.sh",
"test:docker:system-agent-rescue": "bash scripts/e2e/system-agent-rescue-docker.sh",
"test:docker:cron-cli": "bash scripts/e2e/cron-cli-docker.sh",
"test:docker:cron-mcp-cleanup": "bash scripts/e2e/cron-mcp-cleanup-docker.sh",
"test:docker:codex-media-path": "bash scripts/e2e/codex-media-path-docker.sh",
"test:docker:doctor-switch": "bash scripts/e2e/doctor-install-switch-docker.sh",
"test:docker:compose-setup": "bash scripts/e2e/compose-setup.sh",
"test:docker:container-image-upgrade": "bash scripts/e2e/container-image-upgrade-docker.sh",
"test:docker:fleet-cache": "bash scripts/e2e/fleet-cache-docker.sh",
"test:docker:e2e-build": "bash scripts/e2e/build-image.sh",
"test:docker:gateway-network": "bash scripts/e2e/gateway-network-docker.sh",
"test:docker:kitchen-sink-plugin": "bash scripts/e2e/kitchen-sink-plugin-docker.sh",
"test:docker:kitchen-sink-rpc": "bash scripts/e2e/kitchen-sink-rpc-docker.sh",
"test:docker:live-acp-bind": "bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-acp-bind:claude": "OPENCLAW_LIVE_ACP_BIND_AGENT=claude bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-acp-bind:codex": "OPENCLAW_LIVE_ACP_BIND_AGENT=codex bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-acp-bind:droid": "OPENCLAW_LIVE_ACP_BIND_AGENT=droid OPENCLAW_LIVE_ACP_BIND_REQUIRE_TRANSCRIPT=1 bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-acp-bind:gemini": "OPENCLAW_LIVE_ACP_BIND_AGENT=gemini bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-acp-bind:opencode": "OPENCLAW_LIVE_ACP_BIND_AGENT=opencode OPENCLAW_LIVE_ACP_BIND_REQUIRE_TRANSCRIPT=1 bash scripts/test-live-acp-bind-docker.sh",
"test:docker:live-build": "bash scripts/test-live-build-docker.sh",
"test:docker:live-cli-backend": "bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:claude": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:claude:cache": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 OPENCLAW_LIVE_CLI_BACKEND_AUTH=api-key OPENCLAW_LIVE_CLI_BACKEND_CACHE_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-anthropic-cache": "bash scripts/e2e/anthropic-cache-live-docker.sh",
"test:docker:live-cli-backend:claude-subscription": "OPENCLAW_LIVE_CLI_BACKEND_AUTH=subscription OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 OPENCLAW_LIVE_CLI_BACKEND_DISABLE_MCP_CONFIG=1 OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=0 OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1 OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=0 OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=0 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:claude:mcp": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:claude:resume": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=claude-cli/claude-sonnet-4-6 OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:gemini": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=google-gemini-cli/gemini-3-flash-preview bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:gemini:mcp": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=google-gemini-cli/gemini-3-flash-preview OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-cli-backend:gemini:resume": "OPENCLAW_LIVE_CLI_BACKEND_MODEL=google-gemini-cli/gemini-3-flash-preview OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1 bash scripts/test-live-cli-backend-docker.sh",
"test:docker:live-codex-bind": "OPENCLAW_LIVE_CODEX_BIND=1 OPENCLAW_LIVE_CODEX_TEST_FILES=src/gateway/gateway-codex-bind.live.test.ts bash scripts/test-live-codex-harness-docker.sh",
"test:docker:live-codex-harness": "bash scripts/test-live-codex-harness-docker.sh",
"test:docker:live-codex-media-path": "OPENCLAW_LIVE_CODEX_HARNESS_AUTH=api-key OPENCLAW_LIVE_CODEX_HARNESS_CHAT_IMAGE_PROBE=1 OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=0 OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=0 OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_PROBE=0 OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=0 bash scripts/test-live-codex-harness-docker.sh",
"test:docker:live-codex-npm-plugin": "bash scripts/e2e/codex-npm-plugin-live-docker.sh",
"test:docker:live-plugin-tool": "bash scripts/e2e/live-plugin-tool-docker.sh",
"test:docker:live-subagent-announce": "bash scripts/test-live-subagent-announce-docker.sh",
"test:docker:live-gateway": "bash scripts/test-live-gateway-models-docker.sh",
"test:docker:live-gateway:claude": "OPENCLAW_LIVE_GATEWAY_PROVIDERS=claude-cli OPENCLAW_LIVE_GATEWAY_MODELS=claude-cli/claude-sonnet-4-6 bash scripts/test-live-gateway-models-docker.sh",
"test:docker:live-gateway:gemini": "OPENCLAW_LIVE_GATEWAY_PROVIDERS=google-gemini-cli OPENCLAW_LIVE_GATEWAY_MODELS=google-gemini-cli/gemini-3.1-pro-preview bash scripts/test-live-gateway-models-docker.sh",
"test:docker:live-mcp-code-mode-gateway": "bash scripts/e2e/mcp-code-mode-gateway-live-docker.sh",
"test:docker:live-models": "bash scripts/test-live-models-docker.sh",
"test:docker:live-models:claude": "OPENCLAW_LIVE_PROVIDERS=claude-cli OPENCLAW_LIVE_MODELS=claude-cli/claude-sonnet-4-6 bash scripts/test-live-models-docker.sh",
"test:docker:live-models:gemini": "OPENCLAW_LIVE_PROVIDERS=google-gemini-cli OPENCLAW_LIVE_MODELS=google-gemini-cli/gemini-3.1-pro-preview bash scripts/test-live-models-docker.sh",
"test:docker:live:all": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_DOCKER_ALL_LIVE_MODE=only -- node scripts/test-docker-all.mjs",
"test:docker:local:all": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_DOCKER_ALL_LIVE_MODE=skip -- node scripts/test-docker-all.mjs",
"test:docker:cli-installer-distribution": "bash scripts/e2e/cli-installer-distribution-docker.sh",
"test:docker:mcp-channels": "bash scripts/e2e/mcp-channels-docker.sh",
"test:docker:mcp-code-mode-gateway": "bash scripts/e2e/mcp-code-mode-gateway-docker.sh",
"test:docker:multi-node-update": "bash scripts/e2e/multi-node-update-docker.sh",
"test:docker:codex-on-demand": "bash scripts/e2e/codex-on-demand-docker.sh",
"test:docker:npm-onboard-channel-agent": "bash scripts/e2e/npm-onboard-channel-agent-docker.sh",
"test:docker:npm-onboard-discord-channel-agent": "OPENCLAW_NPM_ONBOARD_CHANNEL=discord bash scripts/e2e/npm-onboard-channel-agent-docker.sh",
"test:docker:npm-onboard-slack-channel-agent": "OPENCLAW_NPM_ONBOARD_CHANNEL=slack bash scripts/e2e/npm-onboard-channel-agent-docker.sh",
"test:docker:npm-telegram-live": "bash scripts/e2e/npm-telegram-live-docker.sh",
"test:docker:onboard": "bash scripts/e2e/onboard-docker.sh",
"test:docker:release-user-journey": "bash scripts/e2e/release-user-journey-docker.sh",
"test:docker:release-typed-onboarding": "bash scripts/e2e/release-typed-onboarding-docker.sh",
"test:docker:release-media-memory": "bash scripts/e2e/release-media-memory-docker.sh",
"test:docker:release-upgrade-user-journey": "bash scripts/e2e/release-upgrade-user-journey-docker.sh",
"test:docker:release-plugin-marketplace": "bash scripts/e2e/release-plugin-marketplace-docker.sh",
"test:docker:openai-chat-tools": "bash scripts/e2e/openai-chat-tools-docker.sh",
"test:docker:openai-image-auth": "bash scripts/e2e/openai-image-auth-docker.sh",
"test:docker:openai-web-search-minimal": "bash scripts/e2e/openai-web-search-minimal-docker.sh",
"test:docker:openwebui": "bash scripts/e2e/openwebui-docker.sh",
"test:docker:package-install": "bash scripts/e2e/docker-package-install.sh",
"test:docker:plugin-binding-command-escape": "bash scripts/e2e/plugin-binding-command-escape-docker.sh",
"test:docker:plugin-lifecycle-matrix": "bash scripts/e2e/plugin-lifecycle-matrix-docker.sh",
"test:docker:plugin-update": "bash scripts/e2e/plugin-update-unchanged-docker.sh",
"test:docker:plugins": "bash scripts/e2e/plugins-docker.sh",
"test:docker:published-upgrade-survivor": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_DOCKER_ALL_LANES=published-upgrade-survivor -- node scripts/test-docker-all.mjs",
"test:docker:qr": "bash scripts/e2e/qr-import-docker.sh",
"test:docker:rerun": "node --import ./scripts/tsx.mjs scripts/docker-e2e-rerun.mts",
"test:docker:root-managed-vps-upgrade": "env OPENCLAW_UPGRADE_SURVIVOR_PUBLISHED_BASELINE=1 OPENCLAW_UPGRADE_SURVIVOR_ROOT_MANAGED_VPS=1 OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC=${OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC:-openclaw@latest} OPENCLAW_UPGRADE_SURVIVOR_DOCKER_RUN_TIMEOUT=${OPENCLAW_UPGRADE_SURVIVOR_DOCKER_RUN_TIMEOUT:-1500s} bash scripts/e2e/upgrade-survivor-docker.sh",
"test:docker:selected-plugins": "bash scripts/e2e/docker-selected-plugins.sh",
"test:docker:session-runtime-context": "bash scripts/e2e/session-runtime-context-docker.sh",
"test:docker:skill-install": "bash scripts/e2e/skill-install-docker.sh",
"test:docker:timings": "node --import ./scripts/tsx.mjs scripts/docker-e2e-timings.mts",
"test:docker:update-channel-switch": "bash scripts/e2e/update-channel-switch-docker.sh",
"test:docker:update-corrupt-plugin": "bash scripts/e2e/update-corrupt-plugin-docker.sh",
"test:docker:update-first-hop-compat": "bash scripts/e2e/update-first-hop-compat-docker.sh",
"test:docker:update-migration": "env OPENCLAW_UPGRADE_SURVIVOR_PUBLISHED_BASELINE=1 OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC=${OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC:-openclaw@latest} OPENCLAW_UPGRADE_SURVIVOR_SCENARIO=${OPENCLAW_UPGRADE_SURVIVOR_SCENARIO:-plugin-deps-cleanup} bash scripts/e2e/upgrade-survivor-docker.sh",
"test:docker:update-restart-auth": "env OPENCLAW_UPGRADE_SURVIVOR_UPDATE_RESTART_MODE=auto-auth OPENCLAW_UPGRADE_SURVIVOR_DOCKER_RUN_TIMEOUT=${OPENCLAW_UPGRADE_SURVIVOR_DOCKER_RUN_TIMEOUT:-1500s} bash scripts/e2e/upgrade-survivor-docker.sh",
"test:docker:upgrade-survivor": "bash scripts/e2e/upgrade-survivor-docker.sh",
"test:docker:dreaming-cron-doctor": "env OPENCLAW_UPGRADE_SURVIVOR_PUBLISHED_BASELINE=1 OPENCLAW_UPGRADE_SURVIVOR_BASELINE_SPEC=openclaw@2026.9.6 OPENCLAW_UPGRADE_SURVIVOR_CANDIDATE=current OPENCLAW_UPGRADE_SURVIVOR_SCENARIO=dreaming-cron-doctor OPENCLAW_UPGRADE_SURVIVOR_UPDATE_RESTART_MODE=manual OPENCLAW_UPGRADE_SURVIVOR_ROOT_MANAGED_VPS=0 OPENCLAW_UPGRADE_SURVIVOR_LIVE_MODELS= OPENCLAW_UPGRADE_SURVIVOR_LIVE_OPENAI=0 bash scripts/e2e/upgrade-survivor-docker.sh",
"test:env-mutations:report": "node --import ./scripts/tsx.mjs scripts/test-env-mutation-report.ts",
"test:skip-inventory:report": "node --import ./scripts/tsx.mjs scripts/test-skip-inventory.ts",
"test:type-suppression-inventory:report": "node --import ./scripts/tsx.mjs scripts/type-suppression-inventory.ts",
"test:e2e": "pnpm test:e2e:gateway && pnpm test:e2e:agent-plugin-gateway && pnpm test:ui:e2e",
"test:e2e:agent-plugin-gateway": "node --import ./scripts/tsx.mjs scripts/agent-plugin-gateway-e2e.ts",
"test:e2e:browser-extension": "node --import ./scripts/tsx.mjs scripts/build-all.mts qaRuntime && node --import ./scripts/tsx.mjs scripts/run-with-env.mts PLAYWRIGHT_BROWSERS_PATH=.artifacts/playwright-browsers -- node --import ./scripts/tsx.mjs scripts/ensure-playwright-chromium.mts --require-playwright-chromium && node --import ./scripts/tsx.mjs scripts/run-with-env.mts PLAYWRIGHT_BROWSERS_PATH=.artifacts/playwright-browsers OPENCLAW_BROWSER_EXTENSION_E2E=1 OPENCLAW_E2E_WORKERS=1 -- node scripts/run-vitest.mjs extensions/browser/chrome-extension/bootstrap.chromium.test.ts",
"test:e2e:browser-mcp": "node --import ./scripts/tsx.mjs scripts/ensure-playwright-chromium.mts --require-playwright-chromium && node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_BROWSER_MCP_E2E=1 OPENCLAW_BROWSER_WAIT_E2E=1 OPENCLAW_VITEST_MAX_WORKERS=1 -- node scripts/run-vitest.mjs extensions/browser/src/browser/chrome-mcp.chromium.test.ts extensions/browser/src/browser/chrome-mcp-labels.chromium.test.ts extensions/browser/src/browser/routes/agent.act.wait-visibility.chromium.test.ts test/scripts/check-openclaw-package-tarball.bundled-mcp.test.ts",
"test:e2e:gateway": "node scripts/run-vitest.mjs run --config test/vitest/vitest.e2e.config.ts",
"test:e2e:node-auto-update": "node scripts/e2e/lib/node-auto-update/scenario.mjs",
"test:e2e:openshell": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_E2E_OPENSHELL=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.e2e.config.ts extensions/openshell/src/backend.e2e.test.ts",
"test:extension": "node --import ./scripts/tsx.mjs scripts/test-extension.mts",
"test:extensions": "node --import ./scripts/tsx.mjs scripts/test-projects.mts extensions",
"test:extensions:batch": "node --import ./scripts/tsx.mjs scripts/test-extension-batch.mts",
"test:extensions:memory": "node --import ./scripts/tsx.mjs scripts/profile-extension-memory.mts",
"test:extensions:package-boundary": "node --import ./scripts/tsx.mjs scripts/check-extension-package-tsc-boundary.mts",
"test:extensions:package-boundary:canary": "node --import ./scripts/tsx.mjs scripts/check-extension-package-tsc-boundary.mts --mode=canary",
"test:extensions:package-boundary:compile": "node --import ./scripts/tsx.mjs scripts/check-extension-package-tsc-boundary.mts --mode=compile",
"test:fast": "node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts",
"test:force": "node --import ./scripts/tsx.mjs scripts/test-force.ts",
"test:freebsd:service-inspect": "node scripts/test-freebsd-service-inspect.mjs",
"test:gateway": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_GATEWAY_PROJECT_SHARDS=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway.config.ts",
"test:gateway:cpu-scenarios": "node --import ./scripts/tsx.mjs scripts/check-gateway-cpu-scenarios.mts",
"test:gateway:concurrency": "node scripts/bench-gateway-concurrency.ts",
"test:gateway:worker-commit": "node --import ./scripts/tsx.mjs scripts/bench-worker-transcript-commit.ts",
"test:gateway:memory-fd-repro": "node --import ./scripts/tsx.mjs scripts/check-memory-fd-repro.mts",
"test:gateway:watch-regression": "node --import ./scripts/tsx.mjs scripts/check-gateway-watch-regression.mts",
"test:install:e2e": "bash scripts/test-install-sh-e2e-docker.sh",
"test:install:e2e:anthropic": "OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh",
"test:install:e2e:openai": "OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh",
"test:install:smoke": "bash scripts/test-install-sh-docker.sh",
"test:live": "node --import ./scripts/tsx.mjs scripts/test-live.mts",
"test:live:cache": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 -- node --import ./scripts/tsx.mjs scripts/check-live-cache.ts",
"test:live:codex-harness": "node --import ./scripts/tsx.mjs scripts/test-live.mts --codex-harness -- src/gateway/gateway-codex-harness.live.test.ts",
"test:live:system-agent-rescue-channel": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_LIVE_SYSTEM_AGENT_RESCUE_CHANNEL=1 -- node --import ./scripts/tsx.mjs scripts/test-live.mts -- src/system-agent/rescue-channel.live.test.ts",
"test:live:gateway-profiles": "node --import ./scripts/tsx.mjs scripts/test-live.mts -- src/gateway/gateway-models.profiles.live.test.ts",
"test:live:media": "node --import ./scripts/tsx.mjs test/e2e/qa-lab/media/hosted-media-provider-live.ts",
"test:live:media:image": "node --import ./scripts/tsx.mjs test/e2e/qa-lab/media/hosted-media-provider-live.ts image",
"test:live:media:music": "node --import ./scripts/tsx.mjs test/e2e/qa-lab/media/hosted-media-provider-live.ts music",
"test:live:media:video": "node --import ./scripts/tsx.mjs test/e2e/qa-lab/media/hosted-media-provider-live.ts video",
"test:live:models-profiles": "node --import ./scripts/tsx.mjs scripts/test-live.mts -- src/agents/models.profiles.live.test.ts",
"test:macos:ci": "pnpm test:macos:ci:1 && pnpm test:macos:ci:2 && pnpm test:macos:ci:3",
"test:macos:ci:1": "node --import ./scripts/tsx.mjs scripts/test-projects.mts test/scripts/mac-elevation-host.test.ts",
"test:macos:ci:2": "node --import ./scripts/tsx.mjs scripts/test-projects.mts test/scripts/vitest-process-group.test.ts test/scripts/package-mac-app.test.ts test/scripts/stage-cloudflared-macos.test.ts test/scripts/restart-mac.test.ts test/scripts/mac-node-worker.test.ts test/scripts/package-mac-dist.test.ts test/scripts/codesign-mac-app.test.ts test/scripts/notarize-mac-artifact.test.ts test/scripts/mac-elevation-artifact.test.ts",
"test:macos:ci:3": "node --import ./scripts/tsx.mjs scripts/test-projects.mts test/scripts/ci-platform-checkout.test.ts test/scripts/macos-native-test-launch.test.ts src/daemon/launchd.test.ts src/daemon/runtime-paths.test.ts src/daemon/runtime-binary.test.ts src/gateway/worker-environments/workspace-rsync-path.test.ts src/infra/brew.test.ts src/infra/stable-node-path.test.ts src/process/supervisor/adapters/child.service-lifecycle.test.ts test/scripts/verify-mac-node-worker-fs.test.ts test/scripts/create-dmg.test.ts src/skills/runtime/refresh.test.ts src/skills/runtime/refresh.missing-root.integration.test.ts",
"test:max": "node --import ./scripts/tsx.mjs scripts/test-projects-max.mts",
"test:parallels:linux": "/bin/bash scripts/e2e/parallels-linux-smoke.sh",
"test:parallels:macos": "/bin/bash scripts/e2e/parallels-macos-smoke.sh",
"test:parallels:npm-update": "/bin/bash scripts/e2e/parallels-npm-update-smoke.sh",
"test:parallels:windows:prepare": "/bin/bash scripts/e2e/parallels-windows-prepare.sh",
"test:parallels:windows": "/bin/bash scripts/e2e/parallels-windows-smoke.sh",
"test:agents:concurrency": "node --import ./scripts/tsx.mjs scripts/bench-agent-concurrency.ts",
"test:perf:budget": "node --import ./scripts/tsx.mjs scripts/test-perf-budget.mts",
"test:perf:changed:bench": "node --import ./scripts/tsx.mjs scripts/bench-test-changed.mts",
"test:perf:groups": "node --import ./scripts/tsx.mjs scripts/test-group-report.mts",
"test:perf:groups:compare": "node --import ./scripts/tsx.mjs scripts/test-group-report.mts --compare",
"test:perf:hotspots": "node --import ./scripts/tsx.mjs scripts/test-hotspots.mts",
"test:perf:imports": "node --import ./scripts/tsx.mjs scripts/test-projects-imports.mts",
"test:perf:imports:changed": "node --import ./scripts/tsx.mjs scripts/test-projects-imports.mts --changed origin/main",
"test:perf:profile:main": "node --import ./scripts/tsx.mjs scripts/run-vitest-profile.mts main",
"test:perf:profile:runner": "node --import ./scripts/tsx.mjs scripts/run-vitest-profile.mts runner",
"test:sqlite:perf": "node --import ./scripts/tsx.mjs scripts/bench-sqlite-state.ts --profile default --output .artifacts/sqlite-perf/default.json",
"test:sqlite:perf:large": "node --import ./scripts/tsx.mjs scripts/bench-sqlite-state.ts --profile large --output .artifacts/sqlite-perf/large.json",
"test:sqlite:perf:smoke": "node --import ./scripts/tsx.mjs scripts/bench-sqlite-state.ts --profile smoke --output .artifacts/sqlite-perf/smoke.json",
"test:plugins:gateway-gauntlet": "node --import ./scripts/tsx.mjs scripts/check-plugin-gateway-gauntlet.mts",
"test:plugins:init-provider-scaffold": "node --import ./scripts/tsx.mjs scripts/validate-plugin-init-provider-scaffold.ts",
"test:plugins:kitchen-sink-live": "bash -lc 'if [ -x \"$HOME/.local/bin/openclaw-testbox-env\" ]; then exec \"$HOME/.local/bin/openclaw-testbox-env\" pnpm openclaw qa suite --provider-mode live-frontier --scenario kitchen-sink-live-openai; fi; exec pnpm openclaw qa suite --provider-mode live-frontier --scenario kitchen-sink-live-openai'",
"test:plugins:kitchen-sink-rpc": "node --import ./scripts/tsx.mjs scripts/e2e/kitchen-sink-rpc-walk.mts",
"test:plugins:kitchen-sink-rpc:bun": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_ENTRY=./openclaw.mjs -- bun scripts/e2e/kitchen-sink-rpc-walk.mts",
"test:sectriage": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_GATEWAY_PROJECT_SHARDS=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway.config.ts && node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts --exclude src/process/exec.test.ts",
"test:serial": "node --import ./scripts/tsx.mjs scripts/test-projects-serial.mts",
"test:stability:gateway": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_VITEST_MAX_WORKERS=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.gateway.config.ts src/gateway/gateway-stability.test.ts && node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_VITEST_MAX_WORKERS=1 -- node scripts/run-vitest.mjs run --config test/vitest/vitest.logging.config.ts src/logging/diagnostic-stability-bundle.test.ts && node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_VITEST_MAX_WORKERS=1 -- node scripts/run-vitest.mjs run src/infra/fatal-error-hooks.test.ts",
"test:cli-response:contract": "node --import ./scripts/tsx.mjs scripts/build-all.mts cliStartup && node --import ./scripts/tsx.mjs scripts/test-cli-startup-bench-budget.mts --preset response --runs 1 --warmup 0 --timeout-ms 10000 --skip-baseline",
"test:startup:bench": "node --import ./scripts/tsx.mjs scripts/bench-cli-startup.ts",
"test:startup:bench:check": "node --import ./scripts/tsx.mjs scripts/test-cli-startup-bench-budget.mts",
"test:startup:bench:save": "node --import ./scripts/tsx.mjs scripts/bench-cli-startup.ts --preset all --runs 5 --warmup 1 --output .artifacts/cli-startup-bench-all.json",
"test:startup:bench:smoke": "node --import ./scripts/tsx.mjs scripts/ensure-cli-startup-build.mts && node --import ./scripts/tsx.mjs scripts/bench-cli-startup.ts --preset real --case gatewayStatusJson --runs 1 --warmup 0 --output .artifacts/cli-startup-bench-smoke.json",
"test:startup:bench:update": "node --import ./scripts/tsx.mjs scripts/test-update-cli-startup-bench.mts",
"test:startup:gateway": "node --import ./scripts/tsx.mjs scripts/bench-gateway-startup.ts",
"test:restart:gateway": "node --import ./scripts/tsx.mjs scripts/bench-gateway-restart.ts",
"test:sessions:history:bench": "node --import ./scripts/tsx.mjs scripts/bench-session-history.ts",
"test:sessions:hydration-memory": "node --import ./scripts/tsx.mjs scripts/bench-session-manager-hydration-memory.ts",
"test:sessions:paths:bench": "node --import ./scripts/tsx.mjs scripts/bench-session-paths.ts",
"test:sessions:write-hold": "node --import ./scripts/tsx.mjs scripts/bench-session-manager-write-hold.ts",
"test:startup:memory": "node --import ./scripts/tsx.mjs scripts/ensure-cli-startup-build.mts && node scripts/check-cli-startup-memory.mjs",
"test:ui": "pnpm lint:ui:no-raw-window-open && node --import ./scripts/tsx.mjs scripts/ensure-playwright-chromium.mts && pnpm --dir ui test",
"test:ui:e2e": "node --import ./scripts/tsx.mjs scripts/ensure-playwright-chromium.mts && node scripts/run-vitest.mjs run --config test/vitest/vitest.ui-e2e.config.ts --configLoader runner",
"test:unit": "pnpm test:unit:fast && node scripts/run-vitest.mjs run --config test/vitest/vitest.unit.config.ts",
"test:unit:fast": "node scripts/run-vitest.mjs run --config test/vitest/vitest.unit-fast.config.ts",
"test:unit:fast:audit": "node --import ./scripts/tsx.mjs scripts/test-unit-fast-audit.mts",
"test:voicecall:closedloop": "node --import ./scripts/tsx.mjs scripts/test-voicecall-closedloop.mts",
"test:watch": "node --import ./scripts/tsx.mjs scripts/test-projects.mts --watch",
"test:windows:ci": "pnpm test:windows:ci:1 && pnpm test:windows:ci:2",
"test:windows:ci:1": "node --import ./scripts/tsx.mjs scripts/test-projects.mts extensions/acpx/src/runtime-argv.process.test.ts src/state/openclaw-state-ownership.test.ts src/snapshot/local-repository.windows.test.ts src/state/openclaw-database-paths.windows.test.ts src/infra/update-candidate-state.namespaced-paths.test.ts src/infra/update-candidate-state.budget.test.ts src/infra/update-candidate-state.cleanup.test.ts src/infra/update-candidate-state.online-backup.process.test.ts src/node-host/invoke-system-run-allowlist.test.ts src/node-host/invoke-agent-cli-claude.test.ts src/node-host/node-worker-transfer-client.test.ts packages/terminal-core/src/display-string.test.ts src/config/sessions/session-accessor.sqlite-archive.worker.test.ts src/cron/isolated-agent/session.preparation.storage-env.test.ts src/commands/doctor-gateway-auth-token.windows.test.ts src/commands/doctor-lint.state-isolation.test.ts src/flows/doctor-health-contributions.windows-cloud-state.test.ts src/infra/state-migrations.audit-logs.windows.test.ts src/infra/state-migrations.workspace-setup.windows.test.ts src/commands/backup-verify.test.ts src/commands/agents.commands.list.test.ts src/gateway/gateway-cron-process-identity.windows.test.ts src/node-host/node-worker-bundle-installer.test.ts test/scripts/check-openclaw-package-tarball.test.ts test/scripts/check-openclaw-package-tarball.bundled-mcp.test.ts test/scripts/direct-run-entrypoints.test.ts test/scripts/format-generated-module.test.ts test/scripts/openclaw-cross-os-installer.windows.test.ts test/scripts/openclaw-cross-os-release-workflow.test.ts test/scripts/pnpm-runner.test.ts extensions/canvas/scripts/pnpm-runner.test.ts test/scripts/run-with-env.test.ts test/scripts/ui.test.ts test/helpers/temp-dir.test.ts test/scripts/vitest-process-cache.test.ts test/scripts/vitest-process-group.test.ts test/scripts/vitest-worker-artifacts.test.ts src/agents/tools/media-tool-file-url.windows.test.ts extensions/memory-core/src/memory-extra-file-path.windows.test.ts src/daemon/schtasks.startup-fallback.test.ts src/daemon/schtasks.startup-launch.test.ts src/daemon/schtasks.settlement.test.ts src/daemon/schtasks-runtime-probe.windows.test.ts src/cli/update-cli/update-command-readiness.windows.test.ts src/infra/update-candidate-canary.cleanup.test.ts src/daemon/schtasks.env-case.real.test.ts test/e2e/qa-lab/runtime/package-openclaw-for-docker.e2e.test.ts extensions/lobster/src/lobster-runner.test.ts src/gateway/worker-environments/workspace-quiescence.windows.test.ts src/infra/git-exec.test.ts src/gateway/worker-environments/workspace-result-ref-mutation.test.ts extensions/memory-wiki/src/obsidian.discovery.test.ts src/infra/sqlite-private-directory.windows.test.ts src/skills/runtime/refresh.windows.test.ts src/skills/runtime/refresh-watch-path.test.ts src/skills/runtime/refresh.missing-root.integration.test.ts src/infra/sqlite-snapshot.test.ts src/infra/sqlite-snapshot-staging.cancellation.test.ts src/infra/sqlite-snapshot-retirement.test.ts src/infra/ports.test.ts src/infra/diagnostic-process-siblings.env.test.ts src/infra/windows-diagnostic-env.test.ts src/infra/windows-encoding.test.ts src/infra/windows-process-start.test.ts src/infra/windows-process-start.native.test.ts src/infra/advertised-lan-host.windows.test.ts src/infra/update-managed-service-handoff-database-publication.test.ts src/infra/update-managed-service-handoff-command.test.ts src/infra/update-managed-service-handoff-lifecycle.test.ts src/infra/executable-path.test.ts src/gateway/control-ui-asset-retention.publication.test.ts src/config/io.write-effects.windows.test.ts src/infra/fs-safe.test.ts src/infra/fs-safe-remove.test.ts src/infra/state-migrations.legacy-session-store.test.ts src/infra/windows-install-roots.test.ts src/infra/openclaw-cli-shim.windows.test.ts src/media/local-media-path.windows.test.ts src/media/web-media.file-url.windows.test.ts src/cli/completion-runtime.windows.test.ts src/cli/update-cli/update-command-migrated-windows.test.ts src/cli/daemon-cli/status.print.test.ts src/cli/mcp-cli.path-case.windows.test.ts src/config/io.snapshot.test.ts src/commands/doctor-config-preflight.state-migration.test.ts src/infra/windows-process-census.test.ts src/infra/windows-process-census.native.test.ts src/infra/openclaw-process-census.test.ts",
"test:windows:ci:2": "node --import ./scripts/tsx.mjs scripts/test-projects.mts src/shared/pid-alive.env.test.ts src/agents/cli-executable-identity.test.ts src/plugin-sdk/windows-spawn.test.ts src/infra/fs-safe-pinned-write-errno.test.ts src/plugin-sdk/fs-safe-compat.test.ts src/infra/ssh-client.windows.test.ts src/infra/exec-allowlist-pattern.test.ts src/infra/process-env.test.ts src/agents/sessions/windows-git-bash-path.test.ts test/scripts/npm-runner.test.ts test/scripts/ts-topology.test.ts test/scripts/vitest-worker-artifacts.transforms.test.ts test/scripts/ci-platform-checkout.test.ts test/scripts/install-ps1.test.ts test/scripts/windows-blacksmith-testbox.test.ts test/scripts/write-plugin-sdk-entry-dts.test.ts test/scripts/write-unified-entry-dts.test.ts test/scripts/tsdown-declaration-resolution.test.ts src/test-utils/openclaw-test-state.test.ts test/helpers/openclaw-test-instance.test.ts test/scripts/managed-child-process.windows.test.ts test/scripts/managed-windows-job.test.ts src/agents/mcp-stdio-transport.windows.test.ts test/scripts/worker-deploy-build-plugin.test.ts src/process/owned-stdio.real.test.ts src/process/owned-stdio.windows.test.ts test/scripts/managed-child-process.output.test.ts src/utils.test.ts src/process/exec.windows.test.ts src/process/exec.windows.integration.test.ts src/agents/sessions/exec.real.test.ts src/process/windows-command.test.ts src/process/terminal-pty.test.ts src/process/supervisor/supervisor.anchored-shell.real.test.ts src/tui/tui.resolve-codex-bin.test.ts src/media-understanding/attachments.file-url.windows.test.ts src/cli/runtime-cleanup-scope.windows.process.test.ts src/auto-reply/usage-bar/template.windows.test.ts src/auto-reply/reply.triggers.trigger-handling.stages-inbound-media-into-sandbox-workspace.test.ts src/agents/provider-local-service.env-case.test.ts src/agents/provider-local-service.shutdown.test.ts src/agents/provider-local-service.settlement.test.ts src/agents/bash-tools.exec.script-preflight.test.ts src/agents/agent-tools.read.windows.test.ts src/agents/agent-tools.read.host-operations.test.ts src/agents/apply-patch.test.ts src/agents/sandbox/fs-paths.test.ts src/agents/sessions/tools/render-utils.test.ts src/agents/sessions/tools/path-utils.test.ts extensions/msteams/src/media-helpers.test.ts extensions/msteams/src/messenger.test.ts extensions/mxc/test/mxc-backend.test.ts extensions/mxc/test/fs-bridge.test.ts extensions/mxc/test/path-comparison.test.ts extensions/mxc/test/sandbox-policy-loader.test.ts src/shared/runtime-import.test.ts src/shared/worker-bundle-archive.test.ts src/daemon/schtasks-state-probe.windows.test.ts src/daemon/service-audit-schtasks.windows.test.ts src/plugin-sdk/node-host.test.ts src/agents/worktrees/git.test.ts src/agents/worktrees/filesystem-refs.test.ts src/agents/worktrees/service.removal-recovery.windows.test.ts extensions/browser/src/browser/chrome.executable-probe.windows.test.ts src/process/supervisor/service-child-group-ownership.test.ts",
"test:windows:schtasks:integration": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts CI_WINDOWS_SCHTASKS_INTEGRATION=1 OPENCLAW_E2E_SKIP_BUILD=1 OPENCLAW_E2E_VERBOSE=1 OPENCLAW_VITEST_MAX_WORKERS=1 -- node scripts/run-vitest.mjs src/daemon/schtasks.integration.e2e.test.ts",
"tool-display:check": "node --import ./scripts/tsx.mjs scripts/tool-display.ts --check",
"tool-display:write": "node --import ./scripts/tsx.mjs scripts/tool-display.ts --write",
"ts-topology": "node --import ./scripts/tsx.mjs scripts/ts-topology.ts",
"tsgo": "pnpm tsgo:core",
"tsgo:all": "pnpm tsgo:core:all && pnpm tsgo:extensions:all && pnpm tsgo:scripts && pnpm tsgo:test:root",
"tsgo:core": "node scripts/run-tsgo.mjs -p tsconfig.core.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/core.tsbuildinfo",
"tsgo:core:all": "pnpm tsgo:core && pnpm tsgo:ui && pnpm tsgo:core:test",
"tsgo:core:test": "node scripts/run-tsgo-core-test-shards.mjs",
"tsgo:extensions": "node scripts/run-tsgo.mjs -p tsconfig.extensions.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/extensions.tsbuildinfo",
"tsgo:extensions:all": "node scripts/run-tsgo.mjs -b tsconfig.extensions.projects.json",
"tsgo:extensions:test": "node scripts/run-tsgo.mjs -p test/tsconfig/tsconfig.extensions.test.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/extensions-test.tsbuildinfo",
"tsgo:prod": "pnpm tsgo:core && pnpm tsgo:ui && pnpm tsgo:extensions",
"tsgo:profile": "node --import ./scripts/tsx.mjs scripts/profile-tsgo.mts",
"tsgo:scripts": "node scripts/run-tsgo.mjs -p tsconfig.scripts.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/scripts.tsbuildinfo",
"tsgo:test": "pnpm tsgo:core:test && pnpm tsgo:extensions:test && pnpm tsgo:test:root",
"tsgo:test:extensions": "pnpm tsgo:extensions:test",
"tsgo:test:packages": "node scripts/run-tsgo-core-test-shards.mjs packages",
"tsgo:test:root": "node scripts/run-tsgo-core-test-shards.mjs root",
"tsgo:test:src": "node scripts/run-tsgo-core-test-shards.mjs src",
"tsgo:test:ui": "node scripts/run-tsgo-core-test-shards.mjs ui",
"tsgo:ui": "node scripts/run-tsgo.mjs -p tsconfig.ui.json --incremental --tsBuildInfoFile .artifacts/tsgo-cache/ui.tsbuildinfo",
"tui": "node scripts/run-node.mjs tui",
"tui:dev": "node --import ./scripts/tsx.mjs scripts/run-with-env.mts OPENCLAW_PROFILE=dev -- node scripts/run-node.mjs --dev tui",
"tui:pty:test:watch": "node --import ./scripts/tsx.mjs scripts/dev/tui-pty-test-watch.ts",
"tui:pty:test:watch:all": "node --import ./scripts/tsx.mjs scripts/dev/tui-pty-test-watch.ts --mode all",
"tui:pty:test:watch:fake": "node --import ./scripts/tsx.mjs scripts/dev/tui-pty-test-watch.ts --mode fake",
"tui:pty:test:watch:local": "node --import ./scripts/tsx.mjs scripts/dev/tui-pty-test-watch.ts --mode local",
"tui:questions:proof": "node --import ./scripts/tsx.mjs scripts/dev/tui-questions-proof.ts",
"ui:boot-manifest:gen": "node --import ./scripts/tsx.mjs ui/scripts/control-ui-boot-manifest.mts",
"ui:build": "node scripts/ui.js build",
"ui:check-performance": "node --import ./scripts/tsx.mjs scripts/check-control-ui-performance.mts",
"ui:check-performance:base": "node --import ./scripts/tsx.mjs scripts/check-control-ui-performance-base.mts",
"ui:dev": "node scripts/ui.js dev",
"ui:i18n:baseline": "node --import ./scripts/tsx.mjs scripts/control-ui-i18n-verify.ts baseline",
"ui:i18n:check": "node --import ./scripts/tsx.mjs scripts/control-ui-i18n.ts check",
"ui:i18n:report": "node --import ./scripts/tsx.mjs scripts/control-ui-i18n-report.ts",
"ui:i18n:sync": "node --import ./scripts/tsx.mjs scripts/control-ui-i18n.ts sync --write",
"ui:i18n:verify": "node --import ./scripts/tsx.mjs scripts/control-ui-i18n-verify.ts verify",
"ui:proof:composer-mic-hover": "node --import ./scripts/tsx.mjs scripts/capture-composer-mic-hover-proof.mts",
"ui:proof:injected-turn-notice": "node --import ./scripts/tsx.mjs scripts/capture-injected-turn-notice-proof.mts",
"ui:proof:model-picker": "node --import ./scripts/tsx.mjs scripts/capture-model-picker-proof.mts",
"ui:proof:session-toolbar": "node --import ./scripts/tsx.mjs scripts/capture-session-toolbar-proof.mts",
"ui:proof:where-chip": "node --import ./scripts/tsx.mjs scripts/capture-where-chip-auto-proof.mts",
"ui:proof:workboard": "node --import ./scripts/tsx.mjs scripts/capture-workboard-ui-proof.mts",
"update:network-budget:check": "node scripts/generate-update-network-budget.mjs --check",
"update:network-budget:gen": "node scripts/generate-update-network-budget.mjs",
"native:i18n:baseline": "node --import ./scripts/tsx.mjs scripts/native-app-i18n.ts baseline --write",
"native:i18n:check": "node --import ./scripts/tsx.mjs scripts/native-app-i18n.ts check",
"native:i18n:sync": "node --import ./scripts/tsx.mjs scripts/native-app-i18n.ts sync --write",
"native-catalogs:gen": "node scripts/generate-native-session-catalogs.mjs",
"native-catalogs:check": "node scripts/generate-native-session-catalogs.mjs --check",
"native:i18n:verify": "node --import ./scripts/tsx.mjs scripts/native-app-i18n.ts verify",
"android:i18n:check": "node --import ./scripts/tsx.mjs scripts/android-app-i18n.ts check",
"apple:i18n:check": "node --import ./scripts/tsx.mjs scripts/apple-app-i18n.ts check",
"ui:install": "node scripts/ui.js install",
"update:compat:gen": "node scripts/update-compat-inventory.mts",
"update:compat:check": "node scripts/update-compat-inventory.mts --check",
"verify": "node --import ./scripts/tsx.mjs scripts/verify.mts"
},
"bundleDependencies": [
"@openclaw/proxyline",
"chrome-devtools-mcp",
"undici"
],
"dependencies": {
"@agentclientprotocol/sdk": "1.4.0",
"@anthropic-ai/sdk": "0.127.0",
"@babel/generator": "8.0.6",
"@babel/parser": "8.0.6",
"@babel/traverse": "8.0.6",
"@clack/core": "1.5.1",
"@clack/prompts": "1.8.1",
"@earendil-works/pi-tui": "0.86.1",
"@google/genai": "2.23.0",
"@grammyjs/transformer-throttler": "1.2.1",
"@homebridge/ciao": "1.3.12",
"@lydell/node-pty": "1.2.0-beta.15",
"@mistralai/mistralai": "2.7.0",
"@modelcontextprotocol/sdk": "1.30.0",
"@mozilla/readability": "0.6.0",
"@openclaw/ai": "workspace:*",
"@openclaw/fs-safe": "0.21.2",
"@openclaw/proxyline": "0.3.12",
"@silvia-odwyer/photon-node": "0.3.4",
"@trycua/cua-driver": "0.28.2",
"acorn": "8.18.0",
"chalk": "6.0.0",
"chrome-devtools-mcp": "1.9.0",
"clawpdf": "0.3.2",
"commander": "15.0.0",
"croner": "10.0.1",
"diff": "9.0.0",
"dotenv": "18.0.1",
"entities": "8.1.0",
"esbuild": "0.28.2",
"execa": "10.0.1",
"express": "5.2.1",
"file-type": "22.1.1",
"grammy": "1.46.0",
"highlight.js": "11.12.0",
"hosted-git-info": "10.1.1",
"iconv-lite": "0.7.3",
"ignore": "7.0.9",
"import-meta-resolve": "4.2.0",
"jiti": "2.7.0",
"json5": "2.2.3",
"jszip": "3.10.2",
"koffi": "3.3.1",
"kysely": "0.29.6",
"linkedom": "0.18.13",
"minimatch": "10.2.6",
"node-edge-tts": "1.2.10",
"npm": "11.20.0",
"openai": "7.20.0",
"p-limit": "7.3.3",
"p-map": "7.0.8",
"partial-json": "0.1.7",
"playwright-core": "1.63.0",
"qrcode": "1.5.4",
"rastermill": "0.3.3",
"semver": "7.8.5",
"tar": "7.5.22",
"tslog": "5.2.0",
"typebox": "1.3.34",
"undici": "8.10.2",
"web-push": "3.6.7",
"web-tree-sitter": "0.27.0",
"ws": "8.21.3",
"yaml": "2.9.1",
"zod": "4.6.5"
},
"devDependencies": {
"@a2ui/lit": "0.11.0",
"@a2ui/web_core": "0.11.0",
"@babel/types": "8.0.6",
"@copilotkit/aimock": "1.42.1",
"@lit-labs/signals": "0.3.0",
"@lit/context": "1.1.6",
"@lit/task": "1.0.3",
"@mdx-js/mdx": "3.1.1",
"@openclaw/crabline": "0.1.27",
"@openclaw/session-url-contract": "workspace:*",
"@opentelemetry/sdk-node": "0.222.0",
"@pnpm/parse-overrides": "1001.0.4",
"@shikijs/core": "4.4.3",
"@shikijs/engine-javascript": "4.4.3",
"@shikijs/engine-oniguruma": "4.4.3",
"@sindresorhus/slugify": "3.0.1",
"@types/express": "5.0.6",
"@types/hosted-git-info": "3.0.5",
"@types/jsdom": "30.0.0",
"@types/markdown-it": "14.2.0",
"@types/mdast": "4.0.4",
"@types/node": "26.6.2",
"@types/semver": "7.8.0",
"@types/web-push": "3.6.4",
"@types/ws": "8.18.1",
"@vitest/coverage-v8": "5.0.1",
"acpx": "0.19.1",
"apache-arrow": "21.2.0",
"baileys": "7.0.0-rc14",
"htmlparser2": "12.0.0",
"ipaddr.js": "2.5.0",
"jscpd": "5.3.0",
"jsdom": "30.1.0",
"lit": "3.3.3",
"lit-analyzer": "2.0.3",
"markdown-it": "15.0.2",
"markdown-it-anchor": "10.0.0",
"marked": "18.0.13",
"minipass": "7.1.3",
"nostr-tools": "2.25.2",
"oxfmt": "0.68.0",
"oxlint": "1.83.0",
"oxlint-tsgolint": "7.0.2002",
"pako": "3.0.2",
"playwright": "1.63.0",
"postcss": "8.5.28",
"postcss-lit": "1.4.1",
"postcss-selector-parser": "7.1.6",
"shiki": "4.4.3",
"signal-utils": "0.21.1",
"sigstore": "5.0.0",
"string-width": "8.2.2",
"stylelint": "17.15.0",
"stylelint-config-recommended": "18.0.0",
"tinyglobby": "0.2.17",
"tree-sitter-bash": "0.25.1",
"tsdown": "0.23.0",
"tsx": "4.23.15",
"typescript": "7.1.0-dev.20260920.1",
"unrun": "0.3.1",
"vite": "8.3.0",
"vitest": "5.0.1"
},
"optionalDependencies": {
"sqlite-vec": "0.1.9"
},
"engines": {
"node": ">=24.16.0 <25 || >=26.1.0"
},
"packageManager": "pnpm@12.5.1+sha512.e3f305bc784a2bc89f5ad3b6138889470fae8d2af5f36b61216ec91c2c3d64089775f9de38aac331044ea40f245cb0d5666392dfdf65824e1907ef6a2c62de5f"
}