{"_id":"openclaw","_rev":"100-5e19c3cc92ca4d8d180bea5139664425","name":"openclaw","dist-tags":{"latest":"2026.4.2","beta":"2026.4.2"},"versions":{"0.0.1":{"name":"openclaw","version":"0.0.1","license":"UNLICENSED","_id":"openclaw@0.0.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"dist":{"shasum":"e43bbf58e415c383a6cdec16767cf9c6d664ab2d","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-0.0.1.tgz","fileCount":3,"integrity":"sha512-RjBpKUdV8BeVBDWd3vJi4Okl7AwDwC/yKsP6tf89CQIH+B+M6J0SsxkyJqd5Kc/c4bZkJ7mWYSd4eYo4Jzc7mA==","signatures":[{"sig":"MEQCIA8meSmwgQkCNabtuR2MDp5YO2X+33sOUhhjStqyGsvnAiApMjqFXZYTiAtXEHKv6pZUhSFNpU6k+74GfLQlbAUcOA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253},"main":"index.js","_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_npmVersion":"11.6.2","description":"Empty placeholder package.","directories":{},"_nodeVersion":"25.2.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/openclaw_0.0.1_1769684891958_0.6827988358865404","host":"s3://npm-registry-packages-npm-production"}},"2026.1.29-beta.1":{"name":"openclaw","version":"2026.1.29-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.1.29-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"8bc876833d8a8f083cc697a8b3b4781a6db558ea","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.1.29-beta.1.tgz","fileCount":9702,"integrity":"sha512-sBGTTAx1NnrW3KU2iJ5YaRsFvzCgS1iRtkG6YS4BEXRl09Gsr7PlhPnY0qRymEYDH20I42de1HjkIzzIfyONGg==","signatures":[{"sig":"MEYCIQCEJ/4qHPJ0HeVNCGSAsY+nCQmSevotU5YcWS+xNCLPJAIhAMO26wfcPAImuovIDvELSS8VOtrABje0WKjIIAEWhJ1G","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49048047},"main":"dist/index.js","pnpm":{"overrides":{"tar":"7.5.4","hono":"4.11.4","@sinclair/typebox":"0.34.47"},"minimumReleaseAge":2880},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"d47b4e6f8127e698a9fa6263c0f6a0df93a88b40","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware src test","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","start":"node scripts/run-node.mjs","format":"oxfmt --check src test","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"pnpm format:fix && oxlint --type-aware --fix src test","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write src test","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.4"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.4","zod":"^4.3.6","hono":"4.11.4","jiti":"^2.6.1","long":"5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^9.1.0","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.19.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.2","file-type":"^21.3.0","pdfjs-dist":"^5.4.530","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","body-parser":"^2.2.2","detect-libc":"^2.1.2","markdown-it":"^14.1.0","osc-progress":"^0.3.0","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","chromium-bidi":"13.0.1","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^0.11.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.47","discord-api-types":"^0.38.37","@mariozechner/pi-ai":"0.49.3","@mariozechner/pi-tui":"0.49.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.975.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.49.3","@mariozechner/pi-coding-agent":"0.49.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.26.0","lucide":"^0.563.0","ollama":"^0.6.3","oxlint":"^1.41.0","vitest":"^4.0.18","wireit":"^0.14.12","rolldown":"1.0.0-rc.1","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@lit/context":"^1.1.6","docx-preview":"^0.3.7","signal-utils":"^0.21.1","@types/express":"^5.0.6","quicktype-core":"^23.2.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.1","@lit-labs/signals":"^0.2.0","@types/body-parser":"^1.19.6","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@mariozechner/mini-lit":"0.2.1","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260124.1"},"optionalDependencies":{"node-llama-cpp":"3.15.0","@napi-rs/canvas":"^0.1.88"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.1.29-beta.1_1769739654510_0.759178542717051","host":"s3://npm-registry-packages-npm-production"}},"2026.1.29-beta.2":{"name":"openclaw","version":"2026.1.29-beta.2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.1.29-beta.2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"717bbf2d3d3b1ecdcfe41947ad50942b4e75515f","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.1.29-beta.2.tgz","fileCount":9705,"integrity":"sha512-Cuvpp7U6wwH3pVvoHmb1QXq2G430CJSEonIlFTOUiqpVhvDL+HQJIeFsQQulvxWe9MssPl8jqs/XoLEk4hsOtg==","signatures":[{"sig":"MEUCIAwyLec4G905zUJCXLuqjy53FM5FimDf1iB9M/YdT9skAiEAivGRsfBTGBI0HbPN8egICzcDlmzr5/AOeiT+iUAoU+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49060454},"main":"dist/index.js","pnpm":{"overrides":{"tar":"7.5.4","hono":"4.11.4","@sinclair/typebox":"0.34.47"},"minimumReleaseAge":2880},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"02576615cb4c1382abf1d0aee10ed10f1f676e78","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware src test","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","start":"node scripts/run-node.mjs","format":"oxfmt --check src test","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"pnpm format:fix && oxlint --type-aware --fix src test","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write src test","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.4"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.4","zod":"^4.3.6","hono":"4.11.4","jiti":"^2.6.1","long":"5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^9.1.0","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.19.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.2","file-type":"^21.3.0","pdfjs-dist":"^5.4.530","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","body-parser":"^2.2.2","detect-libc":"^2.1.2","markdown-it":"^14.1.0","osc-progress":"^0.3.0","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","chromium-bidi":"13.0.1","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^0.11.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.47","discord-api-types":"^0.38.37","@mariozechner/pi-ai":"0.49.3","@mariozechner/pi-tui":"0.49.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.975.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.49.3","@mariozechner/pi-coding-agent":"0.49.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.26.0","lucide":"^0.563.0","ollama":"^0.6.3","oxlint":"^1.41.0","vitest":"^4.0.18","wireit":"^0.14.12","rolldown":"1.0.0-rc.1","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@lit/context":"^1.1.6","docx-preview":"^0.3.7","signal-utils":"^0.21.1","@types/express":"^5.0.6","quicktype-core":"^23.2.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.1","@lit-labs/signals":"^0.2.0","@types/body-parser":"^1.19.6","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@mariozechner/mini-lit":"0.2.1","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260124.1"},"optionalDependencies":{"node-llama-cpp":"3.15.0","@napi-rs/canvas":"^0.1.88"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.1.29-beta.2_1769742130731_0.1327915321369042","host":"s3://npm-registry-packages-npm-production"}},"2026.1.29-beta.3":{"name":"openclaw","version":"2026.1.29-beta.3","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.1.29-beta.3","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"5050791395bb968ba8f82e2bbdf198ed3b2738cd","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.1.29-beta.3.tgz","fileCount":9705,"integrity":"sha512-yCxhxAkHxIAPOmCo+pFNzHIgy/Q4k0FCoWCyaV6wOGk9WHdp0qqbH84rjvNSfl+QUuLB8p6nCPHUrF+5+0QQQQ==","signatures":[{"sig":"MEQCIEjaRvdGgbq0YuEU1vWSGbW3eYoVKReHW3JAblNvHKd8AiApV2ARy7fBlgpkWLL+dqe4KTrXvApSXSL6ocU9556nVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49062006},"main":"dist/index.js","pnpm":{"overrides":{"tar":"7.5.4","hono":"4.11.4","@sinclair/typebox":"0.34.47"},"minimumReleaseAge":2880},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"67918dc41bcf984a77c7b7ba8a9f4e3a41d10693","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware src test","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","start":"node scripts/run-node.mjs","format":"oxfmt --check src test","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"pnpm format:fix && oxlint --type-aware --fix src test","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write src test","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.4"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.4","zod":"^4.3.6","hono":"4.11.4","jiti":"^2.6.1","long":"5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^9.1.0","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.19.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.2","file-type":"^21.3.0","pdfjs-dist":"^5.4.530","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","body-parser":"^2.2.2","detect-libc":"^2.1.2","markdown-it":"^14.1.0","osc-progress":"^0.3.0","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","chromium-bidi":"13.0.1","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^0.11.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.47","discord-api-types":"^0.38.37","@mariozechner/pi-ai":"0.49.3","@mariozechner/pi-tui":"0.49.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.975.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.49.3","@mariozechner/pi-coding-agent":"0.49.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.26.0","lucide":"^0.563.0","ollama":"^0.6.3","oxlint":"^1.41.0","vitest":"^4.0.18","wireit":"^0.14.12","rolldown":"1.0.0-rc.1","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@lit/context":"^1.1.6","docx-preview":"^0.3.7","signal-utils":"^0.21.1","@types/express":"^5.0.6","quicktype-core":"^23.2.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.1","@lit-labs/signals":"^0.2.0","@types/body-parser":"^1.19.6","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@mariozechner/mini-lit":"0.2.1","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260124.1"},"optionalDependencies":{"node-llama-cpp":"3.15.0","@napi-rs/canvas":"^0.1.88"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.1.29-beta.3_1769742691152_0.1027635873530699","host":"s3://npm-registry-packages-npm-production"}},"2026.1.29-beta.4":{"name":"openclaw","version":"2026.1.29-beta.4","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.1.29-beta.4","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"615496bc3835997b0fd872e879fa9535bc759cc9","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.1.29-beta.4.tgz","fileCount":9705,"integrity":"sha512-eYoehRwQdc8mz0xJCjFj2EDzSp9/j1DlCssoo+ynUFSoFQ+5SfGQoC0cnuvh0hVZ6ucBO6N8k8aIWBE2LezLTw==","signatures":[{"sig":"MEYCIQClQlhvH6SuJP8YEpYdOrsJS5IjHBwhkJm8BX4BLneG3wIhANy2QwpY8c6GhB4SoL9lDUleGxfxSuIMFQ4U/8OPUGsk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49062160},"main":"dist/index.js","pnpm":{"overrides":{"tar":"7.5.4","hono":"4.11.4","@sinclair/typebox":"0.34.47"},"minimumReleaseAge":2880},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"9886fd1a5a3f1e07817865dbf4c1663a919749e3","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware src test","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","start":"node scripts/run-node.mjs","format":"oxfmt --check src test","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"pnpm format:fix && oxlint --type-aware --fix src test","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write src test","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.4"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.4","zod":"^4.3.6","hono":"4.11.4","jiti":"^2.6.1","long":"5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^9.1.0","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.19.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.2","file-type":"^21.3.0","pdfjs-dist":"^5.4.530","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","body-parser":"^2.2.2","detect-libc":"^2.1.2","markdown-it":"^14.1.0","osc-progress":"^0.3.0","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","chromium-bidi":"13.0.1","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^0.11.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.47","discord-api-types":"^0.38.37","@mariozechner/pi-ai":"0.49.3","@mariozechner/pi-tui":"0.49.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.975.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.49.3","@mariozechner/pi-coding-agent":"0.49.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.26.0","lucide":"^0.563.0","ollama":"^0.6.3","oxlint":"^1.41.0","vitest":"^4.0.18","wireit":"^0.14.12","rolldown":"1.0.0-rc.1","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@lit/context":"^1.1.6","docx-preview":"^0.3.7","signal-utils":"^0.21.1","@types/express":"^5.0.6","quicktype-core":"^23.2.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.1","@lit-labs/signals":"^0.2.0","@types/body-parser":"^1.19.6","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@mariozechner/mini-lit":"0.2.1","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260124.1"},"optionalDependencies":{"node-llama-cpp":"3.15.0","@napi-rs/canvas":"^0.1.88"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.1.29-beta.4_1769743694500_0.7130137981931439","host":"s3://npm-registry-packages-npm-production"}},"2026.1.29-beta.5":{"name":"openclaw","version":"2026.1.29-beta.5","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.1.29-beta.5","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"8281760ee16c61740ee6f96fbeb468f641570ab2","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.1.29-beta.5.tgz","fileCount":9705,"integrity":"sha512-Vc+fOM7l8tx5IV46qhhPt0BH0+hhbVxv1OlUz7gOcOBlVZOKzc+egEzFYkKmAEs35zxUndsLyTjK1vYuifoX4w==","signatures":[{"sig":"MEQCIHto5U6PAy1T5K1P0RzO/yV5iDXo0Zx/j7+gtcmROdr3AiBAkbfcvUukDHAdww+Px9xOgRgrhhriS3t9gniiEMD6LA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49062160},"main":"dist/index.js","pnpm":{"overrides":{"tar":"7.5.4","hono":"4.11.4","@sinclair/typebox":"0.34.47"},"minimumReleaseAge":2880},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"d9c81991b1c5a1f1253992307ca13947856e446d","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware src test","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","start":"node scripts/run-node.mjs","format":"oxfmt --check src test","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"pnpm format:fix && oxlint --type-aware --fix src test","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write src test","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.4"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.4","zod":"^4.3.6","hono":"4.11.4","jiti":"^2.6.1","long":"5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^9.1.0","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.19.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.2","file-type":"^21.3.0","pdfjs-dist":"^5.4.530","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","body-parser":"^2.2.2","detect-libc":"^2.1.2","markdown-it":"^14.1.0","osc-progress":"^0.3.0","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","chromium-bidi":"13.0.1","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^0.11.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.47","discord-api-types":"^0.38.37","@mariozechner/pi-ai":"0.49.3","@mariozechner/pi-tui":"0.49.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.975.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.49.3","@mariozechner/pi-coding-agent":"0.49.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.26.0","lucide":"^0.563.0","ollama":"^0.6.3","oxlint":"^1.41.0","vitest":"^4.0.18","wireit":"^0.14.12","rolldown":"1.0.0-rc.1","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@lit/context":"^1.1.6","docx-preview":"^0.3.7","signal-utils":"^0.21.1","@types/express":"^5.0.6","quicktype-core":"^23.2.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.1","@lit-labs/signals":"^0.2.0","@types/body-parser":"^1.19.6","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@mariozechner/mini-lit":"0.2.1","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260124.1"},"optionalDependencies":{"node-llama-cpp":"3.15.0","@napi-rs/canvas":"^0.1.88"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.1.29-beta.5_1769744326647_0.6069148286784605","host":"s3://npm-registry-packages-npm-production"}},"2026.1.29-beta.7":{"name":"openclaw","version":"2026.1.29-beta.7","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.1.29-beta.7","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"523035651276b86e7ca15120924ed3dac847d18c","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.1.29-beta.7.tgz","fileCount":9705,"integrity":"sha512-MhqUdP0vj8ET1F6Y+eLQTFNR3XEryGwxXmBdJkuGrA21OsgwGh86dmexdDXsXjPsk+m1p8tRh5I9sZIRPMJmOA==","signatures":[{"sig":"MEYCIQDyOE68nsISghtVhLrEX5bMrftLfnIicMW/wfyD46ThSwIhAJe5YF47umswioJXx890POTpGRwk/NK426vSII/fwbT0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49063902},"main":"dist/index.js","pnpm":{"overrides":{"tar":"7.5.4","hono":"4.11.4","@sinclair/typebox":"0.34.47"},"minimumReleaseAge":2880},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"151ddd624bd368e6f4345207c8ea7d9e6521a619","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware src test","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","start":"node scripts/run-node.mjs","format":"oxfmt --check src test","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"pnpm format:fix && oxlint --type-aware --fix src test","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write src test","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.4"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.4","zod":"^4.3.6","hono":"4.11.4","jiti":"^2.6.1","long":"5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^9.1.0","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.19.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.2","file-type":"^21.3.0","pdfjs-dist":"^5.4.530","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","body-parser":"^2.2.2","detect-libc":"^2.1.2","markdown-it":"^14.1.0","osc-progress":"^0.3.0","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","chromium-bidi":"13.0.1","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^0.11.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.47","discord-api-types":"^0.38.37","@mariozechner/pi-ai":"0.49.3","@mariozechner/pi-tui":"0.49.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.975.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.49.3","@mariozechner/pi-coding-agent":"0.49.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.26.0","lucide":"^0.563.0","ollama":"^0.6.3","oxlint":"^1.41.0","vitest":"^4.0.18","wireit":"^0.14.12","rolldown":"1.0.0-rc.1","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@lit/context":"^1.1.6","docx-preview":"^0.3.7","signal-utils":"^0.21.1","@types/express":"^5.0.6","quicktype-core":"^23.2.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.1","@lit-labs/signals":"^0.2.0","@types/body-parser":"^1.19.6","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@mariozechner/mini-lit":"0.2.1","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260124.1"},"optionalDependencies":{"node-llama-cpp":"3.15.0","@napi-rs/canvas":"^0.1.88"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.1.29-beta.7_1769745777634_0.3037252153526999","host":"s3://npm-registry-packages-npm-production"}},"2026.1.29":{"name":"openclaw","version":"2026.1.29","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.1.29","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"47ad1196e631d465cd81d99581586361006175c1","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.1.29.tgz","fileCount":9706,"integrity":"sha512-CVUOAH83BCrlnD56I1JahGVpg0mjp4fjJPdJg9q6Pijn/YdOopsfdInDqSeIEZwGtu/+0w69/uJccY23C9I+vg==","signatures":[{"sig":"MEYCIQDT31invOKj/jhkYBt3XW45t7VAVnsec5VHkd8nQXi9wwIhALdbgc8iQ0AMaPIE6pKvGvu92Uaf8tB5T3DEJeCjyMsF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49196825},"main":"dist/index.js","pnpm":{"overrides":{"tar":"7.5.4","hono":"4.11.4","@sinclair/typebox":"0.34.47"},"minimumReleaseAge":2880},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"a5b4d22cbff07a1bfd01a41391b7e071e1d9074d","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware src test","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","start":"node scripts/run-node.mjs","format":"oxfmt --check src test","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"pnpm format:fix && oxlint --type-aware --fix src test","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write src test","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.4"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.4","zod":"^4.3.6","hono":"4.11.4","jiti":"^2.6.1","long":"5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^9.1.0","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.19.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.2","file-type":"^21.3.0","pdfjs-dist":"^5.4.530","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","body-parser":"^2.2.2","detect-libc":"^2.1.2","markdown-it":"^14.1.0","osc-progress":"^0.3.0","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","chromium-bidi":"13.0.1","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^0.11.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.0","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.47","discord-api-types":"^0.38.37","@mariozechner/pi-ai":"0.49.3","@mariozechner/pi-tui":"0.49.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.975.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.49.3","@mariozechner/pi-coding-agent":"0.49.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.26.0","lucide":"^0.563.0","ollama":"^0.6.3","oxlint":"^1.41.0","vitest":"^4.0.18","wireit":"^0.14.12","rolldown":"1.0.0-rc.1","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@lit/context":"^1.1.6","docx-preview":"^0.3.7","signal-utils":"^0.21.1","@types/express":"^5.0.6","quicktype-core":"^23.2.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.1","@lit-labs/signals":"^0.2.0","@types/body-parser":"^1.19.6","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@mariozechner/mini-lit":"0.2.1","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260124.1"},"optionalDependencies":{"node-llama-cpp":"3.15.0","@napi-rs/canvas":"^0.1.88"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.1.29_1769748556706_0.3495488424310791","host":"s3://npm-registry-packages-npm-production"}},"2026.1.30":{"name":"openclaw","version":"2026.1.30","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.1.30","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"f2c44058732ededd68d291f1909c08f59410d58b","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.1.30.tgz","fileCount":4607,"integrity":"sha512-oHpsfvxCTDnRWcaG7M5cP4iLJQ0WnpTqN+3d+VbD/auMLi7mmXAOESVOLab0m457CKwvOxIYYsAlrOfqtzp5Lg==","signatures":[{"sig":"MEQCIHmCdyPFp/u26lb1QeLggJ1LDQAWGtGfHE8ZmxyS8oFCAiBJmTK+x2UEtt3IBroMBkmqvxU5hek9I36iYJgcRDbPKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":33541027},"main":"dist/index.js","pnpm":{"overrides":{"tar":"7.5.7","@sinclair/typebox":"0.34.47"},"minimumReleaseAge":2880},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"76b5208b11eebf2071ad5a363666467417ea5792","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware src test","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json --noEmit false && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"pnpm format:fix && oxlint --type-aware --fix src test","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^9.1.0","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.19.2","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.530","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.1","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.50.7","@mariozechner/pi-tui":"0.50.7","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.980.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.50.7","@mariozechner/pi-coding-agent":"0.50.7","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.27.0","ollama":"^0.6.3","oxlint":"^1.42.0","vitest":"^4.0.18","rolldown":"1.0.0-rc.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.1.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260130.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.1.30_1769865117479_0.6224792586032684","host":"s3://npm-registry-packages-npm-production"}},"2026.2.1":{"name":"openclaw","version":"2026.2.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"00ceed7c412d99c74fc0ef65aa7261e581dfa8e6","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.1.tgz","fileCount":9449,"integrity":"sha512-SCGnsg/E9XPpYd1KCH+hvfQFTg+RLptBAAPbc+9e7PHn7aNzte7mcm+2W/kxn71Aie8jqwbZgWx9JdEPneiaLQ==","signatures":[{"sig":"MEQCIBtUnMtvFw1bT8YS2dfwdWO/Pqm1oxFFkjSkVI1HLL9cAiASTks3GFQsmEOskjoklXZw/S80FThlYG8gQIT8JBsxRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45108541},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.47","@hono/node-server>hono":"4.11.7"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","types":"./dist/index.d.ts","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js","./plugin-sdk/*":"./dist/plugin-sdk/*"},"gitHead":"ed4529e24673fb19ea506bb04b2c6d3deed6a451","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware --tsconfig tsconfig.oxlint.json","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsc -p tsconfig.json --noEmit false && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --tsconfig tsconfig.oxlint.json --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall.js","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.20.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.1","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.51.0","@mariozechner/pi-tui":"0.51.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.980.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.51.0","@mariozechner/pi-coding-agent":"0.51.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.27.0","ollama":"^0.6.3","oxlint":"^1.42.0","vitest":"^4.0.18","rolldown":"1.0.0-rc.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260201.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.1_1770032727028_0.13363571781615335","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2":{"name":"openclaw","version":"2026.2.2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"b839be075e454777d7f748101a067281e199bd17","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.2.tgz","fileCount":6812,"integrity":"sha512-a+APDrAbwTXbVQG250hkLSb7Y/HckaAljhYPZu4GrVspiO65/Fhoe9COIYMKzCvL/LLKVUEvCUeB8dzKroZMhA==","signatures":[{"sig":"MEUCIQCN+Ck+G99aVXn8/3l0b2a36c7ZH5tYETBj5QWEVsJb3gIgDWji2aSbwPTbYZS//rU/hceZaMlr5N/A8vKKhfcWQiw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57383768},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.47","@hono/node-server>hono":"4.11.7"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"539a15e63fcc823256893ccde8bd421db14aba23","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.20.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.1","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.51.1","@mariozechner/pi-tui":"0.51.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.981.0","@larksuiteoapi/node-sdk":"^1.42.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.51.1","@mariozechner/pi-coding-agent":"0.51.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.1","vitest":"^4.0.18","rolldown":"1.0.0-rc.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260202.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.2_1770166601255_0.7247287145377181","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-1":{"name":"openclaw","version":"2026.2.2-1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.2-1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"9107bc22eb4b22f0cada3050738de665e484518a","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.2-1.tgz","fileCount":8688,"integrity":"sha512-i2tdaBX/qJwSFNhoNIIAltjEWB2AkDsogC+Ctx2ZxobsLaDPjaTo2fzXkVTIAqNnhfPgpiYgVa22HvhzSYaPyg==","signatures":[{"sig":"MEQCIBYVgrNXcQfPAbiGUNcj/EF1rqgD+vnwN7LdsJreTZWuAiBV+R0IS7G35n30DBZcOJHjiZjoUcxt2tZbi/Rie1a/aQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64501370},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.47","@hono/node-server>hono":"4.11.7"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"e59eb814bdc4a756d2f78baf10f6263d65bada98","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.20.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.1","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.51.1","@mariozechner/pi-tui":"0.51.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.981.0","@larksuiteoapi/node-sdk":"^1.42.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.51.1","@mariozechner/pi-coding-agent":"0.51.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.1","vitest":"^4.0.18","rolldown":"1.0.0-rc.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260202.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.2-1_1770168424619_0.15374555588561534","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-2":{"name":"openclaw","version":"2026.2.2-2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.2-2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"aa48ec6db89939c8950362ec6c9ad91a72b9d477","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.2-2.tgz","fileCount":8688,"integrity":"sha512-b4iz8NjggOwbcWFIJJ9ttnx1MdnZd3A1xt36BdZ7Z9mlTMJmvay5hGuo1lrtCQ+QDuXUvvOaiNvDpSpQS4O6fw==","signatures":[{"sig":"MEUCIQCbb4J2pkLzg89FddVJlIast8GM8AQIqiCxUUhFKpHJXAIgG6mFEPnSgm5h9Y/SJzJwBbFIxu5uJZBSH25+jPTqdDU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64502715},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.47","@hono/node-server>hono":"4.11.7"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"e895e85f5488f85e007940b46829d779b04b29f7","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.20.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.1","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.51.1","@mariozechner/pi-tui":"0.51.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.981.0","@larksuiteoapi/node-sdk":"^1.42.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.51.1","@mariozechner/pi-coding-agent":"0.51.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.1","vitest":"^4.0.18","rolldown":"1.0.0-rc.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260202.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.2-2_1770168766816_0.2677156484503358","host":"s3://npm-registry-packages-npm-production"}},"2026.2.2-3":{"name":"openclaw","version":"2026.2.2-3","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.2-3","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"96cf3f6012da9c72e707d305392eca8a32386cf1","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.2-3.tgz","fileCount":8690,"integrity":"sha512-XDGV4mBJFpo1AZnjcJQtLLo70k0IRq+L/kujGhVrbFRLRfNueUbHxiaeELNx/umyFpWGgYwkatiysgv7+XGkkg==","signatures":[{"sig":"MEYCIQDoXpKxtpXAMWwBVrDuRc8DRZDt9pJ+z2yu7jcAAic2YwIhAJGF6duKdhRpjd7lq27JIIPKDlOjHLOKYheCGOWILAz+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64506969},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.47","@hono/node-server>hono":"4.11.7"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"9c5941ba466b86e3056b6743cd6d4fc554b13e8d","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.20.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.1","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.51.1","@mariozechner/pi-tui":"0.51.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.981.0","@larksuiteoapi/node-sdk":"^1.42.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.51.1","@mariozechner/pi-coding-agent":"0.51.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.1","vitest":"^4.0.18","rolldown":"1.0.0-rc.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260202.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.2-3_1770170835272_0.3088894384430174","host":"s3://npm-registry-packages-npm-production"}},"2026.2.3":{"name":"openclaw","version":"2026.2.3","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.3","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"78190db0697a62becf8e33124d830f5d36ea5d76","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.3.tgz","fileCount":8700,"integrity":"sha512-nAYjR0sfZf85h6h9idqWvose0v4fQ+6ATk7uldNg3bQ8EzOpFrPzMCx75rGjAj9bsBFTmT9/9eMAIref+cxVIw==","signatures":[{"sig":"MEQCIBJ7qPBcpM/yfmXVQJBuLY/veIvVGYCf0W+zT0tCJ5dcAiBaVIZfxwsW4kc1yu8w3q7DoeEJuyS6tiJbDAEHeDQNAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64777989},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.47","@hono/node-server>hono":"4.11.7"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"e75e2b116f1eb71e24104e5023b601908227ae3f","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.8.0","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.5.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.20.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.1","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.51.3","@mariozechner/pi-tui":"0.51.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.981.0","@larksuiteoapi/node-sdk":"^1.42.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.51.3","@mariozechner/pi-coding-agent":"0.51.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.1","vitest":"^4.0.18","rolldown":"1.0.0-rc.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260202.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.3_1770255506954_0.8608028792608646","host":"s3://npm-registry-packages-npm-production"}},"2026.2.3-1":{"name":"openclaw","version":"2026.2.3-1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.3-1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"e8b2a49ae5c47839e345d29d6fd9303783ad1e40","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.3-1.tgz","fileCount":8699,"integrity":"sha512-Zxn2LXFVdeSNBLoGZfDOK/JcmqJeeKQW69jBhKBpWYdJnWVep+WHvvwIFSfP6SLp1DqHOD1V2v/bKfx+t9lB0Q==","signatures":[{"sig":"MEQCIFTzDD1x1VGHXjiJGGT7weHZOiQCgNE74sANIMw8XdkbAiBhWM0MsyqdvZs6QlOU2xne5wtLhZH71A46kMnFqMvXLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64788307},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.47","@hono/node-server>hono":"4.11.7"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"d84eb46467d74e12e7fad63ee2a257ad1473fcd8","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.3","grammy":"^1.39.3","undici":"^7.20.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.9","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.1","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.51.3","@mariozechner/pi-tui":"0.51.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.981.0","@larksuiteoapi/node-sdk":"^1.42.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.13.1","@mariozechner/pi-agent-core":"0.51.3","@mariozechner/pi-coding-agent":"0.51.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.1","vitest":"^4.0.18","rolldown":"1.0.0-rc.2","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260202.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.3-1_1770278284801_0.10651700653872154","host":"s3://npm-registry-packages-npm-production"}},"2026.2.6":{"name":"openclaw","version":"2026.2.6","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.6","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"c3e7956824ffebf0518ffabcc67aca8868ce0926","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.6.tgz","fileCount":6798,"integrity":"sha512-QaITs2UmooG1vclLZl5CUpdaKjtcPnHtmFGGxZ0fSgMWcvlKQeRN8HtzVBIN2SPt9O3E0jepGW8m8I62BzKWAw==","signatures":[{"sig":"MEYCIQCfA5bSQBijbEPIkbxNq8qijCMmS0UUDTB60TgF5ueN/wIhAPGWYuoGhNPpSo9jLtYCzrYMIggXvTpmDNkNGyi7zSmj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57133892},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.8","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48","@hono/node-server>hono":"4.11.8"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"f831c48e56705184195b69ebbf662f785b032ae4","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs && pnpm lint:docs && pnpm docs:build","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","format:docs:fix":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.8","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.4","grammy":"^1.39.3","undici":"^7.21.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.0.0-beta-20260130162700","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.52.7","@mariozechner/pi-tui":"0.52.7","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.985.0","@larksuiteoapi/node-sdk":"^1.58.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.7","@mariozechner/pi-coding-agent":"0.52.7","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.3","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.1","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260206.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.6_1770429046737_0.32384084426956394","host":"s3://npm-registry-packages-npm-production"}},"2026.2.6-1":{"name":"openclaw","version":"2026.2.6-1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.6-1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"a98001531fa0a92246aac22012faa402ba831138","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.6-1.tgz","fileCount":7843,"integrity":"sha512-gxthOnQmAdP11Rl34CRaBoyR0HKGXZHED9b41K/sCnszaVtYpLViUPWoYtnqKEuz4EY2fmZZmEe1SYJOiKCP7g==","signatures":[{"sig":"MEUCIQDgMZik2/LAYlRgUmNRt9t7XB0kDEc/Yh01LVpTbUB5pgIgXALAUyqT3FX8rQpNYRo5LIBFLnOwzn6Y4ndR3WKGW00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58594181},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.8","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48","@hono/node-server>hono":"4.11.8"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"aaddbdae52d71bff3a74fa28dd6597816e2d7592","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs && pnpm lint:docs && pnpm docs:build","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","format:docs:fix":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.8","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.4","grammy":"^1.39.3","undici":"^7.21.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.0.0-beta-20260130162700","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.52.7","@mariozechner/pi-tui":"0.52.7","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.985.0","@larksuiteoapi/node-sdk":"^1.58.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.7","@mariozechner/pi-coding-agent":"0.52.7","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.3","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.1","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260206.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.6-1_1770447510520_0.7692618776607438","host":"s3://npm-registry-packages-npm-production"}},"2026.2.6-2":{"name":"openclaw","version":"2026.2.6-2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.6-2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"905bd0ce5ca4449ebc6febf3338ee0fc2eec360c","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.6-2.tgz","fileCount":7844,"integrity":"sha512-PfU4pJ6FH7mjfuzn0BeyhwWKK2q4lDo09HTxdEOoYhjzq2EGNDM3UHEETRA909BxzuOP73Sbrqi8WdNZ+Gmnxw==","signatures":[{"sig":"MEQCIHFw1c9P+tzKKxTxLlKAJ9/f54NwBwl2/aa/vbfIevG6AiBLvUjpTz9Mg/FgXK6luUWu530BHIO3qlR2oSSkpoIAeA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58612649},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.8","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48","@hono/node-server>hono":"4.11.8"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"ad4dd0422ea46d21ad336151ca6f2a63119e80f1","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs && pnpm lint:docs && pnpm docs:build","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","format:docs:fix":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.8","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.4","grammy":"^1.39.3","undici":"^7.21.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.0.0-beta-20260130162700","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.52.7","@mariozechner/pi-tui":"0.52.7","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.985.0","@larksuiteoapi/node-sdk":"^1.58.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.7","@mariozechner/pi-coding-agent":"0.52.7","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.3","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.1","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260206.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.6-2_1770453207505_0.893779154128781","host":"s3://npm-registry-packages-npm-production"}},"2026.2.6-3":{"name":"openclaw","version":"2026.2.6-3","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.6-3","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"a20984c39937f9645bd0cecafd87a701e8e63afb","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.6-3.tgz","fileCount":7844,"integrity":"sha512-NJiU09ZnBXUVI9FfDs4ahu+kq0rEm7tEHriDlw1WDdAWQyfr2fQY/Q8lC/DH76Ky+Xr2SxZ5kTJsJghGLq4PHQ==","signatures":[{"sig":"MEUCIBrI9h0zLvb3F9n+Thih7WSDTfmq5RZytR2J5A8IwlchAiEAz1GzHLQehYJfQx8VW7bcKCBeUt1OZT8PXu3mZZYT7/c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58613064},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.8","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48","@hono/node-server>hono":"4.11.8"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","vitest":{"exclude":["dist/**","apps/macos/**","apps/macos/.build/**","**/vendor/**","apps/macos/.build/**","dist/OpenClaw.app/**"],"include":["src/**/*.test.ts"],"coverage":{"exclude":["src/**/*.test.ts"],"include":["src/**/*.ts"],"provider":"v8","reporter":["text","lcov"],"thresholds":{"lines":70,"branches":70,"functions":70,"statements":70}}},"engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"9f703a44dc954349d4c9571cba2f16b7fb3d2adc","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs && pnpm lint:docs && pnpm docs:build","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","format:docs:fix":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"overrides":{"tar":"7.5.7"},"_npmVersion":"11.6.2","description":"WhatsApp gateway CLI (Baileys web) with Pi RPC agent","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.8","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.4","grammy":"^1.39.3","undici":"^7.21.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.0.0-beta-20260130162700","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.4","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.52.7","@mariozechner/pi-tui":"0.52.7","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.985.0","@larksuiteoapi/node-sdk":"^1.58.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.7","@mariozechner/pi-coding-agent":"0.52.7","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.3","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.1","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260206.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.6-3_1770454007432_0.5522706524022851","host":"s3://npm-registry-packages-npm-production"}},"2026.2.9":{"name":"openclaw","version":"2026.2.9","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.9","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"11cf5e4f6afb02d765efaa18326a3ecfc3e20b55","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.9.tgz","fileCount":2786,"integrity":"sha512-kJbbIg98ikbZSvS/ypk3Btjha//Fg1sao/xqYrzyMNFNpZFVMcvZNVvMdjRLtccyYNCa5GAJ5nNxP7fzEnS0KQ==","signatures":[{"sig":"MEUCIFZ1V2DVBlBH29o5Vg8mqMKE0ksyCtbz2u9ndE2B8GYtAiEAi2wa0DZrmmdcY6ZHIMdv9l49mxvGUu/hHcASBDvUpCM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42502796},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","hono":"4.11.8","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48","@hono/node-server>hono":"4.11.8"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":"./dist/plugin-sdk/index.js"},"gitHead":"33c75cb6bf2dde53131f33a1ea4995e1aa8d550e","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm tsgo && pnpm lint && pnpm format","start":"node scripts/run-node.mjs","format":"oxfmt --check","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format:fix","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs && pnpm lint:docs && pnpm docs:build","docs:build":"cd docs && pnpm dlx --reporter append-only mint broken-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","format:docs:fix":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_npmVersion":"11.8.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"25.6.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","hono":"4.11.9","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.2.4","grammy":"^1.39.3","undici":"^7.21.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.0","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.0","@slack/web-api":"^7.13.0","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.52.9","@mariozechner/pi-tui":"0.52.9","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.985.0","@larksuiteoapi/node-sdk":"^1.58.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.9","@mariozechner/pi-coding-agent":"0.52.9","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.28.0","ollama":"^0.6.3","oxlint":"^1.43.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.3","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.2","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.23.0","oxlint-tsgolint":"^0.11.5","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260208.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.9_1770663670605_0.7106019020795862","host":"s3://npm-registry-packages-npm-production"}},"2026.2.12":{"name":"openclaw","version":"2026.2.12","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.12","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"59c845792868f6983ffd5e410973cdf33c6a5779","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.12.tgz","fileCount":4767,"integrity":"sha512-7ZlAd04KMRe5V79E+jAXFUnyWkHax8/5YuTYUfYaGfRU5cqsUOKfsqKgQfLFmVXhtx+D43Xz5mjhi1PuLq0gOA==","signatures":[{"sig":"MEYCIQCIw8ShNUW9zFxMB98N5PtOcemolCvHXjGQXbbcmEJbhgIhAIBgkCZYasvGp3aca7Oc3z4Ne5H1tH8x0jfpMX9/w2/p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50690458},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"}},"gitHead":"f9e444dd56ccfc2271e8ae1729b7a14a55e1c11e","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","tsgo:test":"tsgo -p tsconfig.test.json","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.21.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.0","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","@mariozechner/pi-ai":"0.52.10","@mariozechner/pi-tui":"0.52.10","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.989.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.10","@mariozechner/pi-coding-agent":"0.52.10","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.32.0","ollama":"^0.6.3","oxlint":"^1.47.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.4","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.3","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.12.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260212.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.12_1770947601911_0.23894748307835934","host":"s3://npm-registry-packages-npm-production"}},"2026.2.13":{"name":"openclaw","version":"2026.2.13","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.13","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"e7320bab7e2c1e1d5a4d69183a4ebf5112e47f0d","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.13.tgz","fileCount":5017,"integrity":"sha512-GBFA8pC+1ZRTUIfYhGa3mnWnTrr5m1xLPUO1q5KiIc1uKY1gtmZCk/TUwZGNccSFKdGOMANVn88y/8Wvi59JIg==","signatures":[{"sig":"MEUCID8WjhR7jZNRgZQC4Miwr74+Siv5bnmeq32HndEYZPzEAiEAgfNNs/tnSnT9zJ4vIRv/+MmLe2Nhr21eiwysvSqUiNo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52057989},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.1","tar":"7.5.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"}},"gitHead":"203b5bdf710ad636844d4142f16e81c95890c2c7","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","tsgo:test":"tsgo -p tsconfig.test.json","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.17.1","tar":"7.5.7","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.21.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.0","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.38","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.52.10","@mariozechner/pi-tui":"0.52.10","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.989.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.10","@mariozechner/pi-coding-agent":"0.52.10","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.32.0","ollama":"^0.6.3","oxlint":"^1.47.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.4","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.3","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.12.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260212.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.13_1771039207526_0.25580721983146826","host":"s3://npm-registry-packages-npm-production"}},"2026.2.14":{"name":"openclaw","version":"2026.2.14","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.14","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"3f2c858bcfb42687f933a70ec7a7afd05d7df7c1","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.14.tgz","fileCount":5147,"integrity":"sha512-NHkuZqiHtWstoGNQIsXPIGKvCWKKjEtzOTRv4K1OjOJ5CAHAd0Gs7djyonxBIQz7KeX/JqrP8/4A63fIAmFY/Q==","signatures":[{"sig":"MEUCIGg7HNmigtnRSA2tFzSA6ay2aTDOeJnQehBZ0TMng0N/AiEAuMBbltJjKB4L1Gr3/npfFmWYvUYX9xmWjhiK9Prcrws=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52812040},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"c1feda14fdbef722ae3412b95163b6172ac2e153","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","tsgo:test":"tsgo -p tsconfig.test.json","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.7","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.39","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.52.12","@mariozechner/pi-tui":"0.52.12","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.990.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.12","@mariozechner/pi-coding-agent":"0.52.12","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.32.0","ollama":"^0.6.3","oxlint":"^1.47.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.4","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.3","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.12.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260214.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.14_1771124387457_0.03561374254753691","host":"s3://npm-registry-packages-npm-production"}},"2026.2.15":{"name":"openclaw","version":"2026.2.15","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.15","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"c766c080f85bc6b373d87b460c15de6f28696adc","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.15.tgz","fileCount":5466,"integrity":"sha512-5x+su0EI0OL2RmWU2jH6IW57SQAA8l5/4zuJQW4UBSURvKr7Kvsu6NEpuHiotJxqp1K2/mEZKH7nWYDThUz+RA==","signatures":[{"sig":"MEQCIHyKNJmjyXHYzuBQkKwHF3GEmdkA/hyN/M/F+X/AQsuxAiBg+ZSfKoTLahR1ney36lA59CxiFt8PZVapYS5rlFqj7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57315872},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.7","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"3fe22ea2fd18a8598ea15ac911422fd5b59baf12","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"cd apps/ios && xcodegen generate","ios:run":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc 'cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","tsgo:test":"tsgo -p tsconfig.test.json","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.39","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.52.12","@mariozechner/pi-tui":"0.52.12","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.990.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.52.12","@mariozechner/pi-coding-agent":"0.52.12","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.32.0","ollama":"^0.6.3","oxlint":"^1.47.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.4","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.3","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.13.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260215.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.15_1771214201609_0.15331852346516817","host":"s3://npm-registry-packages-npm-production"}},"2026.2.17":{"name":"openclaw","version":"2026.2.17","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.17","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"4c320db9eb8224e05d60a0fce3fb2ff2986ee263","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.17.tgz","fileCount":5618,"integrity":"sha512-OgblBbjR9aRxlRUa5DS9K02IxnMY+1GDDznKEcm8/N2FhakAItKEg5uv9ulI6Lr/rtIbublRhuk4a7ntYDxqIw==","signatures":[{"sig":"MEUCIQDMpyHE5hMU03FkqAYCJqDGuL/yGWpIbgUW0u81re/4PwIgSAN7BpObjpe4O0W5gtuoFpgZ4oHtZ+kcT7L83O/0VxA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60057622},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","form-data":"2.5.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.4","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"4134875c311fbb7f677fb9181a883431444cf3e9","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.39","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.53.0","@mariozechner/pi-tui":"0.53.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.992.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.53.0","@mariozechner/pi-coding-agent":"0.53.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.33.0","ollama":"^0.6.3","oxlint":"^1.48.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.4","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.2.3","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260217.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.17_1771382873517_0.8500938628474684","host":"s3://npm-registry-packages-npm-production"}},"2026.2.19":{"name":"openclaw","version":"2026.2.19","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.19","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"43d6f3aed86e40681b00eb6eebc8a4fb34d85841","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.19.tgz","fileCount":7676,"integrity":"sha512-7BVEmjgGHbNXa0pONQkSl3nE6PTUm5CxJDYycV99+siGOPvWTfKapxJ4I/+gqVnt6fZXdAS4KgJV5CcnwwN1PQ==","signatures":[{"sig":"MEUCIEZGnhMMoh9kfQKVemRToEVjrFMacDIR0b5YdQBvTrKkAiEArt3wnkMbAzSkfRMWnGCIGJl/6swBayol8OOQV1MEXog=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67930356},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"243549986275a9a7ff9021bc57360ddf041a6835","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.39","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.53.0","@mariozechner/pi-tui":"0.53.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.993.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.53.0","@mariozechner/pi-coding-agent":"0.53.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.33.0","ollama":"^0.6.3","oxlint":"^1.48.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.5","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260219.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.19_1771517132653_0.484899632419719","host":"s3://npm-registry-packages-npm-production"}},"2026.2.19-1":{"name":"openclaw","version":"2026.2.19-1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.19-1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"995cff46265f18964a252e63a9ce3c39768144a6","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.19-1.tgz","fileCount":7676,"integrity":"sha512-WKLyElBNEvvVeRw9Y7yv4nJibXAf6e6ehoZZIo5q3hGEDQc70rKUC2uzMrEsIdeMwN4XmLd9Gu8AYWSmhf2VNQ==","signatures":[{"sig":"MEYCIQDiwciiUk/X/rBffatoIxdn6GYXQn/0Xn3HItCwMczBkQIhAMpCwgMoL4HcFHVqu3DkjBAqGjNGBJOw3O9mnP4Cr5F0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67931434},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"45d9b2069264451d005ae612f2044e7deb8b44c0","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.39","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.53.0","@mariozechner/pi-tui":"0.53.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.993.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.53.0","@mariozechner/pi-coding-agent":"0.53.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.33.0","ollama":"^0.6.3","oxlint":"^1.48.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.5","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260219.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.19-1_1771519694257_0.8513621429691156","host":"s3://npm-registry-packages-npm-production"}},"2026.2.19-2":{"name":"openclaw","version":"2026.2.19-2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.19-2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"60bafa36d6eac7784a3a95cd2ca3e305ab0ac26a","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.19-2.tgz","fileCount":7676,"integrity":"sha512-nM6gPesq1rTkJMP0RXQH3iq776Dsoht1Jsv+tKtk40k4qc09aFk3Vfu7OsEFAMmqIO4LJUmh0Z8uZ1VOXvER4w==","signatures":[{"sig":"MEUCIQDRhnBKuFSxxg0w9hM2vnJvGKGA+m+87o3Qyvqn6P/nZAIgL0Ywz52pJksDcB1dV/Fs5TGtZ1tiCyDPnjaMZUG0vmU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67931179},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"45d9b2069264451d005ae612f2044e7deb8b44c0","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","signal-utils":"^0.21.1","@buape/carbon":"0.14.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","proper-lockfile":"^4.1.2","qrcode-terminal":"^0.12.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.39","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.53.0","@mariozechner/pi-tui":"0.53.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.993.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.53.0","@mariozechner/pi-coding-agent":"0.53.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.33.0","ollama":"^0.6.3","oxlint":"^1.48.0","tsdown":"^0.20.3","vitest":"^4.0.18","rolldown":"1.0.0-rc.5","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/proper-lockfile":"^4.1.4","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260219.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.19-2_1771520524749_0.8821506868819877","host":"s3://npm-registry-packages-npm-production"}},"2026.2.21":{"name":"openclaw","version":"2026.2.21","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.21","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"44c361725c46ea226bad81c75ada388a134c92fc","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.21.tgz","fileCount":7811,"integrity":"sha512-8YFnp511Qb/MvbVMpC32jqyyOU3rXeB+7Z1GD8gqP6oCCZZKYC0nqMHG7YCTS6y8RxQAulZ1EmV4/FelzxZt+w==","signatures":[{"sig":"MEQCIF00Qpzs9wDXQ4zlvC7jfbEXQ/AB+0qic4F/1FaWceE2AiAYlixzuyEVUzO4ozW6709MKZuLsabaXG5PsaMBfpVZ7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69951678},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"d9844c6afa2d6c6c8a7a4fb3b004b5c0456d184e","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","opusscript":"^0.0.8","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","@discordjs/opus":"^0.10.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.54.0","@mariozechner/pi-tui":"0.54.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.995.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.54.0","@mariozechner/pi-coding-agent":"0.54.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.34.0","oxlint":"^1.49.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260221.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.21_1771689720437_0.5655021736064632","host":"s3://npm-registry-packages-npm-production"}},"2026.2.21-1":{"name":"openclaw","version":"2026.2.21-1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.21-1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"a8d5867c94deb8544977b6e1115c921859958527","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.21-1.tgz","fileCount":7811,"integrity":"sha512-OCZ7idnkoOBV3QIsgsvfhDmandJsme6Of0drOoE8dEXi4wJ+qsypDN1F/a56tVnCrJwG1qsYDXGwVn/e5MZ2Xg==","signatures":[{"sig":"MEQCICyhxGmoh2xbXsxvKV7j6o5I42dAelT280idU+iY8RxoAiBMRaO98lZAtWeD9xgznUV5biGhYU8OnDfY9beo9kobcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69961964},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"e93ba6ce2af3c7cecf36e3fe347a394b21bafcb1","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","opusscript":"^0.0.8","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","@discordjs/opus":"^0.10.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.54.0","@mariozechner/pi-tui":"0.54.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.995.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.54.0","@mariozechner/pi-coding-agent":"0.54.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.34.0","oxlint":"^1.49.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260221.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.21-1_1771692177688_0.6803595599065377","host":"s3://npm-registry-packages-npm-production"}},"2026.2.21-2":{"name":"openclaw","version":"2026.2.21-2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.21-2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"a1b1f20f4e8d038e876263648b570982feecf25d","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.21-2.tgz","fileCount":9791,"integrity":"sha512-94A3zydfHDcX8SxwExWfqDsGTn/DJRPKBttyj1Zmj1vcJLHXge/zG1zvfD7hzJaKxuj1nPx6Lxfiw0H777IhZQ==","signatures":[{"sig":"MEUCIEzmuUQEK+bt4t2Ey74wgN8sI1k3rdg9TPW7eVOG03n8AiEA9gRO1U/XTYx9ZKYlAt6XvyhBbKCoqVRSLjeP8Yq8WzA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77263324},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"35a57bc940833a6c1f594b2308e349e5ee0148db","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","opusscript":"^0.0.8","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","@discordjs/opus":"^0.10.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.54.0","@mariozechner/pi-tui":"0.54.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.995.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.54.0","@mariozechner/pi-coding-agent":"0.54.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.34.0","oxlint":"^1.49.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260221.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.21-2_1771693832396_0.8459503211473087","host":"s3://npm-registry-packages-npm-production"}},"2026.2.22":{"name":"openclaw","version":"2026.2.22","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.22","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"c02e06a1c005041c08a89c9a090ebbb8eb481d67","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.22.tgz","fileCount":7920,"integrity":"sha512-Bd+0qKfXL5sjzxnyjAVywIkGgl5riY2HOqWUA829+VRIih3TRLYOVXaO7rHb9getXR5jSWwiLliNloPXzcrfxw==","signatures":[{"sig":"MEUCIHiHBVKtZg/FEH3NScN9U20i33lXHNrt0kggjj7GYRkFAiEA4sUoOCiCeyPA4ciOtT5wQUSTNZzvht4m6N4m5B0M4aI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71564750},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"70dd6a30e7935691fc487cd78fbf52cde4eec9d7","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.0.8","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.54.1","@mariozechner/pi-tui":"0.54.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.995.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.54.1","@mariozechner/pi-coding-agent":"0.54.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.34.0","oxlint":"^1.49.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260222.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.22_1771806986803_0.30431822976562817","host":"s3://npm-registry-packages-npm-production"}},"2026.2.22-1":{"name":"openclaw","version":"2026.2.22-1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.22-1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"3095343d90df48a1163b8c9dbe6e4c8fa1f33378","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.22-1.tgz","fileCount":9902,"integrity":"sha512-I6t7qLufdpWMPcUmlLcuIcAOdMVB8dfg2QtAA1/eAGvCumftw2tfFsBEj8ts5Sz23CPK3BiWQpIoP8SUqGBgIQ==","signatures":[{"sig":"MEQCIBq1Us9MuzvVu6IDpAGU33AtI+lpcJ4ZxWVUUGJlkVo2AiB+VAOcoxZssPuScF5NvcWKhWqBxyYtDOiHT0GGf4bPRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78857380},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"bac26b4472873192d2aa40a159f74435e9c93b96","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.0.8","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.54.1","@mariozechner/pi-tui":"0.54.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.995.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.54.1","@mariozechner/pi-coding-agent":"0.54.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.34.0","oxlint":"^1.49.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260222.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.22-1_1771808647602_0.8564571946133495","host":"s3://npm-registry-packages-npm-production"}},"2026.2.22-2":{"name":"openclaw","version":"2026.2.22-2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.22-2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"e42433b28801a4cc8aa4a42cc00bff69cd95fad6","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.22-2.tgz","fileCount":9902,"integrity":"sha512-dccxOCj4In709eTr56CK3j2KvlgrHK9LGcME+/3jnKDp+P29TRDagBXv7yw3YVh/Gqvblm3g/7eSmbjV+EmKXg==","signatures":[{"sig":"MEUCIQC1eI5HTHrSGngRmWS/LmtmTThmdUSVPU88lgQWMYbH8gIgE7mhlfmPLxQNOsmhSvjRalNGPEzKKVlcHU6va5X+cfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78856963},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"45febecf2a2d91fd1a378bb2cae38ec21e71857e","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.0.8","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.54.1","@mariozechner/pi-tui":"0.54.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.995.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.54.1","@mariozechner/pi-coding-agent":"0.54.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.34.0","oxlint":"^1.49.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260222.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.22-2_1771809560767_0.8352829064257146","host":"s3://npm-registry-packages-npm-production"}},"2026.2.23-beta.1":{"name":"openclaw","version":"2026.2.23-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.23-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"e5d198df5f79fbdf64a70842bf72292a9858d28a","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.23-beta.1.tgz","fileCount":9943,"integrity":"sha512-TUZnLeQ9VQdaMFxPw3bu1WHrPeGhzNiUD1PoYYc3JfoTVGeKEv/lEgApapWH5oZKFPXs1hzX3YfrP+Jfw8HW/g==","signatures":[{"sig":"MEQCIBn/gd+VnyhYgH7uhU0R8ZTU3ROQ0EhioikXyFTHM0LGAiAzY+xHStzCQeBrDShQ8vSqQWEWc3CN45+VRlkbwbp65w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79825307},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"fd10286819b3826659ebc14dc5063295b8036090","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.0.8","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.54.1","@mariozechner/pi-tui":"0.54.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.995.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.54.1","@mariozechner/pi-coding-agent":"0.54.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.34.0","oxlint":"^1.49.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260222.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.23-beta.1_1771908941940_0.09854494707345873","host":"s3://npm-registry-packages-npm-production"}},"2026.2.23":{"name":"openclaw","version":"2026.2.23","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.23","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"2d0f7ba070fb8ba23de4b1bd77c0abe50e77486a","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.23.tgz","fileCount":9943,"integrity":"sha512-7I7G898212v3OzUidgM8kZdZYAziT78Dc5zgeqsV2tfCbINtHK0Pdc2rg2eDLoDYAcheLh0fvH5qn/15Yu9q7A==","signatures":[{"sig":"MEUCIEBlJcRV6KhlQp6JSjhAjx+7sYpHecfkILzCLLjm7u0ZAiEAqx+AHolLsEFvz6nVg939B3nr0pSs5fTWvuYL89YscOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":79825827},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"b817600533129771ace2801d7c05901c7f850fb8","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.0.8","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.54.1","@mariozechner/pi-tui":"0.54.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.995.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.54.1","@mariozechner/pi-coding-agent":"0.54.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.34.0","oxlint":"^1.49.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.14.2","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260222.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.23_1771911617087_0.646467600513017","host":"s3://npm-registry-packages-npm-production"}},"2026.2.24":{"name":"openclaw","version":"2026.2.24","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.24","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"aba5c1ffef749add66a3a68645f0914df59a660e","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.24.tgz","fileCount":7950,"integrity":"sha512-a6zrcS6v5tUWqzsFh5cNtyu5+Tra1UW5yvPtYhRYCKSS/q6lXrLu+dj0ylJPOHRPAho2alZZL1gw1Qd2hAd2sQ==","signatures":[{"sig":"MEYCIQCj2fTkv6tb/HVA4kmbWnQQbgXGJkhuyoH/otiZQt06PAIhALLUwDOv+buD0nbYOtojuOYmmUR5uFleNJIQaHTrZ4Yb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72967114},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"df9a474891d48084a452a2f809fb239dc751c323","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","@snazzah/davey":"^0.1.9","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.55.0","@mariozechner/pi-tui":"0.55.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.997.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.55.0","@mariozechner/pi-coding-agent":"0.55.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.35.0","oxlint":"^1.50.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.15.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260224.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.24_1771987819178_0.8339033156618398","host":"s3://npm-registry-packages-npm-production"}},"2026.2.25-beta.1":{"name":"openclaw","version":"2026.2.25-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.25-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"4705b3c5bda64abd3da897a4ff386becafe2055e","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.25-beta.1.tgz","fileCount":7971,"integrity":"sha512-pZIj4RqKo/F6ILMop6q9kDPaRePBwbc8tPUeUgjP42kH3TyeqhD88U4MxfwSLN4NXlSkqcY0kufvSPOqHWQBmg==","signatures":[{"sig":"MEQCICuPrJkpaj9S8nF0e+H//PQgMIq7SIzfSWUAF3lYaK6lAiA3eyvvWedKgWJvBl7KRvKpVH3CHGPrUYgJAph55d9SRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73336706},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"fdea7415ccd4a6de5deeea70f7cc97721b469fdb","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","@snazzah/davey":"^0.1.9","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.55.1","@mariozechner/pi-tui":"0.55.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.998.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.55.1","@mariozechner/pi-coding-agent":"0.55.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.35.0","oxlint":"^1.50.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.15.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260225.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.25-beta.1_1772077425455_0.17957280302876333","host":"s3://npm-registry-packages-npm-production"}},"2026.2.25":{"name":"openclaw","version":"2026.2.25","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.25","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"f335340ad1666cfdb6d50e6ea923d14ba8842a32","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.25.tgz","fileCount":10007,"integrity":"sha512-eZmWzDMxiu6Xzcw/a1XEefe7dhUrEOAi5HisyrvBtuzV4RT/zcT330KlAL0t24qYkHMD73QGEhZwTju0bKVzLg==","signatures":[{"sig":"MEUCIQDvwvgYgemSegWfSNYll8ev+diAW6SILx8MvgCVaB86DwIgYQD1voX5nPJnrkX3EHzat59AanZjqvyfyBYz33CA9tU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80774646},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.1","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"4b5d4a4c660d05e4bd73f0e11123e68fd9664432","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","@snazzah/davey":"^0.1.9","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.55.1","@mariozechner/pi-tui":"0.55.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.998.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.55.1","@mariozechner/pi-coding-agent":"0.55.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.35.0","oxlint":"^1.50.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.15.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260225.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.25_1772079393172_0.27057646040191186","host":"s3://npm-registry-packages-npm-production"}},"2026.2.26":{"name":"openclaw","version":"2026.2.26","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.2.26","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"cd9b46d9b3a654682904a6d87cc22571637cfac5","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.2.26.tgz","fileCount":10125,"integrity":"sha512-SAGBigUXYNGl+zPZCR3XkdMZ3wNEYsDybxnFcTZS90aE7Ztrb/avXEAzxv1XcR8xqDxIZFVZv+abHDRO+Nv1vA==","signatures":[{"sig":"MEUCIQCIHq/u1a6LoadhubvNbrShEkf/ivvX60UF2uP6CTUsKwIgIdoHO3xl6kjRO5EtsmdZWfff3gbE1ncHesL+WBsSu0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82933464},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"bc507080577c620243617e8fadd294bec3efa252","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope && pnpm check:host-env-policy:swift","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.40.1","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.4.624","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","@snazzah/davey":"^0.1.9","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.55.1","@mariozechner/pi-tui":"0.55.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.998.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.55.1","@mariozechner/pi-coding-agent":"0.55.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.35.0","oxlint":"^1.50.0","tsdown":"^0.20.3","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.1","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.24.0","oxlint-tsgolint":"^0.15.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260225.1"},"peerDependencies":{"node-llama-cpp":"3.15.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.2.26_1772150350064_0.7985748225311482","host":"s3://npm-registry-packages-npm-production"}},"2026.3.1-beta.1":{"name":"openclaw","version":"2026.3.1-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.1-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"83ded9cf648816e3f454f8b8403e926699879dca","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.1-beta.1.tgz","fileCount":8219,"integrity":"sha512-JskXL9dYnGx3KveZgNYL5TAabTdHB9nrf+SJsA7FT0P1mhPUQUNdnYy6WYsacGmxFWLQ0nfc53umHk4JCSvyQw==","signatures":[{"sig":"MEUCIFehWnYDYZBu5TLJBHdkkfAEJmVhZfUoHBD0c/1iFwp5AiEAx5E48WFqSnqCUPXrHcaNPkDZE09fFsT+guAqMcuUWgI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87233562},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"eeb72097ba8e124c56f7a0f8ff9304401174a42c","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope && pnpm check:host-env-policy:swift","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.3","grammy":"^1.41.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","@snazzah/davey":"^0.1.9","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","node-domexception":"npm:@nolyfill/domexception@^1.0.28","@mariozechner/pi-ai":"0.55.3","google-auth-library":"10.6.1","@mariozechner/pi-tui":"0.55.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1000.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.55.3","@mariozechner/pi-coding-agent":"0.55.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.35.0","oxlint":"^1.50.0","tsdown":"0.21.0-beta.2","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.3","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.15.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260301.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.1-beta.1_1772426248140_0.16137025358590584","host":"s3://npm-registry-packages-npm-production"}},"2026.3.1":{"name":"openclaw","version":"2026.3.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"3da88bf811874a07455980ddd988c0cf9897dd7b","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.1.tgz","fileCount":10248,"integrity":"sha512-7Pt5ykhaYa8TYpLWnBhaMg6Lp6kfk3rMKgqJ3WWESKM9BizYu1fkH/rF9BLeXlsNASgZdLp4oR8H0XfvIIoXIg==","signatures":[{"sig":"MEQCIE++3JRuvHgUjDekmBxL6j5LnHEy0TWgVtT+3BDsQYtxAiA8mWzJhw2qC92LtJMDgGqofR5JD8FwDw8dmCVIFaMMsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94687297},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"}},"gitHead":"2a8ac974e18e57889ac71cb943ae2df8a4202428","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope && pnpm check:host-env-policy:swift","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.6.1","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.3","grammy":"^1.41.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","@snazzah/davey":"^0.1.9","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","node-domexception":"npm:@nolyfill/domexception@^1.0.28","@mariozechner/pi-ai":"0.55.3","google-auth-library":"10.6.1","@mariozechner/pi-tui":"0.55.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1000.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.55.3","@mariozechner/pi-coding-agent":"0.55.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.35.0","oxlint":"^1.50.0","tsdown":"0.21.0-beta.2","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.3","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.15.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260301.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.1_1772427049714_0.1712951835249248","host":"s3://npm-registry-packages-npm-production"}},"2026.3.2-beta.1":{"name":"openclaw","version":"2026.3.2-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.2-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"da25d2559c43725e90747e4e8f627b29f466daae","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.2-beta.1.tgz","fileCount":8558,"integrity":"sha512-m9n00Kv1K3XGfgYYpYuhIWdQs54FLfM5oTwr4nMmtxvR0kx+Kaug6/BO6jSz5MDAEYGr7NjH0rSk2eD+KkK6iA==","signatures":[{"sig":"MEYCIQCUv65LjeKnXh0gpTcGyNOr/xXCmI1CnDfHj2YEPHb41QIhAPyC07h+RGo1blw7BQ5sJ71GKQBt5kqSE6xxFJ+YWkPv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90501155},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"}},"gitHead":"eb8a8840d65fd082bdb4712d132fb7d262e24732","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope && pnpm check:host-env-policy:swift","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:channels":"vitest run --config vitest.channels.config.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"vitest run --config vitest.extensions.config.ts","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.3","grammy":"^1.41.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7-alpha.2","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","@snazzah/davey":"^0.1.9","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","node-domexception":"npm:@nolyfill/domexception@^1.0.28","@mariozechner/pi-ai":"0.55.3","google-auth-library":"10.6.1","@mariozechner/pi-tui":"0.55.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1000.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.55.3","@mariozechner/pi-coding-agent":"0.55.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.35.0","oxlint":"^1.50.0","tsdown":"0.21.0-beta.2","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.3","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.15.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260301.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.2-beta.1_1772509349615_0.9927235914078409","host":"s3://npm-registry-packages-npm-production"}},"2026.3.2":{"name":"openclaw","version":"2026.3.2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"5542393d5b00dafb7e90971833b39c12340e08d5","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.2.tgz","fileCount":10592,"integrity":"sha512-Gkqx24m7PF1DUXPI968DuC9n52lTZ5hI3X5PIi0HosC7J7d6RLkgVppj1mxvgiQAWMp41E41elvoi/h4KBjFcQ==","signatures":[{"sig":"MEQCIG3g80xypqVNHelZiGOh31fvR9CSTu7w78pIUvFrUop8AiAjXJcqvRA6BC3nsmGvk66hqOJJvPmZ2arZ8K6ZpG4W5A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97945318},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.9","hono":"4.11.10","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.6","request-promise":"npm:@cypress/request-promise@5.0.0","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"}},"gitHead":"85377a28175695c224f6589eb5c1460841ecd65c","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope && pnpm check:host-env-policy:swift","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.android/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip && pnpm deadcode:report:ci:ts-prune && pnpm deadcode:report:ci:ts-unused","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --no-progress","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:channels":"vitest run --config vitest.channels.config.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"vitest run --config vitest.extensions.config.ts","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && tsdown && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.9","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.3","grammy":"^1.41.0","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7-alpha.2","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.0.1","@slack/web-api":"^7.14.1","@snazzah/davey":"^0.1.9","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.40","https-proxy-agent":"^7.0.6","node-domexception":"npm:@nolyfill/domexception@^1.0.28","@mariozechner/pi-ai":"0.55.3","google-auth-library":"10.6.1","@mariozechner/pi-tui":"0.55.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1000.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.14.1","@mariozechner/pi-agent-core":"0.55.3","@mariozechner/pi-coding-agent":"0.55.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","oxfmt":"0.35.0","oxlint":"^1.50.0","tsdown":"0.21.0-beta.2","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.3","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.15.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260301.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"@discordjs/opus":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.2_1772512613935_0.20737906468509992","host":"s3://npm-registry-packages-npm-production"}},"2026.3.7-beta.1":{"name":"openclaw","version":"2026.3.7-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.7-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"dceb23e438d94511a55fe00e95e02332b52aa5d1","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.7-beta.1.tgz","fileCount":11389,"integrity":"sha512-Qju8lZWcZijDWDsu7evkO6UIFWfjW4K6LqAU6w+r7Rb4NFbQDAvToY2UQQc4Ej2TCyl0/iSH+NRkxtrUqPjHNw==","signatures":[{"sig":"MEUCIQCB/WajX34exuepqPHeJr8pftHA7WPsa4Bsm1p/Ox9l0AIgS89I1qvNX0gaM/tZ96AdHFeg1IUY5O/4ZmD3rv474LM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139283114},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/acpx":{"types":"./dist/plugin-sdk/acpx.d.ts","default":"./dist/plugin-sdk/acpx.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/lobster":{"types":"./dist/plugin-sdk/lobster.d.ts","default":"./dist/plugin-sdk/lobster.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/whatsapp":{"types":"./dist/plugin-sdk/whatsapp.d.ts","default":"./dist/plugin-sdk/whatsapp.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/open-prose":{"types":"./dist/plugin-sdk/open-prose.d.ts","default":"./dist/plugin-sdk/open-prose.js"},"./plugin-sdk/talk-voice":{"types":"./dist/plugin-sdk/talk-voice.d.ts","default":"./dist/plugin-sdk/talk-voice.js"},"./plugin-sdk/test-utils":{"types":"./dist/plugin-sdk/test-utils.d.ts","default":"./dist/plugin-sdk/test-utils.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/device-pair":{"types":"./dist/plugin-sdk/device-pair.d.ts","default":"./dist/plugin-sdk/device-pair.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/copilot-proxy":{"types":"./dist/plugin-sdk/copilot-proxy.d.ts","default":"./dist/plugin-sdk/copilot-proxy.js"},"./plugin-sdk/phone-control":{"types":"./dist/plugin-sdk/phone-control.d.ts","default":"./dist/plugin-sdk/phone-control.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/qwen-portal-auth":{"types":"./dist/plugin-sdk/qwen-portal-auth.d.ts","default":"./dist/plugin-sdk/qwen-portal-auth.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/minimax-portal-auth":{"types":"./dist/plugin-sdk/minimax-portal-auth.d.ts","default":"./dist/plugin-sdk/minimax-portal-auth.js"},"./plugin-sdk/google-gemini-cli-auth":{"types":"./dist/plugin-sdk/google-gemini-cli-auth.d.ts","default":"./dist/plugin-sdk/google-gemini-cli-auth.js"}},"gitHead":"d9670093cb39f677f4c72d7b5d70818548412b67","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope && pnpm check:host-env-policy:swift","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:channels":"vitest run --config vitest.channels.config.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"vitest run --config vitest.extensions.config.ts","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.41.1","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7-alpha.2","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.55.3","@mariozechner/pi-tui":"0.55.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1004.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@mariozechner/pi-agent-core":"0.55.3","@mariozechner/pi-coding-agent":"0.55.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","oxfmt":"0.36.0","oxlint":"^1.51.0","tsdown":"0.21.0","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.5","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260307.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.7-beta.1_1772945207236_0.8014542052815521","host":"s3://npm-registry-packages-npm-production"}},"2026.3.7":{"name":"openclaw","version":"2026.3.7","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.7","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"f9bb43cd3bffcb3967f8183802c81e2f44b0b12e","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.7.tgz","fileCount":11390,"integrity":"sha512-ZIw4EE+rVZa1EbaNt4tUTvSxAgZVxhUFQrpGUhcbgw5+4xyV2RtMxdxuLK4H04XK+RxS7AixlpYfg0XXX2ZPoQ==","signatures":[{"sig":"MEUCIBocs2Zv8p2QCT/8KKtKn9C1RXtuHBNEwT1Gsi5GEO64AiEAl6ZhJ2QTK0Y5ATkB2Hy4AK5uttF6695j2Rf8/p3GlbY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139327955},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/acpx":{"types":"./dist/plugin-sdk/acpx.d.ts","default":"./dist/plugin-sdk/acpx.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/lobster":{"types":"./dist/plugin-sdk/lobster.d.ts","default":"./dist/plugin-sdk/lobster.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/whatsapp":{"types":"./dist/plugin-sdk/whatsapp.d.ts","default":"./dist/plugin-sdk/whatsapp.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/open-prose":{"types":"./dist/plugin-sdk/open-prose.d.ts","default":"./dist/plugin-sdk/open-prose.js"},"./plugin-sdk/talk-voice":{"types":"./dist/plugin-sdk/talk-voice.d.ts","default":"./dist/plugin-sdk/talk-voice.js"},"./plugin-sdk/test-utils":{"types":"./dist/plugin-sdk/test-utils.d.ts","default":"./dist/plugin-sdk/test-utils.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/device-pair":{"types":"./dist/plugin-sdk/device-pair.d.ts","default":"./dist/plugin-sdk/device-pair.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/copilot-proxy":{"types":"./dist/plugin-sdk/copilot-proxy.d.ts","default":"./dist/plugin-sdk/copilot-proxy.js"},"./plugin-sdk/phone-control":{"types":"./dist/plugin-sdk/phone-control.d.ts","default":"./dist/plugin-sdk/phone-control.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/qwen-portal-auth":{"types":"./dist/plugin-sdk/qwen-portal-auth.d.ts","default":"./dist/plugin-sdk/qwen-portal-auth.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/minimax-portal-auth":{"types":"./dist/plugin-sdk/minimax-portal-auth.d.ts","default":"./dist/plugin-sdk/minimax-portal-auth.js"},"./plugin-sdk/google-gemini-cli-auth":{"types":"./dist/plugin-sdk/google-gemini-cli-auth.d.ts","default":"./dist/plugin-sdk/google-gemini-cli-auth.js"}},"gitHead":"42a1394c5c0fb86706f61598e68e0db30e8c99c1","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope && pnpm check:host-env-policy:swift","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:channels":"vitest run --config vitest.channels.config.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"vitest run --config vitest.extensions.config.ts","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.10","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.41.1","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7-alpha.2","strip-ansi":"^7.2.0","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.55.3","@mariozechner/pi-tui":"0.55.3","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1004.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@mariozechner/pi-agent-core":"0.55.3","@mariozechner/pi-coding-agent":"0.55.3","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","oxfmt":"0.36.0","oxlint":"^1.51.0","tsdown":"0.21.0","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.5","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260307.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.7_1772948760152_0.3461830827272563","host":"s3://npm-registry-packages-npm-production"}},"2026.3.8-beta.1":{"name":"openclaw","version":"2026.3.8-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.8-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"effe1fd5316c089c59888834e488f0c960a05ccb","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.8-beta.1.tgz","fileCount":9400,"integrity":"sha512-NBXec3xNgQvkwn5O9sz/BK1PWPjvgvvnaN0Mf85QjbZx3iR+NO7gZyr2kpdLB9o62IDz5QjLX0bg1X7BaCag+A==","signatures":[{"sig":"MEUCIQC+tW+yFDNw5aJSJ8OU88TwKF5em4p6wwBLLQxiIhYj4gIgZF7MpT3aldgoTQ0F+1EOg634PoSKLw8tHsyg9TnDRV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133424302},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/acpx":{"types":"./dist/plugin-sdk/acpx.d.ts","default":"./dist/plugin-sdk/acpx.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/lobster":{"types":"./dist/plugin-sdk/lobster.d.ts","default":"./dist/plugin-sdk/lobster.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/whatsapp":{"types":"./dist/plugin-sdk/whatsapp.d.ts","default":"./dist/plugin-sdk/whatsapp.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/open-prose":{"types":"./dist/plugin-sdk/open-prose.d.ts","default":"./dist/plugin-sdk/open-prose.js"},"./plugin-sdk/talk-voice":{"types":"./dist/plugin-sdk/talk-voice.d.ts","default":"./dist/plugin-sdk/talk-voice.js"},"./plugin-sdk/test-utils":{"types":"./dist/plugin-sdk/test-utils.d.ts","default":"./dist/plugin-sdk/test-utils.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/device-pair":{"types":"./dist/plugin-sdk/device-pair.d.ts","default":"./dist/plugin-sdk/device-pair.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/copilot-proxy":{"types":"./dist/plugin-sdk/copilot-proxy.d.ts","default":"./dist/plugin-sdk/copilot-proxy.js"},"./plugin-sdk/phone-control":{"types":"./dist/plugin-sdk/phone-control.d.ts","default":"./dist/plugin-sdk/phone-control.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/qwen-portal-auth":{"types":"./dist/plugin-sdk/qwen-portal-auth.d.ts","default":"./dist/plugin-sdk/qwen-portal-auth.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/minimax-portal-auth":{"types":"./dist/plugin-sdk/minimax-portal-auth.d.ts","default":"./dist/plugin-sdk/minimax-portal-auth.js"},"./plugin-sdk/google-gemini-cli-auth":{"types":"./dist/plugin-sdk/google-gemini-cli-auth.d.ts","default":"./dist/plugin-sdk/google-gemini-cli-auth.js"}},"gitHead":"2d55ad05f397d9a20df0f677498f60094a59b749","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:channels":"vitest run --config vitest.channels.config.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"vitest run --config vitest.extensions.config.ts","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.41.1","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.57.1","@mariozechner/pi-tui":"0.57.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1004.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@mariozechner/pi-agent-core":"0.57.1","@mariozechner/pi-coding-agent":"0.57.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","oxfmt":"0.36.0","oxlint":"^1.51.0","tsdown":"0.21.0","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.5","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260308.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.8-beta.1_1773039429557_0.09056131166647385","host":"s3://npm-registry-packages-npm-production"}},"2026.3.8":{"name":"openclaw","version":"2026.3.8","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.8","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"a64b587b81b2844db40110f88f97f4700a99d933","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.8.tgz","fileCount":9390,"integrity":"sha512-e5Rk2Aj55sD/5LyX94mdYCQj7zpHXo0xIZsl+k140+nRopePfPAxC7nsu0V/NyypPRtaotP1riFfzK7IhaYkuQ==","signatures":[{"sig":"MEUCIQDOCiQ11zm95ALTLlfRoLhyJfoTh+sUpnVZBFCafkWTKQIgDxkVWeluVJ+l6x8BN0DRXcgvvqicr6+j1LN0+iraj1o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133372429},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.10","hono":"4.12.5","request":"npm:@cypress/request@3.0.10","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/acpx":{"types":"./dist/plugin-sdk/acpx.d.ts","default":"./dist/plugin-sdk/acpx.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/lobster":{"types":"./dist/plugin-sdk/lobster.d.ts","default":"./dist/plugin-sdk/lobster.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/whatsapp":{"types":"./dist/plugin-sdk/whatsapp.d.ts","default":"./dist/plugin-sdk/whatsapp.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/open-prose":{"types":"./dist/plugin-sdk/open-prose.d.ts","default":"./dist/plugin-sdk/open-prose.js"},"./plugin-sdk/talk-voice":{"types":"./dist/plugin-sdk/talk-voice.d.ts","default":"./dist/plugin-sdk/talk-voice.js"},"./plugin-sdk/test-utils":{"types":"./dist/plugin-sdk/test-utils.d.ts","default":"./dist/plugin-sdk/test-utils.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/device-pair":{"types":"./dist/plugin-sdk/device-pair.d.ts","default":"./dist/plugin-sdk/device-pair.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/copilot-proxy":{"types":"./dist/plugin-sdk/copilot-proxy.d.ts","default":"./dist/plugin-sdk/copilot-proxy.js"},"./plugin-sdk/phone-control":{"types":"./dist/plugin-sdk/phone-control.d.ts","default":"./dist/plugin-sdk/phone-control.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/qwen-portal-auth":{"types":"./dist/plugin-sdk/qwen-portal-auth.d.ts","default":"./dist/plugin-sdk/qwen-portal-auth.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/minimax-portal-auth":{"types":"./dist/plugin-sdk/minimax-portal-auth.d.ts","default":"./dist/plugin-sdk/minimax-portal-auth.js"},"./plugin-sdk/google-gemini-cli-auth":{"types":"./dist/plugin-sdk/google-gemini-cli-auth.d.ts","default":"./dist/plugin-sdk/google-gemini-cli-auth.js"}},"gitHead":"3caab9260cb0a0064e6a37b2de3bedc8a547e599","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:open":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:channels":"vitest run --config vitest.channels.config.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"vitest run --config vitest.extensions.config.ts","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.41.1","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.0","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.0","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.41","https-proxy-agent":"^7.0.6","@mariozechner/pi-ai":"0.57.1","@mariozechner/pi-tui":"0.57.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1004.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.15.0","@mariozechner/pi-agent-core":"0.57.1","@mariozechner/pi-coding-agent":"0.57.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","oxfmt":"0.36.0","oxlint":"^1.51.0","tsdown":"0.21.0","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.3.5","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260308.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.8_1773042283235_0.260637023100454","host":"s3://npm-registry-packages-npm-production"}},"2026.3.11-beta.1":{"name":"openclaw","version":"2026.3.11-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.11-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"84d7b6f3085ffddd55f5148500b45a3466a24bd7","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.11-beta.1.tgz","fileCount":9202,"integrity":"sha512-S1kSeSjBKMtQ2A4exa8Opwq0WbfHKrJYCXZBDh06mxx2S21vjrc0AdHvyGjPJcZsPVivcbeVHK2v7/TqY0KXyA==","signatures":[{"sig":"MEUCIGRbBvguy93+jCLy0I1OlBx6nO8Ga0gJZhmRWLt1HKX6AiEAnLsN8gomO94ndc6vMTpMj3w/14hG1REJn39nzq8qXpw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136480598},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.11","hono":"4.12.7","request":"npm:@cypress/request@3.0.10","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/acpx":{"types":"./dist/plugin-sdk/acpx.d.ts","default":"./dist/plugin-sdk/acpx.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/lobster":{"types":"./dist/plugin-sdk/lobster.d.ts","default":"./dist/plugin-sdk/lobster.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/whatsapp":{"types":"./dist/plugin-sdk/whatsapp.d.ts","default":"./dist/plugin-sdk/whatsapp.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/open-prose":{"types":"./dist/plugin-sdk/open-prose.d.ts","default":"./dist/plugin-sdk/open-prose.js"},"./plugin-sdk/talk-voice":{"types":"./dist/plugin-sdk/talk-voice.d.ts","default":"./dist/plugin-sdk/talk-voice.js"},"./plugin-sdk/test-utils":{"types":"./dist/plugin-sdk/test-utils.d.ts","default":"./dist/plugin-sdk/test-utils.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/device-pair":{"types":"./dist/plugin-sdk/device-pair.d.ts","default":"./dist/plugin-sdk/device-pair.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/copilot-proxy":{"types":"./dist/plugin-sdk/copilot-proxy.d.ts","default":"./dist/plugin-sdk/copilot-proxy.js"},"./plugin-sdk/phone-control":{"types":"./dist/plugin-sdk/phone-control.d.ts","default":"./dist/plugin-sdk/phone-control.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/qwen-portal-auth":{"types":"./dist/plugin-sdk/qwen-portal-auth.d.ts","default":"./dist/plugin-sdk/qwen-portal-auth.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/minimax-portal-auth":{"types":"./dist/plugin-sdk/minimax-portal-auth.d.ts","default":"./dist/plugin-sdk/minimax-portal-auth.js"},"./plugin-sdk/google-gemini-cli-auth":{"types":"./dist/plugin-sdk/google-gemini-cli-auth.d.ts","default":"./dist/plugin-sdk/google-gemini-cli-auth.js"}},"gitHead":"b125c3ba065752c493bb763ac2f0a5e82ed3d0ae","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:channels":"vitest run --config vitest.channels.config.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"vitest run --config vitest.extensions.config.ts","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","hono":"4.12.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.41.1","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.1","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@mariozechner/pi-ai":"0.57.1","@mariozechner/pi-tui":"0.57.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1007.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@mariozechner/pi-agent-core":"0.57.1","@mariozechner/pi-coding-agent":"0.57.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","oxfmt":"0.38.0","oxlint":"^1.53.0","tsdown":"0.21.2","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.4.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.11-beta.1_1773289064540_0.8291628099797659","host":"s3://npm-registry-packages-npm-production"}},"2026.3.11":{"name":"openclaw","version":"2026.3.11","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.11","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"48fad3b27140ad3b05ca86bfe6941e0244a8a930","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.11.tgz","fileCount":9202,"integrity":"sha512-bxwiBmHPakwfpY5tqC9lrV5TCu5PKf0c1bHNc3nhrb+pqKcPEWV4zOjDVFLQUHr98ihgWA+3pacy4b3LQ8wduQ==","signatures":[{"sig":"MEUCIQC1am/dvUXnoF2dncJ/G+savRY+z1TqMnldIml7xVmurgIgbAXcL83YvfQ2OJ5Aa7vTv6wNF0JHrcnz+CUHSzq+rsU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136480255},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.11","hono":"4.12.7","request":"npm:@cypress/request@3.0.10","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.12.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/acpx":{"types":"./dist/plugin-sdk/acpx.d.ts","default":"./dist/plugin-sdk/acpx.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/lobster":{"types":"./dist/plugin-sdk/lobster.d.ts","default":"./dist/plugin-sdk/lobster.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/whatsapp":{"types":"./dist/plugin-sdk/whatsapp.d.ts","default":"./dist/plugin-sdk/whatsapp.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/open-prose":{"types":"./dist/plugin-sdk/open-prose.d.ts","default":"./dist/plugin-sdk/open-prose.js"},"./plugin-sdk/talk-voice":{"types":"./dist/plugin-sdk/talk-voice.d.ts","default":"./dist/plugin-sdk/talk-voice.js"},"./plugin-sdk/test-utils":{"types":"./dist/plugin-sdk/test-utils.d.ts","default":"./dist/plugin-sdk/test-utils.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/device-pair":{"types":"./dist/plugin-sdk/device-pair.d.ts","default":"./dist/plugin-sdk/device-pair.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/copilot-proxy":{"types":"./dist/plugin-sdk/copilot-proxy.d.ts","default":"./dist/plugin-sdk/copilot-proxy.js"},"./plugin-sdk/phone-control":{"types":"./dist/plugin-sdk/phone-control.d.ts","default":"./dist/plugin-sdk/phone-control.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/qwen-portal-auth":{"types":"./dist/plugin-sdk/qwen-portal-auth.d.ts","default":"./dist/plugin-sdk/qwen-portal-auth.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/minimax-portal-auth":{"types":"./dist/plugin-sdk/minimax-portal-auth.d.ts","default":"./dist/plugin-sdk/minimax-portal-auth.js"},"./plugin-sdk/google-gemini-cli-auth":{"types":"./dist/plugin-sdk/google-gemini-cli-auth.d.ts","default":"./dist/plugin-sdk/google-gemini-cli-auth.js"}},"gitHead":"29dc65403faf41dc52944c02a0db9fa4b8457395","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:channels":"vitest run --config vitest.channels.config.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"vitest run --config vitest.extensions.config.ts","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","hono":"4.12.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.41.1","undici":"^7.22.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.1","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@mariozechner/pi-ai":"0.57.1","@mariozechner/pi-tui":"0.57.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1007.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@mariozechner/pi-agent-core":"0.57.1","@mariozechner/pi-coding-agent":"0.57.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","oxfmt":"0.38.0","oxlint":"^1.53.0","tsdown":"0.21.2","vitest":"^4.0.18","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.4.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.0.18","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260311.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.11_1773291945781_0.05392931990991445","host":"s3://npm-registry-packages-npm-production"}},"2026.3.12":{"name":"openclaw","version":"2026.3.12","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.12","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"62e0f64a49ed9ff99a77ae34dde2be2e05f48d26","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.12.tgz","fileCount":5278,"integrity":"sha512-Y/KDt1vrxMqKqbBRL0ZELmNhleGZ0657a65WyH3Dy/0s+MfrbfqG0jb2b9TUE+P5BVEbj80U+37If7/v2l/eiQ==","signatures":[{"sig":"MEYCIQCwXYU98YU/51sD5wQrJKSNG4G6dE78AIrdKVDoBqQtJQIhAM2a3NjlBxl1+FwyeMfB7mgGLn59y3e/M5+NZRibP4WP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":224002564},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.11","hono":"4.12.7","request":"npm:@cypress/request@3.0.10","file-type":"21.3.1","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/acpx":{"types":"./dist/plugin-sdk/acpx.d.ts","default":"./dist/plugin-sdk/acpx.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/lobster":{"types":"./dist/plugin-sdk/lobster.d.ts","default":"./dist/plugin-sdk/lobster.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/whatsapp":{"types":"./dist/plugin-sdk/whatsapp.d.ts","default":"./dist/plugin-sdk/whatsapp.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/open-prose":{"types":"./dist/plugin-sdk/open-prose.d.ts","default":"./dist/plugin-sdk/open-prose.js"},"./plugin-sdk/talk-voice":{"types":"./dist/plugin-sdk/talk-voice.d.ts","default":"./dist/plugin-sdk/talk-voice.js"},"./plugin-sdk/test-utils":{"types":"./dist/plugin-sdk/test-utils.d.ts","default":"./dist/plugin-sdk/test-utils.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/device-pair":{"types":"./dist/plugin-sdk/device-pair.d.ts","default":"./dist/plugin-sdk/device-pair.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/copilot-proxy":{"types":"./dist/plugin-sdk/copilot-proxy.d.ts","default":"./dist/plugin-sdk/copilot-proxy.js"},"./plugin-sdk/phone-control":{"types":"./dist/plugin-sdk/phone-control.d.ts","default":"./dist/plugin-sdk/phone-control.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/qwen-portal-auth":{"types":"./dist/plugin-sdk/qwen-portal-auth.d.ts","default":"./dist/plugin-sdk/qwen-portal-auth.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/minimax-portal-auth":{"types":"./dist/plugin-sdk/minimax-portal-auth.d.ts","default":"./dist/plugin-sdk/minimax-portal-auth.js"},"./plugin-sdk/google-gemini-cli-auth":{"types":"./dist/plugin-sdk/google-gemini-cli-auth.d.ts","default":"./dist/plugin-sdk/google-gemini-cli-auth.js"}},"gitHead":"6472949f25250a58382c0fbeed436e3fb3875954","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:channels":"vitest run --config vitest.channels.config.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"vitest run --config vitest.extensions.config.ts","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","hono":"4.12.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.41.1","undici":"^7.24.0","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.1","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.14.1","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@mariozechner/pi-ai":"0.57.1","@mariozechner/pi-tui":"0.57.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1008.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@mariozechner/pi-agent-core":"0.57.1","@mariozechner/pi-coding-agent":"0.57.1","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^28.1.0","oxfmt":"0.40.0","oxlint":"^1.55.0","tsdown":"0.21.2","vitest":"^4.1.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.0","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260312.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.12_1773375206779_0.9720388491641208","host":"s3://npm-registry-packages-npm-production"}},"2026.3.13-beta.1":{"name":"openclaw","version":"2026.3.13-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.13-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"c2453be575dc90f09ea4a3a6586be220ab9489a6","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.13-beta.1.tgz","fileCount":4730,"integrity":"sha512-7s5HD2QtvcQpp6pgCgTs+q3Tya6etPuKkx4HHR0tm1FiOF6duLVGlQkm7J6OnTR6LTg7K67YDx69Hw2ulzw06A==","signatures":[{"sig":"MEUCIBKtA8bUEwfmz1oGyZ0lo0KEnA9LZh0pP6dDbexWraOCAiEA0J4MFt7rJIYo0kpFtmz/lXu+S0MdS5acxnb8yJ9bMxg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94826064},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.11","hono":"4.12.7","request":"npm:@cypress/request@3.0.10","file-type":"21.3.2","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/acpx":{"types":"./dist/plugin-sdk/acpx.d.ts","default":"./dist/plugin-sdk/acpx.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/lobster":{"types":"./dist/plugin-sdk/lobster.d.ts","default":"./dist/plugin-sdk/lobster.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/whatsapp":{"types":"./dist/plugin-sdk/whatsapp.d.ts","default":"./dist/plugin-sdk/whatsapp.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/open-prose":{"types":"./dist/plugin-sdk/open-prose.d.ts","default":"./dist/plugin-sdk/open-prose.js"},"./plugin-sdk/talk-voice":{"types":"./dist/plugin-sdk/talk-voice.d.ts","default":"./dist/plugin-sdk/talk-voice.js"},"./plugin-sdk/test-utils":{"types":"./dist/plugin-sdk/test-utils.d.ts","default":"./dist/plugin-sdk/test-utils.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/device-pair":{"types":"./dist/plugin-sdk/device-pair.d.ts","default":"./dist/plugin-sdk/device-pair.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/copilot-proxy":{"types":"./dist/plugin-sdk/copilot-proxy.d.ts","default":"./dist/plugin-sdk/copilot-proxy.js"},"./plugin-sdk/phone-control":{"types":"./dist/plugin-sdk/phone-control.d.ts","default":"./dist/plugin-sdk/phone-control.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/qwen-portal-auth":{"types":"./dist/plugin-sdk/qwen-portal-auth.d.ts","default":"./dist/plugin-sdk/qwen-portal-auth.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/minimax-portal-auth":{"types":"./dist/plugin-sdk/minimax-portal-auth.d.ts","default":"./dist/plugin-sdk/minimax-portal-auth.js"},"./plugin-sdk/google-gemini-cli-auth":{"types":"./dist/plugin-sdk/google-gemini-cli-auth.d.ts","default":"./dist/plugin-sdk/google-gemini-cli-auth.js"}},"gitHead":"94a292686cb41ea5452f71663fabc48231452a97","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:channels":"vitest run --config vitest.channels.config.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"vitest run --config vitest.extensions.config.ts","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","hono":"4.12.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.41.1","undici":"^7.24.1","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.2","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.15.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@mariozechner/pi-ai":"0.58.0","@mariozechner/pi-tui":"0.58.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1009.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@modelcontextprotocol/sdk":"1.27.1","@mariozechner/pi-agent-core":"0.58.0","@mariozechner/pi-coding-agent":"0.58.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^28.1.0","oxfmt":"0.40.0","oxlint":"^1.55.0","tsdown":"0.21.2","vitest":"^4.1.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.0","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260313.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.13-beta.1_1773464491131_0.11976244407006487","host":"s3://npm-registry-packages-npm-production"}},"2026.3.13":{"name":"openclaw","version":"2026.3.13","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.13","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"559b4cc4a605616ada0d11a9ca29b7395af91e0e","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.13.tgz","fileCount":4730,"integrity":"sha512-/juSUb070Xz8K8CnShjaZQr7CVtRaW4FbR93lgr1hLepcRSbyz2PQR+V4w5giVWkea61opXWPA6Vb8dybaztFg==","signatures":[{"sig":"MEUCIQDKBZk6rcb22t43aPaVl7RasVuR6z3XDsrpc1Dx9dHRYgIgfkqLZ/t8K3OfCRrRHSdlQUbHeCPzZ3LLCFu//pWN6zo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":94848645},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.11","hono":"4.12.7","request":"npm:@cypress/request@3.0.10","file-type":"21.3.2","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.3.8","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@whiskeysockets/baileys","authenticate-pam","esbuild","koffi","node-llama-cpp","protobufjs","sharp"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/acpx":{"types":"./dist/plugin-sdk/acpx.d.ts","default":"./dist/plugin-sdk/acpx.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/lobster":{"types":"./dist/plugin-sdk/lobster.d.ts","default":"./dist/plugin-sdk/lobster.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/whatsapp":{"types":"./dist/plugin-sdk/whatsapp.d.ts","default":"./dist/plugin-sdk/whatsapp.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/open-prose":{"types":"./dist/plugin-sdk/open-prose.d.ts","default":"./dist/plugin-sdk/open-prose.js"},"./plugin-sdk/talk-voice":{"types":"./dist/plugin-sdk/talk-voice.d.ts","default":"./dist/plugin-sdk/talk-voice.js"},"./plugin-sdk/test-utils":{"types":"./dist/plugin-sdk/test-utils.d.ts","default":"./dist/plugin-sdk/test-utils.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/device-pair":{"types":"./dist/plugin-sdk/device-pair.d.ts","default":"./dist/plugin-sdk/device-pair.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/copilot-proxy":{"types":"./dist/plugin-sdk/copilot-proxy.d.ts","default":"./dist/plugin-sdk/copilot-proxy.js"},"./plugin-sdk/phone-control":{"types":"./dist/plugin-sdk/phone-control.d.ts","default":"./dist/plugin-sdk/phone-control.js"},"./plugin-sdk/synology-chat":{"types":"./dist/plugin-sdk/synology-chat.d.ts","default":"./dist/plugin-sdk/synology-chat.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/qwen-portal-auth":{"types":"./dist/plugin-sdk/qwen-portal-auth.d.ts","default":"./dist/plugin-sdk/qwen-portal-auth.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/minimax-portal-auth":{"types":"./dist/plugin-sdk/minimax-portal-auth.d.ts","default":"./dist/plugin-sdk/minimax-portal-auth.js"},"./plugin-sdk/google-gemini-cli-auth":{"types":"./dist/plugin-sdk/google-gemini-cli-auth.d.ts","default":"./dist/plugin-sdk/google-gemini-cli-auth.js"}},"gitHead":"61d171ab0b2fe4abc9afe89c518586274b4b76c2","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:host-env-policy:swift && pnpm format:check && pnpm tsgo && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev CLAWDBOT_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 CLAWDBOT_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_VM_FORKS=0 OPENCLAW_TEST_PROFILE=serial node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"node --import tsx scripts/release-check.ts","test:channels":"vitest run --config vitest.channels.config.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installDebug","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"vitest run --config vitest.extensions.config.ts","android:assemble":"cd apps/android && ./gradlew :app:assembleDebug","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 CLAWDBOT_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/copy-plugin-sdk-root-alias.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai CLAWDBOT_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic CLAWDBOT_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.19.0","ajv":"^8.18.0","tar":"7.5.11","zod":"^4.3.6","hono":"4.12.7","jiti":"^2.6.1","long":"^5.3.2","yaml":"^2.8.2","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","grammy":"^1.41.1","undici":"^7.24.1","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"^21.3.2","ipaddr.js":"^2.3.0","opusscript":"^0.1.1","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7-alpha.2","@slack/bolt":"^4.6.0","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@buape/carbon":"0.0.0-beta-20260216184201","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","@slack/web-api":"^7.15.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@discordjs/voice":"^0.19.1","@grammyjs/runner":"^2.0.3","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","discord-api-types":"^0.38.42","https-proxy-agent":"^8.0.0","@mariozechner/pi-ai":"0.58.0","@mariozechner/pi-tui":"0.58.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1009.0","@larksuiteoapi/node-sdk":"^1.59.0","@whiskeysockets/baileys":"7.0.0-rc.9","@agentclientprotocol/sdk":"0.16.1","@modelcontextprotocol/sdk":"1.27.1","@mariozechner/pi-agent-core":"0.58.0","@mariozechner/pi-coding-agent":"0.58.0","@grammyjs/transformer-throttler":"^1.2.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^28.1.0","oxfmt":"0.40.0","oxlint":"^1.55.0","tsdown":"0.21.2","vitest":"^4.1.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.16.0","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.0","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260313.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.13_1773466597202_0.0532598516857703","host":"s3://npm-registry-packages-npm-production"}},"2026.3.22-beta.1":{"name":"openclaw","version":"2026.3.22-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.22-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"3511f5542906ae0a00bb459b8482934bf9dfc4df","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.22-beta.1.tgz","fileCount":14227,"integrity":"sha512-YCWOFACU97tjR1Cpj9urYpuQ3sahHX/5AkGod40//EOpmt0zGGIuLJibotWlK6LE+s2ajWj9GzLooHq/Okwc/A==","signatures":[{"sig":"MEQCIGeL+aD8nX70rH7uv7Q1NPPN8O9fzysIYiLHOsrlWZZLAiBQuFkHXaVOktg6w2sa94/JLmS06cUzSICE/58Wxyc8hw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":142126022},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.12","hono":"4.12.8","yauzl":"3.2.1","request":"npm:@cypress/request@3.0.10","file-type":"21.3.4","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.5.7","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@tloncorp/tlon-skill","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"],"ignoredBuiltDependencies":["@discordjs/opus","koffi"]},"type":"module","_from":"file:openclaw-2026.3.22-beta.1.tgz","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./extension-api":"./dist/extensionAPI.js","./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/setup":{"types":"./dist/plugin-sdk/setup.d.ts","default":"./dist/plugin-sdk/setup.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/speech":{"types":"./dist/plugin-sdk/speech.d.ts","default":"./dist/plugin-sdk/speech.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.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/sandbox":{"types":"./dist/plugin-sdk/sandbox.d.ts","default":"./dist/plugin-sdk/sandbox.js"},"./plugin-sdk/testing":{"types":"./dist/plugin-sdk/testing.d.ts","default":"./dist/plugin-sdk/testing.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/line-core":{"types":"./dist/plugin-sdk/line-core.d.ts","default":"./dist/plugin-sdk/line-core.js"},"./plugin-sdk/temp-path":{"types":"./dist/plugin-sdk/temp-path.d.ts","default":"./dist/plugin-sdk/temp-path.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/web-media":{"types":"./dist/plugin-sdk/web-media.d.ts","default":"./dist/plugin-sdk/web-media.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/allow-from":{"types":"./dist/plugin-sdk/allow-from.d.ts","default":"./dist/plugin-sdk/allow-from.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/json-store":{"types":"./dist/plugin-sdk/json-store.d.ts","default":"./dist/plugin-sdk/json-store.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/slack-core":{"types":"./dist/plugin-sdk/slack-core.d.ts","default":"./dist/plugin-sdk/slack-core.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/acp-runtime":{"types":"./dist/plugin-sdk/acp-runtime.d.ts","default":"./dist/plugin-sdk/acp-runtime.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/cli-runtime":{"types":"./dist/plugin-sdk/cli-runtime.d.ts","default":"./dist/plugin-sdk/cli-runtime.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/request-url":{"types":"./dist/plugin-sdk/request-url.d.ts","default":"./dist/plugin-sdk/request-url.js"},"./plugin-sdk/runtime-env":{"types":"./dist/plugin-sdk/runtime-env.d.ts","default":"./dist/plugin-sdk/runtime-env.js"},"./plugin-sdk/setup-tools":{"types":"./dist/plugin-sdk/setup-tools.d.ts","default":"./dist/plugin-sdk/setup-tools.js"},"./plugin-sdk/speech-core":{"types":"./dist/plugin-sdk/speech-core.d.ts","default":"./dist/plugin-sdk/speech-core.js"},"./plugin-sdk/state-paths":{"types":"./dist/plugin-sdk/state-paths.d.ts","default":"./dist/plugin-sdk/state-paths.js"},"./plugin-sdk/command-auth":{"types":"./dist/plugin-sdk/command-auth.d.ts","default":"./dist/plugin-sdk/command-auth.js"},"./plugin-sdk/discord-core":{"types":"./dist/plugin-sdk/discord-core.d.ts","default":"./dist/plugin-sdk/discord-core.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/hook-runtime":{"types":"./dist/plugin-sdk/hook-runtime.d.ts","default":"./dist/plugin-sdk/hook-runtime.js"},"./plugin-sdk/lazy-runtime":{"types":"./dist/plugin-sdk/lazy-runtime.d.ts","default":"./dist/plugin-sdk/lazy-runtime.js"},"./plugin-sdk/line-runtime":{"types":"./dist/plugin-sdk/line-runtime.d.ts","default":"./dist/plugin-sdk/line-runtime.js"},"./plugin-sdk/ollama-setup":{"types":"./dist/plugin-sdk/ollama-setup.d.ts","default":"./dist/plugin-sdk/ollama-setup.js"},"./plugin-sdk/plugin-entry":{"types":"./dist/plugin-sdk/plugin-entry.d.ts","default":"./dist/plugin-sdk/plugin-entry.js"},"./plugin-sdk/secret-input":{"types":"./dist/plugin-sdk/secret-input.d.ts","default":"./dist/plugin-sdk/secret-input.js"},"./plugin-sdk/ssrf-runtime":{"types":"./dist/plugin-sdk/ssrf-runtime.d.ts","default":"./dist/plugin-sdk/ssrf-runtime.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/webhook-path":{"types":"./dist/plugin-sdk/webhook-path.d.ts","default":"./dist/plugin-sdk/webhook-path.js"},"./plugin-sdk/agent-runtime":{"types":"./dist/plugin-sdk/agent-runtime.d.ts","default":"./dist/plugin-sdk/agent-runtime.js"},"./plugin-sdk/boolean-param":{"types":"./dist/plugin-sdk/boolean-param.d.ts","default":"./dist/plugin-sdk/boolean-param.js"},"./plugin-sdk/channel-setup":{"types":"./dist/plugin-sdk/channel-setup.d.ts","default":"./dist/plugin-sdk/channel-setup.js"},"./plugin-sdk/imessage-core":{"types":"./dist/plugin-sdk/imessage-core.d.ts","default":"./dist/plugin-sdk/imessage-core.js"},"./plugin-sdk/infra-runtime":{"types":"./dist/plugin-sdk/infra-runtime.d.ts","default":"./dist/plugin-sdk/infra-runtime.js"},"./plugin-sdk/media-runtime":{"types":"./dist/plugin-sdk/media-runtime.d.ts","default":"./dist/plugin-sdk/media-runtime.js"},"./plugin-sdk/param-readers":{"types":"./dist/plugin-sdk/param-readers.d.ts","default":"./dist/plugin-sdk/param-readers.js"},"./plugin-sdk/provider-auth":{"types":"./dist/plugin-sdk/provider-auth.d.ts","default":"./dist/plugin-sdk/provider-auth.js"},"./plugin-sdk/reply-history":{"types":"./dist/plugin-sdk/reply-history.d.ts","default":"./dist/plugin-sdk/reply-history.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/reply-runtime":{"types":"./dist/plugin-sdk/reply-runtime.d.ts","default":"./dist/plugin-sdk/reply-runtime.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/setup-runtime":{"types":"./dist/plugin-sdk/setup-runtime.d.ts","default":"./dist/plugin-sdk/setup-runtime.js"},"./plugin-sdk/slack-targets":{"types":"./dist/plugin-sdk/slack-targets.d.ts","default":"./dist/plugin-sdk/slack-targets.js"},"./plugin-sdk/telegram-core":{"types":"./dist/plugin-sdk/telegram-core.d.ts","default":"./dist/plugin-sdk/telegram-core.js"},"./plugin-sdk/whatsapp-core":{"types":"./dist/plugin-sdk/whatsapp-core.d.ts","default":"./dist/plugin-sdk/whatsapp-core.js"},"./plugin-sdk/windows-spawn":{"types":"./dist/plugin-sdk/windows-spawn.d.ts","default":"./dist/plugin-sdk/windows-spawn.js"},"./plugin-sdk/channel-policy":{"types":"./dist/plugin-sdk/channel-policy.d.ts","default":"./dist/plugin-sdk/channel-policy.js"},"./plugin-sdk/channel-status":{"types":"./dist/plugin-sdk/channel-status.d.ts","default":"./dist/plugin-sdk/channel-status.js"},"./plugin-sdk/config-runtime":{"types":"./dist/plugin-sdk/config-runtime.d.ts","default":"./dist/plugin-sdk/config-runtime.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/plugin-runtime":{"types":"./dist/plugin-sdk/plugin-runtime.d.ts","default":"./dist/plugin-sdk/plugin-runtime.js"},"./plugin-sdk/provider-entry":{"types":"./dist/plugin-sdk/provider-entry.d.ts","default":"./dist/plugin-sdk/provider-entry.js"},"./plugin-sdk/provider-setup":{"types":"./dist/plugin-sdk/provider-setup.d.ts","default":"./dist/plugin-sdk/provider-setup.js"},"./plugin-sdk/provider-usage":{"types":"./dist/plugin-sdk/provider-usage.d.ts","default":"./dist/plugin-sdk/provider-usage.js"},"./plugin-sdk/speech-runtime":{"types":"./dist/plugin-sdk/speech-runtime.d.ts","default":"./dist/plugin-sdk/speech-runtime.js"},"./plugin-sdk/status-helpers":{"types":"./dist/plugin-sdk/status-helpers.d.ts","default":"./dist/plugin-sdk/status-helpers.js"},"./plugin-sdk/account-helpers":{"types":"./dist/plugin-sdk/account-helpers.d.ts","default":"./dist/plugin-sdk/account-helpers.js"},"./plugin-sdk/channel-actions":{"types":"./dist/plugin-sdk/channel-actions.d.ts","default":"./dist/plugin-sdk/channel-actions.js"},"./plugin-sdk/channel-inbound":{"types":"./dist/plugin-sdk/channel-inbound.d.ts","default":"./dist/plugin-sdk/channel-inbound.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.js"},"./plugin-sdk/channel-runtime":{"types":"./dist/plugin-sdk/channel-runtime.d.ts","default":"./dist/plugin-sdk/channel-runtime.js"},"./plugin-sdk/channel-targets":{"types":"./dist/plugin-sdk/channel-targets.d.ts","default":"./dist/plugin-sdk/channel-targets.js"},"./plugin-sdk/gateway-runtime":{"types":"./dist/plugin-sdk/gateway-runtime.d.ts","default":"./dist/plugin-sdk/gateway-runtime.js"},"./plugin-sdk/process-runtime":{"types":"./dist/plugin-sdk/process-runtime.d.ts","default":"./dist/plugin-sdk/process-runtime.js"},"./plugin-sdk/provider-google":{"types":"./dist/plugin-sdk/provider-google.d.ts","default":"./dist/plugin-sdk/provider-google.js"},"./plugin-sdk/provider-models":{"types":"./dist/plugin-sdk/provider-models.d.ts","default":"./dist/plugin-sdk/provider-models.js"},"./plugin-sdk/provider-stream":{"types":"./dist/plugin-sdk/provider-stream.d.ts","default":"./dist/plugin-sdk/provider-stream.js"},"./plugin-sdk/webhook-ingress":{"types":"./dist/plugin-sdk/webhook-ingress.d.ts","default":"./dist/plugin-sdk/webhook-ingress.js"},"./plugin-sdk/whatsapp-shared":{"types":"./dist/plugin-sdk/whatsapp-shared.d.ts","default":"./dist/plugin-sdk/whatsapp-shared.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/device-bootstrap":{"types":"./dist/plugin-sdk/device-bootstrap.d.ts","default":"./dist/plugin-sdk/device-bootstrap.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/extension-shared":{"types":"./dist/plugin-sdk/extension-shared.d.ts","default":"./dist/plugin-sdk/extension-shared.js"},"./plugin-sdk/image-generation":{"types":"./dist/plugin-sdk/image-generation.d.ts","default":"./dist/plugin-sdk/image-generation.js"},"./plugin-sdk/outbound-runtime":{"types":"./dist/plugin-sdk/outbound-runtime.d.ts","default":"./dist/plugin-sdk/outbound-runtime.js"},"./plugin-sdk/provider-catalog":{"types":"./dist/plugin-sdk/provider-catalog.d.ts","default":"./dist/plugin-sdk/provider-catalog.js"},"./plugin-sdk/provider-onboard":{"types":"./dist/plugin-sdk/provider-onboard.d.ts","default":"./dist/plugin-sdk/provider-onboard.js"},"./plugin-sdk/security-runtime":{"types":"./dist/plugin-sdk/security-runtime.d.ts","default":"./dist/plugin-sdk/security-runtime.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.js"},"./plugin-sdk/directory-runtime":{"types":"./dist/plugin-sdk/directory-runtime.d.ts","default":"./dist/plugin-sdk/directory-runtime.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/provider-env-vars":{"types":"./dist/plugin-sdk/provider-env-vars.d.ts","default":"./dist/plugin-sdk/provider-env-vars.js"},"./plugin-sdk/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/interactive-runtime":{"types":"./dist/plugin-sdk/interactive-runtime.d.ts","default":"./dist/plugin-sdk/interactive-runtime.js"},"./plugin-sdk/media-understanding":{"types":"./dist/plugin-sdk/media-understanding.d.ts","default":"./dist/plugin-sdk/media-understanding.js"},"./plugin-sdk/provider-auth-login":{"types":"./dist/plugin-sdk/provider-auth-login.d.ts","default":"./dist/plugin-sdk/provider-auth-login.js"},"./plugin-sdk/provider-web-search":{"types":"./dist/plugin-sdk/provider-web-search.d.ts","default":"./dist/plugin-sdk/provider-web-search.js"},"./plugin-sdk/conversation-runtime":{"types":"./dist/plugin-sdk/conversation-runtime.d.ts","default":"./dist/plugin-sdk/conversation-runtime.js"},"./plugin-sdk/matrix-runtime-heavy":{"types":"./dist/plugin-sdk/matrix-runtime-heavy.d.ts","default":"./dist/plugin-sdk/matrix-runtime-heavy.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/channel-config-schema":{"types":"./dist/plugin-sdk/channel-config-schema.d.ts","default":"./dist/plugin-sdk/channel-config-schema.js"},"./plugin-sdk/image-generation-core":{"types":"./dist/plugin-sdk/image-generation-core.d.ts","default":"./dist/plugin-sdk/image-generation-core.js"},"./plugin-sdk/matrix-runtime-shared":{"types":"./dist/plugin-sdk/matrix-runtime-shared.d.ts","default":"./dist/plugin-sdk/matrix-runtime-shared.js"},"./plugin-sdk/provider-auth-api-key":{"types":"./dist/plugin-sdk/provider-auth-api-key.d.ts","default":"./dist/plugin-sdk/provider-auth-api-key.js"},"./plugin-sdk/provider-zai-endpoint":{"types":"./dist/plugin-sdk/provider-zai-endpoint.d.ts","default":"./dist/plugin-sdk/provider-zai-endpoint.js"},"./plugin-sdk/setup-adapter-runtime":{"types":"./dist/plugin-sdk/setup-adapter-runtime.d.ts","default":"./dist/plugin-sdk/setup-adapter-runtime.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-reply-pipeline":{"types":"./dist/plugin-sdk/channel-reply-pipeline.d.ts","default":"./dist/plugin-sdk/channel-reply-pipeline.js"},"./plugin-sdk/thread-bindings-runtime":{"types":"./dist/plugin-sdk/thread-bindings-runtime.d.ts","default":"./dist/plugin-sdk/thread-bindings-runtime.js"},"./plugin-sdk/self-hosted-provider-setup":{"types":"./dist/plugin-sdk/self-hosted-provider-setup.d.ts","default":"./dist/plugin-sdk/self-hosted-provider-setup.js"},"./plugin-sdk/media-understanding-runtime":{"types":"./dist/plugin-sdk/media-understanding-runtime.d.ts","default":"./dist/plugin-sdk/media-understanding-runtime.js"}},"scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:no-conflict-markers && pnpm check:host-env-policy:swift && pnpm check:base-config-schema && pnpm check:bundled-plugin-metadata && pnpm check:bundled-provider-auth-env-vars && pnpm format:check && pnpm tsgo && pnpm plugin-sdk:check-exports && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:plugins:no-extension-src-imports && pnpm lint:plugins:no-extension-test-core-imports && pnpm lint:plugins:no-extension-imports && pnpm lint:plugins:plugin-sdk-subpaths-exported && pnpm lint:extensions:no-src-outside-plugin-sdk && pnpm lint:extensions:no-plugin-sdk-internal && pnpm lint:extensions:no-relative-outside-package && pnpm lint:web-search-provider-boundaries && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-i18n-glossary && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testPlayDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:changed":"pnpm test -- --changed origin/main","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_PROFILE=macmini node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"pnpm config:docs:check && pnpm plugin-sdk:api:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && node --import tsx scripts/release-check.ts","test:channels":"vitest run --config vitest.channels.config.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:contracts":"pnpm test:contracts:channels && pnpm test:contracts:plugins","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:extension":"node scripts/test-extension.mjs","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installPlayDebug","config:docs:gen":"node --import tsx scripts/generate-config-doc-baseline.ts --write","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"OPENCLAW_TEST_SKIP_DEFAULT=1 OPENCLAW_TEST_INCLUDE_EXTENSIONS=1 node scripts/test-parallel.mjs","android:assemble":"cd apps/android && ./gradlew :app:assemblePlayDebug","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","config:docs:check":"node --import tsx scripts/generate-config-doc-baseline.ts --check","config:schema:gen":"node --import tsx scripts/generate-base-config-schema.ts --write","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","test:perf:imports":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","plugin-sdk:api:gen":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:e2e:openshell":"OPENCLAW_E2E_OPENSHELL=1 vitest run --config vitest.e2e.config.ts test/openshell-sandbox.e2e.test.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","config:schema:check":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:startup:memory":"node scripts/check-cli-startup-memory.mjs","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","plugin-sdk:api:check":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check","test:build:singleton":"node scripts/test-built-plugin-singleton.mjs","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","test:coverage:changed":"vitest run --config vitest.unit.config.ts --coverage --changed origin/main","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:contracts:plugins":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/plugins/contracts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","test:perf:profile:main":"node --cpu-prof --cpu-prof-dir=.artifacts/vitest-main-profile ./node_modules/vitest/vitest.mjs run --config vitest.unit.config.ts --no-file-parallelism","android:run:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","plugin-sdk:sync-exports":"node scripts/sync-plugin-sdk-exports.mjs","test:contracts:channels":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/channels/plugins/contracts","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","android:test:third-party":"cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:check-i18n-glossary":"node scripts/check-docs-i18n-glossary.mjs","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","plugin-sdk:check-exports":"node scripts/sync-plugin-sdk-exports.mjs --check","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:perf:profile:runner":"vitest run --config vitest.unit.config.ts --no-file-parallelism --execArgv=--cpu-prof --execArgv=--cpu-prof-dir=.artifacts/vitest-runner-profile --execArgv=--heap-prof --execArgv=--heap-prof-dir=.artifacts/vitest-runner-profile","test:perf:update-timings":"node scripts/test-update-timings.mjs","check:no-conflict-markers":"node scripts/check-no-conflict-markers.mjs","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","release:plugins:npm:check":"node --import tsx scripts/plugin-npm-release-check.ts","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:perf:imports:changed":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test -- --changed origin/main","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","android:install:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","android:assemble:third-party":"cd apps/android && ./gradlew :app:assembleThirdPartyDebug","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","check:bundled-plugin-metadata":"node scripts/generate-bundled-plugin-metadata.mjs --check","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","test:gateway:watch-regression":"node scripts/check-gateway-watch-regression.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","test:perf:find-thread-candidates":"node scripts/test-find-thread-candidates.mjs","test:perf:update-memory-hotspots":"node scripts/test-update-memory-hotspots.mjs","lint:plugins:no-extension-imports":"node scripts/check-plugin-extension-import-boundary.mjs","stage:bundled-plugin-runtime-deps":"node scripts/stage-bundled-plugin-runtime-deps.mjs","lint:web-search-provider-boundaries":"node scripts/check-web-search-provider-boundaries.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","check:bundled-provider-auth-env-vars":"node scripts/generate-bundled-provider-auth-env-vars.mjs --check","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-extension-src-imports":"node --import tsx scripts/check-no-extension-src-imports.ts","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","lint:extensions:no-plugin-sdk-internal":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal","lint:extensions:no-src-outside-plugin-sdk":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk","lint:plugins:plugin-sdk-subpaths-exported":"node scripts/check-plugin-sdk-subpath-exports.mjs","lint:extensions:no-relative-outside-package":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package","lint:plugins:no-extension-test-core-imports":"node --import tsx scripts/check-no-extension-test-core-imports.ts","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_resolved":"/Users/steipete/Projects/clawdbot/openclaw-2026.3.22-beta.1.tgz","_integrity":"sha512-YCWOFACU97tjR1Cpj9urYpuQ3sahHX/5AkGod40//EOpmt0zGGIuLJibotWlK6LE+s2ajWj9GzLooHq/Okwc/A==","repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.20.0","ajv":"^8.18.0","tar":"7.5.12","zod":"^4.3.6","hono":"4.12.8","jiti":"^2.6.1","long":"^5.3.2","uuid":"^13.0.0","yaml":"^2.8.3","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.4","undici":"^7.24.5","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"21.3.4","ipaddr.js":"^2.3.0","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","@mariozechner/pi-ai":"0.61.1","@mariozechner/pi-tui":"0.61.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1014.0","@agentclientprotocol/sdk":"0.16.1","@anthropic-ai/vertex-sdk":"^0.14.4","@modelcontextprotocol/sdk":"1.27.1","@mariozechner/pi-agent-core":"0.61.1","@mariozechner/pi-coding-agent":"0.61.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^29.0.1","oxfmt":"0.41.0","oxlint":"^1.56.0","tsdown":"0.21.4","vitest":"^4.1.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.17.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.0","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260322.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.22-beta.1_1774259265878_0.5503000082130425","host":"s3://npm-registry-packages-npm-production"}},"2026.3.22":{"name":"openclaw","version":"2026.3.22","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.22","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"e4ef51118255552bbdc602da410592ddcb8cf8e5","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.22.tgz","fileCount":14076,"integrity":"sha512-jQqQjRbgTiYf41PKPAIqNAPVmf0WyK4OpRhMCKP5NrC61lNqRXj4n13FMmt8l/pwNQtajtZTXEJEFfQqTKrWLA==","signatures":[{"sig":"MEUCIQDyyKxzbdTcW4XStM+jFnzNd3RvZ2FDKVnnws9PK8ucRgIgIKciFiqBHAOaF+l9qv0A+yhGyii753iSzeLc7hn5cS8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":138882696},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.12","hono":"4.12.8","yauzl":"3.2.1","request":"npm:@cypress/request@3.0.10","file-type":"21.3.4","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.5.7","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@tloncorp/tlon-skill","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"],"ignoredBuiltDependencies":["@discordjs/opus","koffi"]},"type":"module","_from":"file:openclaw-2026.3.22.tgz","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./extension-api":"./dist/extensionAPI.js","./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/setup":{"types":"./dist/plugin-sdk/setup.d.ts","default":"./dist/plugin-sdk/setup.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/speech":{"types":"./dist/plugin-sdk/speech.d.ts","default":"./dist/plugin-sdk/speech.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.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/sandbox":{"types":"./dist/plugin-sdk/sandbox.d.ts","default":"./dist/plugin-sdk/sandbox.js"},"./plugin-sdk/testing":{"types":"./dist/plugin-sdk/testing.d.ts","default":"./dist/plugin-sdk/testing.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/line-core":{"types":"./dist/plugin-sdk/line-core.d.ts","default":"./dist/plugin-sdk/line-core.js"},"./plugin-sdk/temp-path":{"types":"./dist/plugin-sdk/temp-path.d.ts","default":"./dist/plugin-sdk/temp-path.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/web-media":{"types":"./dist/plugin-sdk/web-media.d.ts","default":"./dist/plugin-sdk/web-media.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/allow-from":{"types":"./dist/plugin-sdk/allow-from.d.ts","default":"./dist/plugin-sdk/allow-from.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/json-store":{"types":"./dist/plugin-sdk/json-store.d.ts","default":"./dist/plugin-sdk/json-store.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/slack-core":{"types":"./dist/plugin-sdk/slack-core.d.ts","default":"./dist/plugin-sdk/slack-core.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/acp-runtime":{"types":"./dist/plugin-sdk/acp-runtime.d.ts","default":"./dist/plugin-sdk/acp-runtime.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/cli-runtime":{"types":"./dist/plugin-sdk/cli-runtime.d.ts","default":"./dist/plugin-sdk/cli-runtime.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/request-url":{"types":"./dist/plugin-sdk/request-url.d.ts","default":"./dist/plugin-sdk/request-url.js"},"./plugin-sdk/runtime-env":{"types":"./dist/plugin-sdk/runtime-env.d.ts","default":"./dist/plugin-sdk/runtime-env.js"},"./plugin-sdk/setup-tools":{"types":"./dist/plugin-sdk/setup-tools.d.ts","default":"./dist/plugin-sdk/setup-tools.js"},"./plugin-sdk/speech-core":{"types":"./dist/plugin-sdk/speech-core.d.ts","default":"./dist/plugin-sdk/speech-core.js"},"./plugin-sdk/state-paths":{"types":"./dist/plugin-sdk/state-paths.d.ts","default":"./dist/plugin-sdk/state-paths.js"},"./plugin-sdk/command-auth":{"types":"./dist/plugin-sdk/command-auth.d.ts","default":"./dist/plugin-sdk/command-auth.js"},"./plugin-sdk/discord-core":{"types":"./dist/plugin-sdk/discord-core.d.ts","default":"./dist/plugin-sdk/discord-core.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/hook-runtime":{"types":"./dist/plugin-sdk/hook-runtime.d.ts","default":"./dist/plugin-sdk/hook-runtime.js"},"./plugin-sdk/lazy-runtime":{"types":"./dist/plugin-sdk/lazy-runtime.d.ts","default":"./dist/plugin-sdk/lazy-runtime.js"},"./plugin-sdk/line-runtime":{"types":"./dist/plugin-sdk/line-runtime.d.ts","default":"./dist/plugin-sdk/line-runtime.js"},"./plugin-sdk/ollama-setup":{"types":"./dist/plugin-sdk/ollama-setup.d.ts","default":"./dist/plugin-sdk/ollama-setup.js"},"./plugin-sdk/plugin-entry":{"types":"./dist/plugin-sdk/plugin-entry.d.ts","default":"./dist/plugin-sdk/plugin-entry.js"},"./plugin-sdk/secret-input":{"types":"./dist/plugin-sdk/secret-input.d.ts","default":"./dist/plugin-sdk/secret-input.js"},"./plugin-sdk/ssrf-runtime":{"types":"./dist/plugin-sdk/ssrf-runtime.d.ts","default":"./dist/plugin-sdk/ssrf-runtime.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/webhook-path":{"types":"./dist/plugin-sdk/webhook-path.d.ts","default":"./dist/plugin-sdk/webhook-path.js"},"./plugin-sdk/agent-runtime":{"types":"./dist/plugin-sdk/agent-runtime.d.ts","default":"./dist/plugin-sdk/agent-runtime.js"},"./plugin-sdk/boolean-param":{"types":"./dist/plugin-sdk/boolean-param.d.ts","default":"./dist/plugin-sdk/boolean-param.js"},"./plugin-sdk/channel-setup":{"types":"./dist/plugin-sdk/channel-setup.d.ts","default":"./dist/plugin-sdk/channel-setup.js"},"./plugin-sdk/imessage-core":{"types":"./dist/plugin-sdk/imessage-core.d.ts","default":"./dist/plugin-sdk/imessage-core.js"},"./plugin-sdk/infra-runtime":{"types":"./dist/plugin-sdk/infra-runtime.d.ts","default":"./dist/plugin-sdk/infra-runtime.js"},"./plugin-sdk/media-runtime":{"types":"./dist/plugin-sdk/media-runtime.d.ts","default":"./dist/plugin-sdk/media-runtime.js"},"./plugin-sdk/param-readers":{"types":"./dist/plugin-sdk/param-readers.d.ts","default":"./dist/plugin-sdk/param-readers.js"},"./plugin-sdk/provider-auth":{"types":"./dist/plugin-sdk/provider-auth.d.ts","default":"./dist/plugin-sdk/provider-auth.js"},"./plugin-sdk/reply-history":{"types":"./dist/plugin-sdk/reply-history.d.ts","default":"./dist/plugin-sdk/reply-history.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/reply-runtime":{"types":"./dist/plugin-sdk/reply-runtime.d.ts","default":"./dist/plugin-sdk/reply-runtime.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/setup-runtime":{"types":"./dist/plugin-sdk/setup-runtime.d.ts","default":"./dist/plugin-sdk/setup-runtime.js"},"./plugin-sdk/slack-targets":{"types":"./dist/plugin-sdk/slack-targets.d.ts","default":"./dist/plugin-sdk/slack-targets.js"},"./plugin-sdk/telegram-core":{"types":"./dist/plugin-sdk/telegram-core.d.ts","default":"./dist/plugin-sdk/telegram-core.js"},"./plugin-sdk/whatsapp-core":{"types":"./dist/plugin-sdk/whatsapp-core.d.ts","default":"./dist/plugin-sdk/whatsapp-core.js"},"./plugin-sdk/windows-spawn":{"types":"./dist/plugin-sdk/windows-spawn.d.ts","default":"./dist/plugin-sdk/windows-spawn.js"},"./plugin-sdk/channel-policy":{"types":"./dist/plugin-sdk/channel-policy.d.ts","default":"./dist/plugin-sdk/channel-policy.js"},"./plugin-sdk/channel-status":{"types":"./dist/plugin-sdk/channel-status.d.ts","default":"./dist/plugin-sdk/channel-status.js"},"./plugin-sdk/config-runtime":{"types":"./dist/plugin-sdk/config-runtime.d.ts","default":"./dist/plugin-sdk/config-runtime.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/plugin-runtime":{"types":"./dist/plugin-sdk/plugin-runtime.d.ts","default":"./dist/plugin-sdk/plugin-runtime.js"},"./plugin-sdk/provider-entry":{"types":"./dist/plugin-sdk/provider-entry.d.ts","default":"./dist/plugin-sdk/provider-entry.js"},"./plugin-sdk/provider-setup":{"types":"./dist/plugin-sdk/provider-setup.d.ts","default":"./dist/plugin-sdk/provider-setup.js"},"./plugin-sdk/provider-usage":{"types":"./dist/plugin-sdk/provider-usage.d.ts","default":"./dist/plugin-sdk/provider-usage.js"},"./plugin-sdk/speech-runtime":{"types":"./dist/plugin-sdk/speech-runtime.d.ts","default":"./dist/plugin-sdk/speech-runtime.js"},"./plugin-sdk/status-helpers":{"types":"./dist/plugin-sdk/status-helpers.d.ts","default":"./dist/plugin-sdk/status-helpers.js"},"./plugin-sdk/account-helpers":{"types":"./dist/plugin-sdk/account-helpers.d.ts","default":"./dist/plugin-sdk/account-helpers.js"},"./plugin-sdk/channel-actions":{"types":"./dist/plugin-sdk/channel-actions.d.ts","default":"./dist/plugin-sdk/channel-actions.js"},"./plugin-sdk/channel-inbound":{"types":"./dist/plugin-sdk/channel-inbound.d.ts","default":"./dist/plugin-sdk/channel-inbound.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.js"},"./plugin-sdk/channel-runtime":{"types":"./dist/plugin-sdk/channel-runtime.d.ts","default":"./dist/plugin-sdk/channel-runtime.js"},"./plugin-sdk/channel-targets":{"types":"./dist/plugin-sdk/channel-targets.d.ts","default":"./dist/plugin-sdk/channel-targets.js"},"./plugin-sdk/gateway-runtime":{"types":"./dist/plugin-sdk/gateway-runtime.d.ts","default":"./dist/plugin-sdk/gateway-runtime.js"},"./plugin-sdk/process-runtime":{"types":"./dist/plugin-sdk/process-runtime.d.ts","default":"./dist/plugin-sdk/process-runtime.js"},"./plugin-sdk/provider-google":{"types":"./dist/plugin-sdk/provider-google.d.ts","default":"./dist/plugin-sdk/provider-google.js"},"./plugin-sdk/provider-models":{"types":"./dist/plugin-sdk/provider-models.d.ts","default":"./dist/plugin-sdk/provider-models.js"},"./plugin-sdk/provider-stream":{"types":"./dist/plugin-sdk/provider-stream.d.ts","default":"./dist/plugin-sdk/provider-stream.js"},"./plugin-sdk/webhook-ingress":{"types":"./dist/plugin-sdk/webhook-ingress.d.ts","default":"./dist/plugin-sdk/webhook-ingress.js"},"./plugin-sdk/whatsapp-shared":{"types":"./dist/plugin-sdk/whatsapp-shared.d.ts","default":"./dist/plugin-sdk/whatsapp-shared.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/device-bootstrap":{"types":"./dist/plugin-sdk/device-bootstrap.d.ts","default":"./dist/plugin-sdk/device-bootstrap.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/extension-shared":{"types":"./dist/plugin-sdk/extension-shared.d.ts","default":"./dist/plugin-sdk/extension-shared.js"},"./plugin-sdk/image-generation":{"types":"./dist/plugin-sdk/image-generation.d.ts","default":"./dist/plugin-sdk/image-generation.js"},"./plugin-sdk/outbound-runtime":{"types":"./dist/plugin-sdk/outbound-runtime.d.ts","default":"./dist/plugin-sdk/outbound-runtime.js"},"./plugin-sdk/provider-catalog":{"types":"./dist/plugin-sdk/provider-catalog.d.ts","default":"./dist/plugin-sdk/provider-catalog.js"},"./plugin-sdk/provider-onboard":{"types":"./dist/plugin-sdk/provider-onboard.d.ts","default":"./dist/plugin-sdk/provider-onboard.js"},"./plugin-sdk/security-runtime":{"types":"./dist/plugin-sdk/security-runtime.d.ts","default":"./dist/plugin-sdk/security-runtime.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.js"},"./plugin-sdk/directory-runtime":{"types":"./dist/plugin-sdk/directory-runtime.d.ts","default":"./dist/plugin-sdk/directory-runtime.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/provider-env-vars":{"types":"./dist/plugin-sdk/provider-env-vars.d.ts","default":"./dist/plugin-sdk/provider-env-vars.js"},"./plugin-sdk/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/interactive-runtime":{"types":"./dist/plugin-sdk/interactive-runtime.d.ts","default":"./dist/plugin-sdk/interactive-runtime.js"},"./plugin-sdk/media-understanding":{"types":"./dist/plugin-sdk/media-understanding.d.ts","default":"./dist/plugin-sdk/media-understanding.js"},"./plugin-sdk/provider-auth-login":{"types":"./dist/plugin-sdk/provider-auth-login.d.ts","default":"./dist/plugin-sdk/provider-auth-login.js"},"./plugin-sdk/provider-web-search":{"types":"./dist/plugin-sdk/provider-web-search.d.ts","default":"./dist/plugin-sdk/provider-web-search.js"},"./plugin-sdk/conversation-runtime":{"types":"./dist/plugin-sdk/conversation-runtime.d.ts","default":"./dist/plugin-sdk/conversation-runtime.js"},"./plugin-sdk/matrix-runtime-heavy":{"types":"./dist/plugin-sdk/matrix-runtime-heavy.d.ts","default":"./dist/plugin-sdk/matrix-runtime-heavy.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/channel-config-schema":{"types":"./dist/plugin-sdk/channel-config-schema.d.ts","default":"./dist/plugin-sdk/channel-config-schema.js"},"./plugin-sdk/image-generation-core":{"types":"./dist/plugin-sdk/image-generation-core.d.ts","default":"./dist/plugin-sdk/image-generation-core.js"},"./plugin-sdk/matrix-runtime-shared":{"types":"./dist/plugin-sdk/matrix-runtime-shared.d.ts","default":"./dist/plugin-sdk/matrix-runtime-shared.js"},"./plugin-sdk/provider-auth-api-key":{"types":"./dist/plugin-sdk/provider-auth-api-key.d.ts","default":"./dist/plugin-sdk/provider-auth-api-key.js"},"./plugin-sdk/provider-zai-endpoint":{"types":"./dist/plugin-sdk/provider-zai-endpoint.d.ts","default":"./dist/plugin-sdk/provider-zai-endpoint.js"},"./plugin-sdk/setup-adapter-runtime":{"types":"./dist/plugin-sdk/setup-adapter-runtime.d.ts","default":"./dist/plugin-sdk/setup-adapter-runtime.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-reply-pipeline":{"types":"./dist/plugin-sdk/channel-reply-pipeline.d.ts","default":"./dist/plugin-sdk/channel-reply-pipeline.js"},"./plugin-sdk/thread-bindings-runtime":{"types":"./dist/plugin-sdk/thread-bindings-runtime.d.ts","default":"./dist/plugin-sdk/thread-bindings-runtime.js"},"./plugin-sdk/self-hosted-provider-setup":{"types":"./dist/plugin-sdk/self-hosted-provider-setup.d.ts","default":"./dist/plugin-sdk/self-hosted-provider-setup.js"},"./plugin-sdk/media-understanding-runtime":{"types":"./dist/plugin-sdk/media-understanding-runtime.d.ts","default":"./dist/plugin-sdk/media-understanding-runtime.js"}},"scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:no-conflict-markers && pnpm check:host-env-policy:swift && pnpm check:base-config-schema && pnpm check:bundled-plugin-metadata && pnpm check:bundled-provider-auth-env-vars && pnpm format:check && pnpm tsgo && pnpm plugin-sdk:check-exports && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:plugins:no-extension-src-imports && pnpm lint:plugins:no-extension-test-core-imports && pnpm lint:plugins:no-extension-imports && pnpm lint:plugins:plugin-sdk-subpaths-exported && pnpm lint:extensions:no-src-outside-plugin-sdk && pnpm lint:extensions:no-plugin-sdk-internal && pnpm lint:extensions:no-relative-outside-package && pnpm lint:web-search-provider-boundaries && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-i18n-glossary && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testPlayDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:changed":"pnpm test -- --changed origin/main","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_PROFILE=macmini node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"pnpm config:docs:check && pnpm plugin-sdk:api:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && node --import tsx scripts/release-check.ts","test:channels":"vitest run --config vitest.channels.config.ts","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:contracts":"pnpm test:contracts:channels && pnpm test:contracts:plugins","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:extension":"node scripts/test-extension.mjs","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installPlayDebug","config:docs:gen":"node --import tsx scripts/generate-config-doc-baseline.ts --write","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"OPENCLAW_TEST_SKIP_DEFAULT=1 OPENCLAW_TEST_INCLUDE_EXTENSIONS=1 node scripts/test-parallel.mjs","android:assemble":"cd apps/android && ./gradlew :app:assemblePlayDebug","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","config:docs:check":"node --import tsx scripts/generate-config-doc-baseline.ts --check","config:schema:gen":"node --import tsx scripts/generate-base-config-schema.ts --write","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","test:perf:imports":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","plugin-sdk:api:gen":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:e2e:openshell":"OPENCLAW_E2E_OPENSHELL=1 vitest run --config vitest.e2e.config.ts test/openshell-sandbox.e2e.test.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","config:schema:check":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:startup:memory":"node scripts/check-cli-startup-memory.mjs","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","plugin-sdk:api:check":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check","test:build:singleton":"node scripts/test-built-plugin-singleton.mjs","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","test:coverage:changed":"vitest run --config vitest.unit.config.ts --coverage --changed origin/main","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:contracts:plugins":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/plugins/contracts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","test:perf:profile:main":"node --cpu-prof --cpu-prof-dir=.artifacts/vitest-main-profile ./node_modules/vitest/vitest.mjs run --config vitest.unit.config.ts --no-file-parallelism","android:run:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","plugin-sdk:sync-exports":"node scripts/sync-plugin-sdk-exports.mjs","test:contracts:channels":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/channels/plugins/contracts","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","android:test:third-party":"cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:check-i18n-glossary":"node scripts/check-docs-i18n-glossary.mjs","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","plugin-sdk:check-exports":"node scripts/sync-plugin-sdk-exports.mjs --check","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:perf:profile:runner":"vitest run --config vitest.unit.config.ts --no-file-parallelism --execArgv=--cpu-prof --execArgv=--cpu-prof-dir=.artifacts/vitest-runner-profile --execArgv=--heap-prof --execArgv=--heap-prof-dir=.artifacts/vitest-runner-profile","test:perf:update-timings":"node scripts/test-update-timings.mjs","check:no-conflict-markers":"node scripts/check-no-conflict-markers.mjs","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","release:plugins:npm:check":"node --import tsx scripts/plugin-npm-release-check.ts","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:parallels:npm-update":"bash scripts/e2e/parallels-npm-update-smoke.sh","test:perf:imports:changed":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test -- --changed origin/main","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","android:install:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","android:assemble:third-party":"cd apps/android && ./gradlew :app:assembleThirdPartyDebug","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","check:bundled-plugin-metadata":"node scripts/generate-bundled-plugin-metadata.mjs --check","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","test:gateway:watch-regression":"node scripts/check-gateway-watch-regression.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","test:perf:find-thread-candidates":"node scripts/test-find-thread-candidates.mjs","test:perf:update-memory-hotspots":"node scripts/test-update-memory-hotspots.mjs","lint:plugins:no-extension-imports":"node scripts/check-plugin-extension-import-boundary.mjs","stage:bundled-plugin-runtime-deps":"node scripts/stage-bundled-plugin-runtime-deps.mjs","lint:web-search-provider-boundaries":"node scripts/check-web-search-provider-boundaries.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","check:bundled-provider-auth-env-vars":"node scripts/generate-bundled-provider-auth-env-vars.mjs --check","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-extension-src-imports":"node --import tsx scripts/check-no-extension-src-imports.ts","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","lint:extensions:no-plugin-sdk-internal":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal","lint:extensions:no-src-outside-plugin-sdk":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk","lint:plugins:plugin-sdk-subpaths-exported":"node scripts/check-plugin-sdk-subpath-exports.mjs","lint:extensions:no-relative-outside-package":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package","lint:plugins:no-extension-test-core-imports":"node --import tsx scripts/check-no-extension-test-core-imports.ts","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_resolved":"/Users/steipete/Projects/clawdbot/openclaw-2026.3.22.tgz","_integrity":"sha512-jQqQjRbgTiYf41PKPAIqNAPVmf0WyK4OpRhMCKP5NrC61lNqRXj4n13FMmt8l/pwNQtajtZTXEJEFfQqTKrWLA==","repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.20.0","ajv":"^8.18.0","tar":"7.5.12","zod":"^4.3.6","hono":"4.12.8","jiti":"^2.6.1","long":"^5.3.2","uuid":"^13.0.0","yaml":"^2.8.3","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.4","undici":"^7.24.5","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"21.3.4","ipaddr.js":"^2.3.0","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","@mariozechner/pi-ai":"0.61.1","@mariozechner/pi-tui":"0.61.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1014.0","@agentclientprotocol/sdk":"0.16.1","@anthropic-ai/vertex-sdk":"^0.14.4","@modelcontextprotocol/sdk":"1.27.1","@mariozechner/pi-agent-core":"0.61.1","@mariozechner/pi-coding-agent":"0.61.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^29.0.1","oxfmt":"0.41.0","oxlint":"^1.56.0","tsdown":"0.21.4","vitest":"^4.1.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.17.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.0","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260322.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.22_1774264232654_0.2868206965814182","host":"s3://npm-registry-packages-npm-production"}},"2026.3.23-beta.1":{"name":"openclaw","version":"2026.3.23-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.23-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"e72db9d223d05fba088d6514af6a066647e18169","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.23-beta.1.tgz","fileCount":14645,"integrity":"sha512-Qx/+eldMxfRM5/o2befv5aD3E8ymF/MLbpniJEl+eVlb/O68wYuElET/tQgwJgenEXd6Hg77BcF7TM1p4GO9Rw==","signatures":[{"sig":"MEYCIQDLsIDWsG3RH4biW4ZscOs6hsQSQgjBnvqEJajKc2XDPAIhAJTRw56ljgu++Jl7OzZ4gnQEX9aQ9fhDKxM5e3oEZ7fm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176634704},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.12","hono":"4.12.8","yauzl":"3.2.1","request":"npm:@cypress/request@3.0.10","file-type":"21.3.4","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.5.7","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@tloncorp/tlon-skill","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"],"ignoredBuiltDependencies":["@discordjs/opus","koffi"]},"type":"module","_from":"file:/tmp/openclaw-publish/openclaw-2026.3.23-beta.1.tgz","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./extension-api":"./dist/extensionAPI.js","./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/setup":{"types":"./dist/plugin-sdk/setup.d.ts","default":"./dist/plugin-sdk/setup.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/speech":{"types":"./dist/plugin-sdk/speech.d.ts","default":"./dist/plugin-sdk/speech.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.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/sandbox":{"types":"./dist/plugin-sdk/sandbox.d.ts","default":"./dist/plugin-sdk/sandbox.js"},"./plugin-sdk/testing":{"types":"./dist/plugin-sdk/testing.d.ts","default":"./dist/plugin-sdk/testing.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/line-core":{"types":"./dist/plugin-sdk/line-core.d.ts","default":"./dist/plugin-sdk/line-core.js"},"./plugin-sdk/temp-path":{"types":"./dist/plugin-sdk/temp-path.d.ts","default":"./dist/plugin-sdk/temp-path.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/web-media":{"types":"./dist/plugin-sdk/web-media.d.ts","default":"./dist/plugin-sdk/web-media.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/allow-from":{"types":"./dist/plugin-sdk/allow-from.d.ts","default":"./dist/plugin-sdk/allow-from.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/json-store":{"types":"./dist/plugin-sdk/json-store.d.ts","default":"./dist/plugin-sdk/json-store.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/slack-core":{"types":"./dist/plugin-sdk/slack-core.d.ts","default":"./dist/plugin-sdk/slack-core.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/acp-runtime":{"types":"./dist/plugin-sdk/acp-runtime.d.ts","default":"./dist/plugin-sdk/acp-runtime.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/cli-runtime":{"types":"./dist/plugin-sdk/cli-runtime.d.ts","default":"./dist/plugin-sdk/cli-runtime.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/request-url":{"types":"./dist/plugin-sdk/request-url.d.ts","default":"./dist/plugin-sdk/request-url.js"},"./plugin-sdk/runtime-env":{"types":"./dist/plugin-sdk/runtime-env.d.ts","default":"./dist/plugin-sdk/runtime-env.js"},"./plugin-sdk/setup-tools":{"types":"./dist/plugin-sdk/setup-tools.d.ts","default":"./dist/plugin-sdk/setup-tools.js"},"./plugin-sdk/speech-core":{"types":"./dist/plugin-sdk/speech-core.d.ts","default":"./dist/plugin-sdk/speech-core.js"},"./plugin-sdk/state-paths":{"types":"./dist/plugin-sdk/state-paths.d.ts","default":"./dist/plugin-sdk/state-paths.js"},"./plugin-sdk/command-auth":{"types":"./dist/plugin-sdk/command-auth.d.ts","default":"./dist/plugin-sdk/command-auth.js"},"./plugin-sdk/discord-core":{"types":"./dist/plugin-sdk/discord-core.d.ts","default":"./dist/plugin-sdk/discord-core.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/hook-runtime":{"types":"./dist/plugin-sdk/hook-runtime.d.ts","default":"./dist/plugin-sdk/hook-runtime.js"},"./plugin-sdk/lazy-runtime":{"types":"./dist/plugin-sdk/lazy-runtime.d.ts","default":"./dist/plugin-sdk/lazy-runtime.js"},"./plugin-sdk/line-runtime":{"types":"./dist/plugin-sdk/line-runtime.d.ts","default":"./dist/plugin-sdk/line-runtime.js"},"./plugin-sdk/ollama-setup":{"types":"./dist/plugin-sdk/ollama-setup.d.ts","default":"./dist/plugin-sdk/ollama-setup.js"},"./plugin-sdk/plugin-entry":{"types":"./dist/plugin-sdk/plugin-entry.d.ts","default":"./dist/plugin-sdk/plugin-entry.js"},"./plugin-sdk/secret-input":{"types":"./dist/plugin-sdk/secret-input.d.ts","default":"./dist/plugin-sdk/secret-input.js"},"./plugin-sdk/ssrf-runtime":{"types":"./dist/plugin-sdk/ssrf-runtime.d.ts","default":"./dist/plugin-sdk/ssrf-runtime.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/webhook-path":{"types":"./dist/plugin-sdk/webhook-path.d.ts","default":"./dist/plugin-sdk/webhook-path.js"},"./plugin-sdk/agent-runtime":{"types":"./dist/plugin-sdk/agent-runtime.d.ts","default":"./dist/plugin-sdk/agent-runtime.js"},"./plugin-sdk/boolean-param":{"types":"./dist/plugin-sdk/boolean-param.d.ts","default":"./dist/plugin-sdk/boolean-param.js"},"./plugin-sdk/channel-setup":{"types":"./dist/plugin-sdk/channel-setup.d.ts","default":"./dist/plugin-sdk/channel-setup.js"},"./plugin-sdk/imessage-core":{"types":"./dist/plugin-sdk/imessage-core.d.ts","default":"./dist/plugin-sdk/imessage-core.js"},"./plugin-sdk/infra-runtime":{"types":"./dist/plugin-sdk/infra-runtime.d.ts","default":"./dist/plugin-sdk/infra-runtime.js"},"./plugin-sdk/media-runtime":{"types":"./dist/plugin-sdk/media-runtime.d.ts","default":"./dist/plugin-sdk/media-runtime.js"},"./plugin-sdk/param-readers":{"types":"./dist/plugin-sdk/param-readers.d.ts","default":"./dist/plugin-sdk/param-readers.js"},"./plugin-sdk/provider-auth":{"types":"./dist/plugin-sdk/provider-auth.d.ts","default":"./dist/plugin-sdk/provider-auth.js"},"./plugin-sdk/reply-history":{"types":"./dist/plugin-sdk/reply-history.d.ts","default":"./dist/plugin-sdk/reply-history.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/reply-runtime":{"types":"./dist/plugin-sdk/reply-runtime.d.ts","default":"./dist/plugin-sdk/reply-runtime.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/setup-runtime":{"types":"./dist/plugin-sdk/setup-runtime.d.ts","default":"./dist/plugin-sdk/setup-runtime.js"},"./plugin-sdk/slack-targets":{"types":"./dist/plugin-sdk/slack-targets.d.ts","default":"./dist/plugin-sdk/slack-targets.js"},"./plugin-sdk/telegram-core":{"types":"./dist/plugin-sdk/telegram-core.d.ts","default":"./dist/plugin-sdk/telegram-core.js"},"./plugin-sdk/whatsapp-core":{"types":"./dist/plugin-sdk/whatsapp-core.d.ts","default":"./dist/plugin-sdk/whatsapp-core.js"},"./plugin-sdk/windows-spawn":{"types":"./dist/plugin-sdk/windows-spawn.d.ts","default":"./dist/plugin-sdk/windows-spawn.js"},"./plugin-sdk/channel-policy":{"types":"./dist/plugin-sdk/channel-policy.d.ts","default":"./dist/plugin-sdk/channel-policy.js"},"./plugin-sdk/channel-status":{"types":"./dist/plugin-sdk/channel-status.d.ts","default":"./dist/plugin-sdk/channel-status.js"},"./plugin-sdk/config-runtime":{"types":"./dist/plugin-sdk/config-runtime.d.ts","default":"./dist/plugin-sdk/config-runtime.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/plugin-runtime":{"types":"./dist/plugin-sdk/plugin-runtime.d.ts","default":"./dist/plugin-sdk/plugin-runtime.js"},"./plugin-sdk/provider-entry":{"types":"./dist/plugin-sdk/provider-entry.d.ts","default":"./dist/plugin-sdk/provider-entry.js"},"./plugin-sdk/provider-setup":{"types":"./dist/plugin-sdk/provider-setup.d.ts","default":"./dist/plugin-sdk/provider-setup.js"},"./plugin-sdk/provider-usage":{"types":"./dist/plugin-sdk/provider-usage.d.ts","default":"./dist/plugin-sdk/provider-usage.js"},"./plugin-sdk/speech-runtime":{"types":"./dist/plugin-sdk/speech-runtime.d.ts","default":"./dist/plugin-sdk/speech-runtime.js"},"./plugin-sdk/status-helpers":{"types":"./dist/plugin-sdk/status-helpers.d.ts","default":"./dist/plugin-sdk/status-helpers.js"},"./plugin-sdk/account-helpers":{"types":"./dist/plugin-sdk/account-helpers.d.ts","default":"./dist/plugin-sdk/account-helpers.js"},"./plugin-sdk/channel-actions":{"types":"./dist/plugin-sdk/channel-actions.d.ts","default":"./dist/plugin-sdk/channel-actions.js"},"./plugin-sdk/channel-inbound":{"types":"./dist/plugin-sdk/channel-inbound.d.ts","default":"./dist/plugin-sdk/channel-inbound.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.js"},"./plugin-sdk/channel-runtime":{"types":"./dist/plugin-sdk/channel-runtime.d.ts","default":"./dist/plugin-sdk/channel-runtime.js"},"./plugin-sdk/channel-targets":{"types":"./dist/plugin-sdk/channel-targets.d.ts","default":"./dist/plugin-sdk/channel-targets.js"},"./plugin-sdk/gateway-runtime":{"types":"./dist/plugin-sdk/gateway-runtime.d.ts","default":"./dist/plugin-sdk/gateway-runtime.js"},"./plugin-sdk/process-runtime":{"types":"./dist/plugin-sdk/process-runtime.d.ts","default":"./dist/plugin-sdk/process-runtime.js"},"./plugin-sdk/provider-google":{"types":"./dist/plugin-sdk/provider-google.d.ts","default":"./dist/plugin-sdk/provider-google.js"},"./plugin-sdk/provider-models":{"types":"./dist/plugin-sdk/provider-models.d.ts","default":"./dist/plugin-sdk/provider-models.js"},"./plugin-sdk/provider-stream":{"types":"./dist/plugin-sdk/provider-stream.d.ts","default":"./dist/plugin-sdk/provider-stream.js"},"./plugin-sdk/webhook-ingress":{"types":"./dist/plugin-sdk/webhook-ingress.d.ts","default":"./dist/plugin-sdk/webhook-ingress.js"},"./plugin-sdk/whatsapp-shared":{"types":"./dist/plugin-sdk/whatsapp-shared.d.ts","default":"./dist/plugin-sdk/whatsapp-shared.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/device-bootstrap":{"types":"./dist/plugin-sdk/device-bootstrap.d.ts","default":"./dist/plugin-sdk/device-bootstrap.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/extension-shared":{"types":"./dist/plugin-sdk/extension-shared.d.ts","default":"./dist/plugin-sdk/extension-shared.js"},"./plugin-sdk/image-generation":{"types":"./dist/plugin-sdk/image-generation.d.ts","default":"./dist/plugin-sdk/image-generation.js"},"./plugin-sdk/outbound-runtime":{"types":"./dist/plugin-sdk/outbound-runtime.d.ts","default":"./dist/plugin-sdk/outbound-runtime.js"},"./plugin-sdk/provider-catalog":{"types":"./dist/plugin-sdk/provider-catalog.d.ts","default":"./dist/plugin-sdk/provider-catalog.js"},"./plugin-sdk/provider-onboard":{"types":"./dist/plugin-sdk/provider-onboard.d.ts","default":"./dist/plugin-sdk/provider-onboard.js"},"./plugin-sdk/security-runtime":{"types":"./dist/plugin-sdk/security-runtime.d.ts","default":"./dist/plugin-sdk/security-runtime.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.js"},"./plugin-sdk/directory-runtime":{"types":"./dist/plugin-sdk/directory-runtime.d.ts","default":"./dist/plugin-sdk/directory-runtime.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/provider-env-vars":{"types":"./dist/plugin-sdk/provider-env-vars.d.ts","default":"./dist/plugin-sdk/provider-env-vars.js"},"./plugin-sdk/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/interactive-runtime":{"types":"./dist/plugin-sdk/interactive-runtime.d.ts","default":"./dist/plugin-sdk/interactive-runtime.js"},"./plugin-sdk/media-understanding":{"types":"./dist/plugin-sdk/media-understanding.d.ts","default":"./dist/plugin-sdk/media-understanding.js"},"./plugin-sdk/provider-auth-login":{"types":"./dist/plugin-sdk/provider-auth-login.d.ts","default":"./dist/plugin-sdk/provider-auth-login.js"},"./plugin-sdk/provider-web-search":{"types":"./dist/plugin-sdk/provider-web-search.d.ts","default":"./dist/plugin-sdk/provider-web-search.js"},"./plugin-sdk/conversation-runtime":{"types":"./dist/plugin-sdk/conversation-runtime.d.ts","default":"./dist/plugin-sdk/conversation-runtime.js"},"./plugin-sdk/matrix-runtime-heavy":{"types":"./dist/plugin-sdk/matrix-runtime-heavy.d.ts","default":"./dist/plugin-sdk/matrix-runtime-heavy.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/channel-config-schema":{"types":"./dist/plugin-sdk/channel-config-schema.d.ts","default":"./dist/plugin-sdk/channel-config-schema.js"},"./plugin-sdk/image-generation-core":{"types":"./dist/plugin-sdk/image-generation-core.d.ts","default":"./dist/plugin-sdk/image-generation-core.js"},"./plugin-sdk/matrix-runtime-shared":{"types":"./dist/plugin-sdk/matrix-runtime-shared.d.ts","default":"./dist/plugin-sdk/matrix-runtime-shared.js"},"./plugin-sdk/provider-auth-api-key":{"types":"./dist/plugin-sdk/provider-auth-api-key.d.ts","default":"./dist/plugin-sdk/provider-auth-api-key.js"},"./plugin-sdk/provider-zai-endpoint":{"types":"./dist/plugin-sdk/provider-zai-endpoint.d.ts","default":"./dist/plugin-sdk/provider-zai-endpoint.js"},"./plugin-sdk/setup-adapter-runtime":{"types":"./dist/plugin-sdk/setup-adapter-runtime.d.ts","default":"./dist/plugin-sdk/setup-adapter-runtime.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-reply-pipeline":{"types":"./dist/plugin-sdk/channel-reply-pipeline.d.ts","default":"./dist/plugin-sdk/channel-reply-pipeline.js"},"./plugin-sdk/thread-bindings-runtime":{"types":"./dist/plugin-sdk/thread-bindings-runtime.d.ts","default":"./dist/plugin-sdk/thread-bindings-runtime.js"},"./plugin-sdk/self-hosted-provider-setup":{"types":"./dist/plugin-sdk/self-hosted-provider-setup.d.ts","default":"./dist/plugin-sdk/self-hosted-provider-setup.js"},"./plugin-sdk/media-understanding-runtime":{"types":"./dist/plugin-sdk/media-understanding-runtime.d.ts","default":"./dist/plugin-sdk/media-understanding-runtime.js"}},"scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:no-conflict-markers && pnpm check:host-env-policy:swift && pnpm check:base-config-schema && pnpm check:bundled-plugin-metadata && pnpm check:bundled-provider-auth-env-vars && pnpm format:check && pnpm tsgo && pnpm plugin-sdk:check-exports && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:plugins:no-extension-src-imports && pnpm lint:plugins:no-extension-test-core-imports && pnpm lint:plugins:no-extension-imports && pnpm lint:plugins:plugin-sdk-subpaths-exported && pnpm lint:extensions:no-src-outside-plugin-sdk && pnpm lint:extensions:no-plugin-sdk-internal && pnpm lint:extensions:no-relative-outside-package && pnpm lint:web-search-provider-boundaries && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-i18n-glossary && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testPlayDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:changed":"pnpm test -- --changed origin/main","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_PROFILE=macmini node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"pnpm config:docs:check && pnpm plugin-sdk:api:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && pnpm ui:build && node --import tsx scripts/release-check.ts","test:channels":"OPENCLAW_TEST_SKIP_DEFAULT=1 OPENCLAW_TEST_INCLUDE_CHANNELS=1 node scripts/test-parallel.mjs","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:contracts":"pnpm test:contracts:channels && pnpm test:contracts:plugins","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:extension":"node scripts/test-extension.mjs","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installPlayDebug","config:docs:gen":"node --import tsx scripts/generate-config-doc-baseline.ts --write","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"OPENCLAW_TEST_SKIP_DEFAULT=1 OPENCLAW_TEST_INCLUDE_EXTENSIONS=1 node scripts/test-parallel.mjs","android:assemble":"cd apps/android && ./gradlew :app:assemblePlayDebug","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","config:docs:check":"node --import tsx scripts/generate-config-doc-baseline.ts --check","config:schema:gen":"node --import tsx scripts/generate-base-config-schema.ts --write","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","test:perf:imports":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","plugin-sdk:api:gen":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:e2e:openshell":"OPENCLAW_E2E_OPENSHELL=1 vitest run --config vitest.e2e.config.ts test/openshell-sandbox.e2e.test.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","config:schema:check":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:startup:memory":"node scripts/check-cli-startup-memory.mjs","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","plugin-sdk:api:check":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check","test:build:singleton":"node scripts/test-built-plugin-singleton.mjs","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","test:coverage:changed":"vitest run --config vitest.unit.config.ts --coverage --changed origin/main","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:contracts:plugins":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/plugins/contracts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","test:perf:profile:main":"node scripts/run-vitest-profile.mjs main","android:run:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","plugin-sdk:sync-exports":"node scripts/sync-plugin-sdk-exports.mjs","test:contracts:channels":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/channels/plugins/contracts","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","android:test:third-party":"cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:check-i18n-glossary":"node scripts/check-docs-i18n-glossary.mjs","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","plugin-sdk:check-exports":"node scripts/sync-plugin-sdk-exports.mjs --check","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:perf:profile:runner":"node scripts/run-vitest-profile.mjs runner","test:perf:update-timings":"node scripts/test-update-timings.mjs","check:no-conflict-markers":"node scripts/check-no-conflict-markers.mjs","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","release:plugins:npm:check":"node --import tsx scripts/plugin-npm-release-check.ts","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:parallels:npm-update":"bash scripts/e2e/parallels-npm-update-smoke.sh","test:perf:imports:changed":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test -- --changed origin/main","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","android:install:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","android:assemble:third-party":"cd apps/android && ./gradlew :app:assembleThirdPartyDebug","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","check:bundled-plugin-metadata":"node scripts/generate-bundled-plugin-metadata.mjs --check","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","test:gateway:watch-regression":"node scripts/check-gateway-watch-regression.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","test:perf:find-thread-candidates":"node scripts/test-find-thread-candidates.mjs","test:perf:update-memory-hotspots":"node scripts/test-update-memory-hotspots.mjs","lint:plugins:no-extension-imports":"node scripts/check-plugin-extension-import-boundary.mjs","stage:bundled-plugin-runtime-deps":"node scripts/stage-bundled-plugin-runtime-deps.mjs","lint:web-search-provider-boundaries":"node scripts/check-web-search-provider-boundaries.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","check:bundled-provider-auth-env-vars":"node scripts/generate-bundled-provider-auth-env-vars.mjs --check","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-extension-src-imports":"node --import tsx scripts/check-no-extension-src-imports.ts","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","lint:extensions:no-plugin-sdk-internal":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal","lint:extensions:no-src-outside-plugin-sdk":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk","lint:plugins:plugin-sdk-subpaths-exported":"node scripts/check-plugin-sdk-subpath-exports.mjs","lint:extensions:no-relative-outside-package":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package","lint:plugins:no-extension-test-core-imports":"node --import tsx scripts/check-no-extension-test-core-imports.ts","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_resolved":"/tmp/openclaw-publish/openclaw-2026.3.23-beta.1.tgz","_integrity":"sha512-Qx/+eldMxfRM5/o2befv5aD3E8ymF/MLbpniJEl+eVlb/O68wYuElET/tQgwJgenEXd6Hg77BcF7TM1p4GO9Rw==","repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.20.0","ajv":"^8.18.0","tar":"7.5.12","zod":"^4.3.6","hono":"4.12.8","jiti":"^2.6.1","long":"^5.3.2","uuid":"^13.0.0","yaml":"^2.8.3","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.4","undici":"^7.24.5","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"21.3.4","ipaddr.js":"^2.3.0","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","@mariozechner/pi-ai":"0.61.1","@mariozechner/pi-tui":"0.61.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1014.0","@agentclientprotocol/sdk":"0.16.1","@anthropic-ai/vertex-sdk":"^0.14.4","@modelcontextprotocol/sdk":"1.27.1","@mariozechner/pi-agent-core":"0.61.1","@mariozechner/pi-coding-agent":"0.61.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^29.0.1","oxfmt":"0.41.0","oxlint":"^1.56.0","tsdown":"0.21.4","vitest":"^4.1.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.17.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.0","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260322.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.23-beta.1_1774293423862_0.16910457549675018","host":"s3://npm-registry-packages-npm-production"}},"2026.3.23":{"name":"openclaw","version":"2026.3.23","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.23","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"76cce1381788e64b6b684d1e25af1e8f18ef8a02","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.23.tgz","fileCount":14646,"integrity":"sha512-CSenO9Q+WePEzhzr3vIgx70GLanQVLcwgtItxT7gy1XtE7uiAVLBTqOxn2nc6BGGX3R3u9RqOpUh/vyAPvameA==","signatures":[{"sig":"MEQCIHXsbqy9ySgujLrJkU6wjor6gjeFTtkQniCsOMeOcSLvAiAx9PAxr1M53LOdploBIMXCBLULjtf6axHIPCtDRyrBYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176666550},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.12","hono":"4.12.8","yauzl":"3.2.1","request":"npm:@cypress/request@3.0.10","file-type":"21.3.4","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.5.7","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@tloncorp/tlon-skill","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"],"ignoredBuiltDependencies":["@discordjs/opus","koffi"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./extension-api":"./dist/extensionAPI.js","./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/setup":{"types":"./dist/plugin-sdk/setup.d.ts","default":"./dist/plugin-sdk/setup.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/speech":{"types":"./dist/plugin-sdk/speech.d.ts","default":"./dist/plugin-sdk/speech.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.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/sandbox":{"types":"./dist/plugin-sdk/sandbox.d.ts","default":"./dist/plugin-sdk/sandbox.js"},"./plugin-sdk/testing":{"types":"./dist/plugin-sdk/testing.d.ts","default":"./dist/plugin-sdk/testing.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/line-core":{"types":"./dist/plugin-sdk/line-core.d.ts","default":"./dist/plugin-sdk/line-core.js"},"./plugin-sdk/temp-path":{"types":"./dist/plugin-sdk/temp-path.d.ts","default":"./dist/plugin-sdk/temp-path.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/web-media":{"types":"./dist/plugin-sdk/web-media.d.ts","default":"./dist/plugin-sdk/web-media.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/allow-from":{"types":"./dist/plugin-sdk/allow-from.d.ts","default":"./dist/plugin-sdk/allow-from.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/json-store":{"types":"./dist/plugin-sdk/json-store.d.ts","default":"./dist/plugin-sdk/json-store.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/slack-core":{"types":"./dist/plugin-sdk/slack-core.d.ts","default":"./dist/plugin-sdk/slack-core.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/acp-runtime":{"types":"./dist/plugin-sdk/acp-runtime.d.ts","default":"./dist/plugin-sdk/acp-runtime.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/cli-runtime":{"types":"./dist/plugin-sdk/cli-runtime.d.ts","default":"./dist/plugin-sdk/cli-runtime.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/request-url":{"types":"./dist/plugin-sdk/request-url.d.ts","default":"./dist/plugin-sdk/request-url.js"},"./plugin-sdk/runtime-env":{"types":"./dist/plugin-sdk/runtime-env.d.ts","default":"./dist/plugin-sdk/runtime-env.js"},"./plugin-sdk/setup-tools":{"types":"./dist/plugin-sdk/setup-tools.d.ts","default":"./dist/plugin-sdk/setup-tools.js"},"./plugin-sdk/speech-core":{"types":"./dist/plugin-sdk/speech-core.d.ts","default":"./dist/plugin-sdk/speech-core.js"},"./plugin-sdk/state-paths":{"types":"./dist/plugin-sdk/state-paths.d.ts","default":"./dist/plugin-sdk/state-paths.js"},"./plugin-sdk/command-auth":{"types":"./dist/plugin-sdk/command-auth.d.ts","default":"./dist/plugin-sdk/command-auth.js"},"./plugin-sdk/discord-core":{"types":"./dist/plugin-sdk/discord-core.d.ts","default":"./dist/plugin-sdk/discord-core.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/hook-runtime":{"types":"./dist/plugin-sdk/hook-runtime.d.ts","default":"./dist/plugin-sdk/hook-runtime.js"},"./plugin-sdk/lazy-runtime":{"types":"./dist/plugin-sdk/lazy-runtime.d.ts","default":"./dist/plugin-sdk/lazy-runtime.js"},"./plugin-sdk/line-runtime":{"types":"./dist/plugin-sdk/line-runtime.d.ts","default":"./dist/plugin-sdk/line-runtime.js"},"./plugin-sdk/ollama-setup":{"types":"./dist/plugin-sdk/ollama-setup.d.ts","default":"./dist/plugin-sdk/ollama-setup.js"},"./plugin-sdk/plugin-entry":{"types":"./dist/plugin-sdk/plugin-entry.d.ts","default":"./dist/plugin-sdk/plugin-entry.js"},"./plugin-sdk/secret-input":{"types":"./dist/plugin-sdk/secret-input.d.ts","default":"./dist/plugin-sdk/secret-input.js"},"./plugin-sdk/ssrf-runtime":{"types":"./dist/plugin-sdk/ssrf-runtime.d.ts","default":"./dist/plugin-sdk/ssrf-runtime.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/webhook-path":{"types":"./dist/plugin-sdk/webhook-path.d.ts","default":"./dist/plugin-sdk/webhook-path.js"},"./plugin-sdk/agent-runtime":{"types":"./dist/plugin-sdk/agent-runtime.d.ts","default":"./dist/plugin-sdk/agent-runtime.js"},"./plugin-sdk/boolean-param":{"types":"./dist/plugin-sdk/boolean-param.d.ts","default":"./dist/plugin-sdk/boolean-param.js"},"./plugin-sdk/channel-setup":{"types":"./dist/plugin-sdk/channel-setup.d.ts","default":"./dist/plugin-sdk/channel-setup.js"},"./plugin-sdk/imessage-core":{"types":"./dist/plugin-sdk/imessage-core.d.ts","default":"./dist/plugin-sdk/imessage-core.js"},"./plugin-sdk/infra-runtime":{"types":"./dist/plugin-sdk/infra-runtime.d.ts","default":"./dist/plugin-sdk/infra-runtime.js"},"./plugin-sdk/media-runtime":{"types":"./dist/plugin-sdk/media-runtime.d.ts","default":"./dist/plugin-sdk/media-runtime.js"},"./plugin-sdk/param-readers":{"types":"./dist/plugin-sdk/param-readers.d.ts","default":"./dist/plugin-sdk/param-readers.js"},"./plugin-sdk/provider-auth":{"types":"./dist/plugin-sdk/provider-auth.d.ts","default":"./dist/plugin-sdk/provider-auth.js"},"./plugin-sdk/reply-history":{"types":"./dist/plugin-sdk/reply-history.d.ts","default":"./dist/plugin-sdk/reply-history.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/reply-runtime":{"types":"./dist/plugin-sdk/reply-runtime.d.ts","default":"./dist/plugin-sdk/reply-runtime.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/setup-runtime":{"types":"./dist/plugin-sdk/setup-runtime.d.ts","default":"./dist/plugin-sdk/setup-runtime.js"},"./plugin-sdk/slack-targets":{"types":"./dist/plugin-sdk/slack-targets.d.ts","default":"./dist/plugin-sdk/slack-targets.js"},"./plugin-sdk/telegram-core":{"types":"./dist/plugin-sdk/telegram-core.d.ts","default":"./dist/plugin-sdk/telegram-core.js"},"./plugin-sdk/whatsapp-core":{"types":"./dist/plugin-sdk/whatsapp-core.d.ts","default":"./dist/plugin-sdk/whatsapp-core.js"},"./plugin-sdk/windows-spawn":{"types":"./dist/plugin-sdk/windows-spawn.d.ts","default":"./dist/plugin-sdk/windows-spawn.js"},"./plugin-sdk/channel-policy":{"types":"./dist/plugin-sdk/channel-policy.d.ts","default":"./dist/plugin-sdk/channel-policy.js"},"./plugin-sdk/channel-status":{"types":"./dist/plugin-sdk/channel-status.d.ts","default":"./dist/plugin-sdk/channel-status.js"},"./plugin-sdk/config-runtime":{"types":"./dist/plugin-sdk/config-runtime.d.ts","default":"./dist/plugin-sdk/config-runtime.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/plugin-runtime":{"types":"./dist/plugin-sdk/plugin-runtime.d.ts","default":"./dist/plugin-sdk/plugin-runtime.js"},"./plugin-sdk/provider-entry":{"types":"./dist/plugin-sdk/provider-entry.d.ts","default":"./dist/plugin-sdk/provider-entry.js"},"./plugin-sdk/provider-setup":{"types":"./dist/plugin-sdk/provider-setup.d.ts","default":"./dist/plugin-sdk/provider-setup.js"},"./plugin-sdk/provider-usage":{"types":"./dist/plugin-sdk/provider-usage.d.ts","default":"./dist/plugin-sdk/provider-usage.js"},"./plugin-sdk/speech-runtime":{"types":"./dist/plugin-sdk/speech-runtime.d.ts","default":"./dist/plugin-sdk/speech-runtime.js"},"./plugin-sdk/status-helpers":{"types":"./dist/plugin-sdk/status-helpers.d.ts","default":"./dist/plugin-sdk/status-helpers.js"},"./plugin-sdk/account-helpers":{"types":"./dist/plugin-sdk/account-helpers.d.ts","default":"./dist/plugin-sdk/account-helpers.js"},"./plugin-sdk/channel-actions":{"types":"./dist/plugin-sdk/channel-actions.d.ts","default":"./dist/plugin-sdk/channel-actions.js"},"./plugin-sdk/channel-inbound":{"types":"./dist/plugin-sdk/channel-inbound.d.ts","default":"./dist/plugin-sdk/channel-inbound.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.js"},"./plugin-sdk/channel-runtime":{"types":"./dist/plugin-sdk/channel-runtime.d.ts","default":"./dist/plugin-sdk/channel-runtime.js"},"./plugin-sdk/channel-targets":{"types":"./dist/plugin-sdk/channel-targets.d.ts","default":"./dist/plugin-sdk/channel-targets.js"},"./plugin-sdk/gateway-runtime":{"types":"./dist/plugin-sdk/gateway-runtime.d.ts","default":"./dist/plugin-sdk/gateway-runtime.js"},"./plugin-sdk/process-runtime":{"types":"./dist/plugin-sdk/process-runtime.d.ts","default":"./dist/plugin-sdk/process-runtime.js"},"./plugin-sdk/provider-google":{"types":"./dist/plugin-sdk/provider-google.d.ts","default":"./dist/plugin-sdk/provider-google.js"},"./plugin-sdk/provider-models":{"types":"./dist/plugin-sdk/provider-models.d.ts","default":"./dist/plugin-sdk/provider-models.js"},"./plugin-sdk/provider-stream":{"types":"./dist/plugin-sdk/provider-stream.d.ts","default":"./dist/plugin-sdk/provider-stream.js"},"./plugin-sdk/webhook-ingress":{"types":"./dist/plugin-sdk/webhook-ingress.d.ts","default":"./dist/plugin-sdk/webhook-ingress.js"},"./plugin-sdk/whatsapp-shared":{"types":"./dist/plugin-sdk/whatsapp-shared.d.ts","default":"./dist/plugin-sdk/whatsapp-shared.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/device-bootstrap":{"types":"./dist/plugin-sdk/device-bootstrap.d.ts","default":"./dist/plugin-sdk/device-bootstrap.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/extension-shared":{"types":"./dist/plugin-sdk/extension-shared.d.ts","default":"./dist/plugin-sdk/extension-shared.js"},"./plugin-sdk/image-generation":{"types":"./dist/plugin-sdk/image-generation.d.ts","default":"./dist/plugin-sdk/image-generation.js"},"./plugin-sdk/outbound-runtime":{"types":"./dist/plugin-sdk/outbound-runtime.d.ts","default":"./dist/plugin-sdk/outbound-runtime.js"},"./plugin-sdk/provider-catalog":{"types":"./dist/plugin-sdk/provider-catalog.d.ts","default":"./dist/plugin-sdk/provider-catalog.js"},"./plugin-sdk/provider-onboard":{"types":"./dist/plugin-sdk/provider-onboard.d.ts","default":"./dist/plugin-sdk/provider-onboard.js"},"./plugin-sdk/security-runtime":{"types":"./dist/plugin-sdk/security-runtime.d.ts","default":"./dist/plugin-sdk/security-runtime.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.js"},"./plugin-sdk/directory-runtime":{"types":"./dist/plugin-sdk/directory-runtime.d.ts","default":"./dist/plugin-sdk/directory-runtime.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/provider-env-vars":{"types":"./dist/plugin-sdk/provider-env-vars.d.ts","default":"./dist/plugin-sdk/provider-env-vars.js"},"./plugin-sdk/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/interactive-runtime":{"types":"./dist/plugin-sdk/interactive-runtime.d.ts","default":"./dist/plugin-sdk/interactive-runtime.js"},"./plugin-sdk/media-understanding":{"types":"./dist/plugin-sdk/media-understanding.d.ts","default":"./dist/plugin-sdk/media-understanding.js"},"./plugin-sdk/provider-auth-login":{"types":"./dist/plugin-sdk/provider-auth-login.d.ts","default":"./dist/plugin-sdk/provider-auth-login.js"},"./plugin-sdk/provider-web-search":{"types":"./dist/plugin-sdk/provider-web-search.d.ts","default":"./dist/plugin-sdk/provider-web-search.js"},"./plugin-sdk/conversation-runtime":{"types":"./dist/plugin-sdk/conversation-runtime.d.ts","default":"./dist/plugin-sdk/conversation-runtime.js"},"./plugin-sdk/matrix-runtime-heavy":{"types":"./dist/plugin-sdk/matrix-runtime-heavy.d.ts","default":"./dist/plugin-sdk/matrix-runtime-heavy.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/channel-config-schema":{"types":"./dist/plugin-sdk/channel-config-schema.d.ts","default":"./dist/plugin-sdk/channel-config-schema.js"},"./plugin-sdk/image-generation-core":{"types":"./dist/plugin-sdk/image-generation-core.d.ts","default":"./dist/plugin-sdk/image-generation-core.js"},"./plugin-sdk/matrix-runtime-shared":{"types":"./dist/plugin-sdk/matrix-runtime-shared.d.ts","default":"./dist/plugin-sdk/matrix-runtime-shared.js"},"./plugin-sdk/provider-auth-api-key":{"types":"./dist/plugin-sdk/provider-auth-api-key.d.ts","default":"./dist/plugin-sdk/provider-auth-api-key.js"},"./plugin-sdk/provider-zai-endpoint":{"types":"./dist/plugin-sdk/provider-zai-endpoint.d.ts","default":"./dist/plugin-sdk/provider-zai-endpoint.js"},"./plugin-sdk/setup-adapter-runtime":{"types":"./dist/plugin-sdk/setup-adapter-runtime.d.ts","default":"./dist/plugin-sdk/setup-adapter-runtime.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-reply-pipeline":{"types":"./dist/plugin-sdk/channel-reply-pipeline.d.ts","default":"./dist/plugin-sdk/channel-reply-pipeline.js"},"./plugin-sdk/thread-bindings-runtime":{"types":"./dist/plugin-sdk/thread-bindings-runtime.d.ts","default":"./dist/plugin-sdk/thread-bindings-runtime.js"},"./plugin-sdk/self-hosted-provider-setup":{"types":"./dist/plugin-sdk/self-hosted-provider-setup.d.ts","default":"./dist/plugin-sdk/self-hosted-provider-setup.js"},"./plugin-sdk/media-understanding-runtime":{"types":"./dist/plugin-sdk/media-understanding-runtime.d.ts","default":"./dist/plugin-sdk/media-understanding-runtime.js"}},"gitHead":"ccfeecb6887cd97937e33a71877ad512741e82b2","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:no-conflict-markers && pnpm check:host-env-policy:swift && pnpm check:base-config-schema && pnpm check:bundled-plugin-metadata && pnpm check:bundled-provider-auth-env-vars && pnpm format:check && pnpm tsgo && pnpm plugin-sdk:check-exports && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:plugins:no-extension-src-imports && pnpm lint:plugins:no-extension-test-core-imports && pnpm lint:plugins:no-extension-imports && pnpm lint:plugins:plugin-sdk-subpaths-exported && pnpm lint:extensions:no-src-outside-plugin-sdk && pnpm lint:extensions:no-plugin-sdk-internal && pnpm lint:extensions:no-relative-outside-package && pnpm lint:web-search-provider-boundaries && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-i18n-glossary && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testPlayDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:changed":"pnpm test -- --changed origin/main","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_PROFILE=macmini node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"pnpm config:docs:check && pnpm plugin-sdk:api:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && pnpm ui:build && node --import tsx scripts/release-check.ts","test:channels":"OPENCLAW_TEST_SKIP_DEFAULT=1 OPENCLAW_TEST_INCLUDE_CHANNELS=1 node scripts/test-parallel.mjs","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:contracts":"pnpm test:contracts:channels && pnpm test:contracts:plugins","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:extension":"node scripts/test-extension.mjs","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installPlayDebug","config:docs:gen":"node --import tsx scripts/generate-config-doc-baseline.ts --write","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"OPENCLAW_TEST_SKIP_DEFAULT=1 OPENCLAW_TEST_INCLUDE_EXTENSIONS=1 node scripts/test-parallel.mjs","android:assemble":"cd apps/android && ./gradlew :app:assemblePlayDebug","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","config:docs:check":"node --import tsx scripts/generate-config-doc-baseline.ts --check","config:schema:gen":"node --import tsx scripts/generate-base-config-schema.ts --write","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","test:perf:imports":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","plugin-sdk:api:gen":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:e2e:openshell":"OPENCLAW_E2E_OPENSHELL=1 vitest run --config vitest.e2e.config.ts test/openshell-sandbox.e2e.test.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","config:schema:check":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:startup:memory":"node scripts/check-cli-startup-memory.mjs","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","plugin-sdk:api:check":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check","test:build:singleton":"node scripts/test-built-plugin-singleton.mjs","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","test:coverage:changed":"vitest run --config vitest.unit.config.ts --coverage --changed origin/main","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:contracts:plugins":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/plugins/contracts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","test:perf:profile:main":"node scripts/run-vitest-profile.mjs main","android:run:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","plugin-sdk:sync-exports":"node scripts/sync-plugin-sdk-exports.mjs","test:contracts:channels":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/channels/plugins/contracts","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","android:test:third-party":"cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:check-i18n-glossary":"node scripts/check-docs-i18n-glossary.mjs","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","plugin-sdk:check-exports":"node scripts/sync-plugin-sdk-exports.mjs --check","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:perf:profile:runner":"node scripts/run-vitest-profile.mjs runner","test:perf:update-timings":"node scripts/test-update-timings.mjs","check:no-conflict-markers":"node scripts/check-no-conflict-markers.mjs","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","release:plugins:npm:check":"node --import tsx scripts/plugin-npm-release-check.ts","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:parallels:npm-update":"bash scripts/e2e/parallels-npm-update-smoke.sh","test:perf:imports:changed":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test -- --changed origin/main","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","android:install:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","android:assemble:third-party":"cd apps/android && ./gradlew :app:assembleThirdPartyDebug","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","check:bundled-plugin-metadata":"node scripts/generate-bundled-plugin-metadata.mjs --check","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","test:gateway:watch-regression":"node scripts/check-gateway-watch-regression.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","test:perf:find-thread-candidates":"node scripts/test-find-thread-candidates.mjs","test:perf:update-memory-hotspots":"node scripts/test-update-memory-hotspots.mjs","lint:plugins:no-extension-imports":"node scripts/check-plugin-extension-import-boundary.mjs","stage:bundled-plugin-runtime-deps":"node scripts/stage-bundled-plugin-runtime-deps.mjs","lint:web-search-provider-boundaries":"node scripts/check-web-search-provider-boundaries.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","check:bundled-provider-auth-env-vars":"node scripts/generate-bundled-provider-auth-env-vars.mjs --check","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-extension-src-imports":"node --import tsx scripts/check-no-extension-src-imports.ts","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","lint:extensions:no-plugin-sdk-internal":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal","lint:extensions:no-src-outside-plugin-sdk":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk","lint:plugins:plugin-sdk-subpaths-exported":"node scripts/check-plugin-sdk-subpath-exports.mjs","lint:extensions:no-relative-outside-package":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package","lint:plugins:no-extension-test-core-imports":"node --import tsx scripts/check-no-extension-test-core-imports.ts","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.8.1","dependencies":{"ws":"^8.20.0","ajv":"^8.18.0","tar":"7.5.12","zod":"^4.3.6","hono":"4.12.8","jiti":"^2.6.1","long":"^5.3.2","uuid":"^13.0.0","yaml":"^2.8.3","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.4","undici":"^7.24.5","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"21.3.4","ipaddr.js":"^2.3.0","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","@mariozechner/pi-ai":"0.61.1","@mariozechner/pi-tui":"0.61.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1014.0","@agentclientprotocol/sdk":"0.16.1","@anthropic-ai/vertex-sdk":"^0.14.4","@modelcontextprotocol/sdk":"1.27.1","@mariozechner/pi-agent-core":"0.61.1","@mariozechner/pi-coding-agent":"0.61.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^29.0.1","oxfmt":"0.41.0","oxlint":"^1.56.0","tsdown":"0.21.4","vitest":"^4.1.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.17.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.0","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260322.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.23_1774307743001_0.9974649713143815","host":"s3://npm-registry-packages-npm-production"}},"2026.3.23-1":{"name":"openclaw","version":"2026.3.23-1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.23-1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"0fde549a1356e04e783adf3b36467f8d56762fc9","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.23-1.tgz","fileCount":14931,"integrity":"sha512-i9eMEspt57bvcwqI6ppYVys70QplQIKtLs1CoTwmd574whDzr7vUnMFhVJr9a6ZupaCNzWygaQVYzdi5BDv5tw==","signatures":[{"sig":"MEUCIGp1V2mydapbavNSB5P3XYca9jmEW7eF5HGVBnrf7kH6AiEArSZK1s/rDEUp8yT01eiLVfRU/BI8l/sKr6ChU5B4G0E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177996468},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.12","hono":"4.12.8","yauzl":"3.2.1","request":"npm:@cypress/request@3.0.10","file-type":"21.3.4","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.5.7","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@tloncorp/tlon-skill","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"],"ignoredBuiltDependencies":["@discordjs/opus","koffi"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./extension-api":"./dist/extensionAPI.js","./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/setup":{"types":"./dist/plugin-sdk/setup.d.ts","default":"./dist/plugin-sdk/setup.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/speech":{"types":"./dist/plugin-sdk/speech.d.ts","default":"./dist/plugin-sdk/speech.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.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/sandbox":{"types":"./dist/plugin-sdk/sandbox.d.ts","default":"./dist/plugin-sdk/sandbox.js"},"./plugin-sdk/testing":{"types":"./dist/plugin-sdk/testing.d.ts","default":"./dist/plugin-sdk/testing.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/line-core":{"types":"./dist/plugin-sdk/line-core.d.ts","default":"./dist/plugin-sdk/line-core.js"},"./plugin-sdk/temp-path":{"types":"./dist/plugin-sdk/temp-path.d.ts","default":"./dist/plugin-sdk/temp-path.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/web-media":{"types":"./dist/plugin-sdk/web-media.d.ts","default":"./dist/plugin-sdk/web-media.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/allow-from":{"types":"./dist/plugin-sdk/allow-from.d.ts","default":"./dist/plugin-sdk/allow-from.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/json-store":{"types":"./dist/plugin-sdk/json-store.d.ts","default":"./dist/plugin-sdk/json-store.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/slack-core":{"types":"./dist/plugin-sdk/slack-core.d.ts","default":"./dist/plugin-sdk/slack-core.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/acp-runtime":{"types":"./dist/plugin-sdk/acp-runtime.d.ts","default":"./dist/plugin-sdk/acp-runtime.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/cli-runtime":{"types":"./dist/plugin-sdk/cli-runtime.d.ts","default":"./dist/plugin-sdk/cli-runtime.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/request-url":{"types":"./dist/plugin-sdk/request-url.d.ts","default":"./dist/plugin-sdk/request-url.js"},"./plugin-sdk/runtime-env":{"types":"./dist/plugin-sdk/runtime-env.d.ts","default":"./dist/plugin-sdk/runtime-env.js"},"./plugin-sdk/setup-tools":{"types":"./dist/plugin-sdk/setup-tools.d.ts","default":"./dist/plugin-sdk/setup-tools.js"},"./plugin-sdk/speech-core":{"types":"./dist/plugin-sdk/speech-core.d.ts","default":"./dist/plugin-sdk/speech-core.js"},"./plugin-sdk/state-paths":{"types":"./dist/plugin-sdk/state-paths.d.ts","default":"./dist/plugin-sdk/state-paths.js"},"./plugin-sdk/command-auth":{"types":"./dist/plugin-sdk/command-auth.d.ts","default":"./dist/plugin-sdk/command-auth.js"},"./plugin-sdk/discord-core":{"types":"./dist/plugin-sdk/discord-core.d.ts","default":"./dist/plugin-sdk/discord-core.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/hook-runtime":{"types":"./dist/plugin-sdk/hook-runtime.d.ts","default":"./dist/plugin-sdk/hook-runtime.js"},"./plugin-sdk/lazy-runtime":{"types":"./dist/plugin-sdk/lazy-runtime.d.ts","default":"./dist/plugin-sdk/lazy-runtime.js"},"./plugin-sdk/line-runtime":{"types":"./dist/plugin-sdk/line-runtime.d.ts","default":"./dist/plugin-sdk/line-runtime.js"},"./plugin-sdk/ollama-setup":{"types":"./dist/plugin-sdk/ollama-setup.d.ts","default":"./dist/plugin-sdk/ollama-setup.js"},"./plugin-sdk/plugin-entry":{"types":"./dist/plugin-sdk/plugin-entry.d.ts","default":"./dist/plugin-sdk/plugin-entry.js"},"./plugin-sdk/secret-input":{"types":"./dist/plugin-sdk/secret-input.d.ts","default":"./dist/plugin-sdk/secret-input.js"},"./plugin-sdk/ssrf-runtime":{"types":"./dist/plugin-sdk/ssrf-runtime.d.ts","default":"./dist/plugin-sdk/ssrf-runtime.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/webhook-path":{"types":"./dist/plugin-sdk/webhook-path.d.ts","default":"./dist/plugin-sdk/webhook-path.js"},"./plugin-sdk/agent-runtime":{"types":"./dist/plugin-sdk/agent-runtime.d.ts","default":"./dist/plugin-sdk/agent-runtime.js"},"./plugin-sdk/boolean-param":{"types":"./dist/plugin-sdk/boolean-param.d.ts","default":"./dist/plugin-sdk/boolean-param.js"},"./plugin-sdk/channel-setup":{"types":"./dist/plugin-sdk/channel-setup.d.ts","default":"./dist/plugin-sdk/channel-setup.js"},"./plugin-sdk/imessage-core":{"types":"./dist/plugin-sdk/imessage-core.d.ts","default":"./dist/plugin-sdk/imessage-core.js"},"./plugin-sdk/infra-runtime":{"types":"./dist/plugin-sdk/infra-runtime.d.ts","default":"./dist/plugin-sdk/infra-runtime.js"},"./plugin-sdk/media-runtime":{"types":"./dist/plugin-sdk/media-runtime.d.ts","default":"./dist/plugin-sdk/media-runtime.js"},"./plugin-sdk/param-readers":{"types":"./dist/plugin-sdk/param-readers.d.ts","default":"./dist/plugin-sdk/param-readers.js"},"./plugin-sdk/provider-auth":{"types":"./dist/plugin-sdk/provider-auth.d.ts","default":"./dist/plugin-sdk/provider-auth.js"},"./plugin-sdk/reply-history":{"types":"./dist/plugin-sdk/reply-history.d.ts","default":"./dist/plugin-sdk/reply-history.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/reply-runtime":{"types":"./dist/plugin-sdk/reply-runtime.d.ts","default":"./dist/plugin-sdk/reply-runtime.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/setup-runtime":{"types":"./dist/plugin-sdk/setup-runtime.d.ts","default":"./dist/plugin-sdk/setup-runtime.js"},"./plugin-sdk/slack-targets":{"types":"./dist/plugin-sdk/slack-targets.d.ts","default":"./dist/plugin-sdk/slack-targets.js"},"./plugin-sdk/telegram-core":{"types":"./dist/plugin-sdk/telegram-core.d.ts","default":"./dist/plugin-sdk/telegram-core.js"},"./plugin-sdk/whatsapp-core":{"types":"./dist/plugin-sdk/whatsapp-core.d.ts","default":"./dist/plugin-sdk/whatsapp-core.js"},"./plugin-sdk/windows-spawn":{"types":"./dist/plugin-sdk/windows-spawn.d.ts","default":"./dist/plugin-sdk/windows-spawn.js"},"./plugin-sdk/channel-policy":{"types":"./dist/plugin-sdk/channel-policy.d.ts","default":"./dist/plugin-sdk/channel-policy.js"},"./plugin-sdk/channel-status":{"types":"./dist/plugin-sdk/channel-status.d.ts","default":"./dist/plugin-sdk/channel-status.js"},"./plugin-sdk/config-runtime":{"types":"./dist/plugin-sdk/config-runtime.d.ts","default":"./dist/plugin-sdk/config-runtime.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/plugin-runtime":{"types":"./dist/plugin-sdk/plugin-runtime.d.ts","default":"./dist/plugin-sdk/plugin-runtime.js"},"./plugin-sdk/provider-entry":{"types":"./dist/plugin-sdk/provider-entry.d.ts","default":"./dist/plugin-sdk/provider-entry.js"},"./plugin-sdk/provider-setup":{"types":"./dist/plugin-sdk/provider-setup.d.ts","default":"./dist/plugin-sdk/provider-setup.js"},"./plugin-sdk/provider-usage":{"types":"./dist/plugin-sdk/provider-usage.d.ts","default":"./dist/plugin-sdk/provider-usage.js"},"./plugin-sdk/speech-runtime":{"types":"./dist/plugin-sdk/speech-runtime.d.ts","default":"./dist/plugin-sdk/speech-runtime.js"},"./plugin-sdk/status-helpers":{"types":"./dist/plugin-sdk/status-helpers.d.ts","default":"./dist/plugin-sdk/status-helpers.js"},"./plugin-sdk/account-helpers":{"types":"./dist/plugin-sdk/account-helpers.d.ts","default":"./dist/plugin-sdk/account-helpers.js"},"./plugin-sdk/channel-actions":{"types":"./dist/plugin-sdk/channel-actions.d.ts","default":"./dist/plugin-sdk/channel-actions.js"},"./plugin-sdk/channel-inbound":{"types":"./dist/plugin-sdk/channel-inbound.d.ts","default":"./dist/plugin-sdk/channel-inbound.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.js"},"./plugin-sdk/channel-runtime":{"types":"./dist/plugin-sdk/channel-runtime.d.ts","default":"./dist/plugin-sdk/channel-runtime.js"},"./plugin-sdk/channel-targets":{"types":"./dist/plugin-sdk/channel-targets.d.ts","default":"./dist/plugin-sdk/channel-targets.js"},"./plugin-sdk/gateway-runtime":{"types":"./dist/plugin-sdk/gateway-runtime.d.ts","default":"./dist/plugin-sdk/gateway-runtime.js"},"./plugin-sdk/process-runtime":{"types":"./dist/plugin-sdk/process-runtime.d.ts","default":"./dist/plugin-sdk/process-runtime.js"},"./plugin-sdk/provider-google":{"types":"./dist/plugin-sdk/provider-google.d.ts","default":"./dist/plugin-sdk/provider-google.js"},"./plugin-sdk/provider-models":{"types":"./dist/plugin-sdk/provider-models.d.ts","default":"./dist/plugin-sdk/provider-models.js"},"./plugin-sdk/provider-stream":{"types":"./dist/plugin-sdk/provider-stream.d.ts","default":"./dist/plugin-sdk/provider-stream.js"},"./plugin-sdk/webhook-ingress":{"types":"./dist/plugin-sdk/webhook-ingress.d.ts","default":"./dist/plugin-sdk/webhook-ingress.js"},"./plugin-sdk/whatsapp-shared":{"types":"./dist/plugin-sdk/whatsapp-shared.d.ts","default":"./dist/plugin-sdk/whatsapp-shared.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/device-bootstrap":{"types":"./dist/plugin-sdk/device-bootstrap.d.ts","default":"./dist/plugin-sdk/device-bootstrap.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/extension-shared":{"types":"./dist/plugin-sdk/extension-shared.d.ts","default":"./dist/plugin-sdk/extension-shared.js"},"./plugin-sdk/image-generation":{"types":"./dist/plugin-sdk/image-generation.d.ts","default":"./dist/plugin-sdk/image-generation.js"},"./plugin-sdk/outbound-runtime":{"types":"./dist/plugin-sdk/outbound-runtime.d.ts","default":"./dist/plugin-sdk/outbound-runtime.js"},"./plugin-sdk/provider-catalog":{"types":"./dist/plugin-sdk/provider-catalog.d.ts","default":"./dist/plugin-sdk/provider-catalog.js"},"./plugin-sdk/provider-onboard":{"types":"./dist/plugin-sdk/provider-onboard.d.ts","default":"./dist/plugin-sdk/provider-onboard.js"},"./plugin-sdk/security-runtime":{"types":"./dist/plugin-sdk/security-runtime.d.ts","default":"./dist/plugin-sdk/security-runtime.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.js"},"./plugin-sdk/directory-runtime":{"types":"./dist/plugin-sdk/directory-runtime.d.ts","default":"./dist/plugin-sdk/directory-runtime.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/provider-env-vars":{"types":"./dist/plugin-sdk/provider-env-vars.d.ts","default":"./dist/plugin-sdk/provider-env-vars.js"},"./plugin-sdk/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/interactive-runtime":{"types":"./dist/plugin-sdk/interactive-runtime.d.ts","default":"./dist/plugin-sdk/interactive-runtime.js"},"./plugin-sdk/media-understanding":{"types":"./dist/plugin-sdk/media-understanding.d.ts","default":"./dist/plugin-sdk/media-understanding.js"},"./plugin-sdk/provider-auth-login":{"types":"./dist/plugin-sdk/provider-auth-login.d.ts","default":"./dist/plugin-sdk/provider-auth-login.js"},"./plugin-sdk/provider-web-search":{"types":"./dist/plugin-sdk/provider-web-search.d.ts","default":"./dist/plugin-sdk/provider-web-search.js"},"./plugin-sdk/conversation-runtime":{"types":"./dist/plugin-sdk/conversation-runtime.d.ts","default":"./dist/plugin-sdk/conversation-runtime.js"},"./plugin-sdk/matrix-runtime-heavy":{"types":"./dist/plugin-sdk/matrix-runtime-heavy.d.ts","default":"./dist/plugin-sdk/matrix-runtime-heavy.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/channel-config-schema":{"types":"./dist/plugin-sdk/channel-config-schema.d.ts","default":"./dist/plugin-sdk/channel-config-schema.js"},"./plugin-sdk/image-generation-core":{"types":"./dist/plugin-sdk/image-generation-core.d.ts","default":"./dist/plugin-sdk/image-generation-core.js"},"./plugin-sdk/matrix-runtime-shared":{"types":"./dist/plugin-sdk/matrix-runtime-shared.d.ts","default":"./dist/plugin-sdk/matrix-runtime-shared.js"},"./plugin-sdk/provider-auth-api-key":{"types":"./dist/plugin-sdk/provider-auth-api-key.d.ts","default":"./dist/plugin-sdk/provider-auth-api-key.js"},"./plugin-sdk/provider-zai-endpoint":{"types":"./dist/plugin-sdk/provider-zai-endpoint.d.ts","default":"./dist/plugin-sdk/provider-zai-endpoint.js"},"./plugin-sdk/setup-adapter-runtime":{"types":"./dist/plugin-sdk/setup-adapter-runtime.d.ts","default":"./dist/plugin-sdk/setup-adapter-runtime.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-reply-pipeline":{"types":"./dist/plugin-sdk/channel-reply-pipeline.d.ts","default":"./dist/plugin-sdk/channel-reply-pipeline.js"},"./plugin-sdk/thread-bindings-runtime":{"types":"./dist/plugin-sdk/thread-bindings-runtime.d.ts","default":"./dist/plugin-sdk/thread-bindings-runtime.js"},"./plugin-sdk/self-hosted-provider-setup":{"types":"./dist/plugin-sdk/self-hosted-provider-setup.d.ts","default":"./dist/plugin-sdk/self-hosted-provider-setup.js"},"./plugin-sdk/media-understanding-runtime":{"types":"./dist/plugin-sdk/media-understanding-runtime.d.ts","default":"./dist/plugin-sdk/media-understanding-runtime.js"}},"scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:no-conflict-markers && pnpm check:host-env-policy:swift && pnpm check:base-config-schema && pnpm check:bundled-plugin-metadata && pnpm check:bundled-provider-auth-env-vars && pnpm format:check && pnpm tsgo && pnpm plugin-sdk:check-exports && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:plugins:no-extension-src-imports && pnpm lint:plugins:no-extension-test-core-imports && pnpm lint:plugins:no-extension-imports && pnpm lint:plugins:plugin-sdk-subpaths-exported && pnpm lint:extensions:no-src-outside-plugin-sdk && pnpm lint:extensions:no-plugin-sdk-internal && pnpm lint:extensions:no-relative-outside-package && pnpm lint:web-search-provider-boundaries && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-i18n-glossary && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testPlayDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:changed":"pnpm test -- --changed origin/main","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_PROFILE=macmini node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"pnpm config:docs:check && pnpm plugin-sdk:api:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && pnpm ui:build && node --import tsx scripts/release-check.ts","test:channels":"OPENCLAW_TEST_SKIP_DEFAULT=1 OPENCLAW_TEST_INCLUDE_CHANNELS=1 node scripts/test-parallel.mjs","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:contracts":"pnpm test:contracts:channels && pnpm test:contracts:plugins","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:extension":"node scripts/test-extension.mjs","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installPlayDebug","config:docs:gen":"node --import tsx scripts/generate-config-doc-baseline.ts --write","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"OPENCLAW_TEST_SKIP_DEFAULT=1 OPENCLAW_TEST_INCLUDE_EXTENSIONS=1 node scripts/test-parallel.mjs","android:assemble":"cd apps/android && ./gradlew :app:assemblePlayDebug","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","config:docs:check":"node --import tsx scripts/generate-config-doc-baseline.ts --check","config:schema:gen":"node --import tsx scripts/generate-base-config-schema.ts --write","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","test:perf:imports":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","plugin-sdk:api:gen":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:e2e:openshell":"OPENCLAW_E2E_OPENSHELL=1 vitest run --config vitest.e2e.config.ts test/openshell-sandbox.e2e.test.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","config:schema:check":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:startup:memory":"node scripts/check-cli-startup-memory.mjs","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","plugin-sdk:api:check":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check","test:build:singleton":"node scripts/test-built-plugin-singleton.mjs","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","test:coverage:changed":"vitest run --config vitest.unit.config.ts --coverage --changed origin/main","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:contracts:plugins":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/plugins/contracts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","test:perf:profile:main":"node scripts/run-vitest-profile.mjs main","android:run:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","plugin-sdk:sync-exports":"node scripts/sync-plugin-sdk-exports.mjs","test:contracts:channels":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/channels/plugins/contracts","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","android:test:third-party":"cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:check-i18n-glossary":"node scripts/check-docs-i18n-glossary.mjs","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","plugin-sdk:check-exports":"node scripts/sync-plugin-sdk-exports.mjs --check","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:perf:profile:runner":"node scripts/run-vitest-profile.mjs runner","test:perf:update-timings":"node scripts/test-update-timings.mjs","check:no-conflict-markers":"node scripts/check-no-conflict-markers.mjs","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","release:plugins:npm:check":"node --import tsx scripts/plugin-npm-release-check.ts","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:parallels:npm-update":"bash scripts/e2e/parallels-npm-update-smoke.sh","test:perf:imports:changed":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test -- --changed origin/main","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","android:install:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","android:assemble:third-party":"cd apps/android && ./gradlew :app:assembleThirdPartyDebug","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","check:bundled-plugin-metadata":"node scripts/generate-bundled-plugin-metadata.mjs --check","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","test:gateway:watch-regression":"node scripts/check-gateway-watch-regression.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","test:perf:find-thread-candidates":"node scripts/test-find-thread-candidates.mjs","test:perf:update-memory-hotspots":"node scripts/test-update-memory-hotspots.mjs","lint:plugins:no-extension-imports":"node scripts/check-plugin-extension-import-boundary.mjs","stage:bundled-plugin-runtime-deps":"node scripts/stage-bundled-plugin-runtime-deps.mjs","lint:web-search-provider-boundaries":"node scripts/check-web-search-provider-boundaries.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","check:bundled-provider-auth-env-vars":"node scripts/generate-bundled-provider-auth-env-vars.mjs --check","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-extension-src-imports":"node --import tsx scripts/check-no-extension-src-imports.ts","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","lint:extensions:no-plugin-sdk-internal":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal","lint:extensions:no-src-outside-plugin-sdk":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk","lint:plugins:plugin-sdk-subpaths-exported":"node scripts/check-plugin-sdk-subpath-exports.mjs","lint:extensions:no-relative-outside-package":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package","lint:plugins:no-extension-test-core-imports":"node --import tsx scripts/check-no-extension-test-core-imports.ts","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.8.1","dependencies":{"ws":"^8.20.0","ajv":"^8.18.0","tar":"7.5.12","zod":"^4.3.6","hono":"4.12.8","jiti":"^2.6.1","long":"^5.3.2","uuid":"^13.0.0","yaml":"^2.8.3","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.4","undici":"^7.24.5","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"21.3.4","ipaddr.js":"^2.3.0","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","@mariozechner/pi-ai":"0.61.1","@mariozechner/pi-tui":"0.61.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1014.0","@agentclientprotocol/sdk":"0.16.1","@anthropic-ai/vertex-sdk":"^0.14.4","@modelcontextprotocol/sdk":"1.27.1","@mariozechner/pi-agent-core":"0.61.1","@mariozechner/pi-coding-agent":"0.61.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^29.0.1","oxfmt":"0.41.0","oxlint":"^1.56.0","tsdown":"0.21.4","vitest":"^4.1.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.17.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.0","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260322.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.23-1_1774313050676_0.5192246470911426","host":"s3://npm-registry-packages-npm-production"}},"2026.3.23-2":{"name":"openclaw","version":"2026.3.23-2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.23-2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"0418988a5498b0a63561ccfc9eed22e69a6db55f","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.23-2.tgz","fileCount":14954,"integrity":"sha512-xjBXnzL9LkOlsWZd2y8VHzn9SuHMbTbHtuBFzZJjAnx+qm6yIvXpnCnVWh8iaOkuN8a6nOiLl5WAcgRK1k3+LQ==","signatures":[{"sig":"MEYCIQCk3VgwydASAj39XyN6aiPAqAOuygIiWBXHEfu9uxv5cgIhAMtad3TKaHdYGknkO6hePkCIiW7OEhh0zulOPLd0Mt+E","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":177804651},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.12","hono":"4.12.8","yauzl":"3.2.1","request":"npm:@cypress/request@3.0.10","file-type":"21.3.4","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.5.7","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@tloncorp/tlon-skill","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"],"ignoredBuiltDependencies":["@discordjs/opus","koffi"]},"type":"module","_from":"file:/tmp/openclaw-2026.3.23-2.ACmhbt/openclaw-2026.3.23-2.tgz","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./extension-api":"./dist/extensionAPI.js","./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/setup":{"types":"./dist/plugin-sdk/setup.d.ts","default":"./dist/plugin-sdk/setup.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/speech":{"types":"./dist/plugin-sdk/speech.d.ts","default":"./dist/plugin-sdk/speech.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.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/sandbox":{"types":"./dist/plugin-sdk/sandbox.d.ts","default":"./dist/plugin-sdk/sandbox.js"},"./plugin-sdk/testing":{"types":"./dist/plugin-sdk/testing.d.ts","default":"./dist/plugin-sdk/testing.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/line-core":{"types":"./dist/plugin-sdk/line-core.d.ts","default":"./dist/plugin-sdk/line-core.js"},"./plugin-sdk/temp-path":{"types":"./dist/plugin-sdk/temp-path.d.ts","default":"./dist/plugin-sdk/temp-path.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/web-media":{"types":"./dist/plugin-sdk/web-media.d.ts","default":"./dist/plugin-sdk/web-media.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/allow-from":{"types":"./dist/plugin-sdk/allow-from.d.ts","default":"./dist/plugin-sdk/allow-from.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/json-store":{"types":"./dist/plugin-sdk/json-store.d.ts","default":"./dist/plugin-sdk/json-store.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/slack-core":{"types":"./dist/plugin-sdk/slack-core.d.ts","default":"./dist/plugin-sdk/slack-core.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/acp-runtime":{"types":"./dist/plugin-sdk/acp-runtime.d.ts","default":"./dist/plugin-sdk/acp-runtime.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/cli-runtime":{"types":"./dist/plugin-sdk/cli-runtime.d.ts","default":"./dist/plugin-sdk/cli-runtime.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/request-url":{"types":"./dist/plugin-sdk/request-url.d.ts","default":"./dist/plugin-sdk/request-url.js"},"./plugin-sdk/runtime-env":{"types":"./dist/plugin-sdk/runtime-env.d.ts","default":"./dist/plugin-sdk/runtime-env.js"},"./plugin-sdk/setup-tools":{"types":"./dist/plugin-sdk/setup-tools.d.ts","default":"./dist/plugin-sdk/setup-tools.js"},"./plugin-sdk/speech-core":{"types":"./dist/plugin-sdk/speech-core.d.ts","default":"./dist/plugin-sdk/speech-core.js"},"./plugin-sdk/state-paths":{"types":"./dist/plugin-sdk/state-paths.d.ts","default":"./dist/plugin-sdk/state-paths.js"},"./plugin-sdk/command-auth":{"types":"./dist/plugin-sdk/command-auth.d.ts","default":"./dist/plugin-sdk/command-auth.js"},"./plugin-sdk/discord-core":{"types":"./dist/plugin-sdk/discord-core.d.ts","default":"./dist/plugin-sdk/discord-core.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/hook-runtime":{"types":"./dist/plugin-sdk/hook-runtime.d.ts","default":"./dist/plugin-sdk/hook-runtime.js"},"./plugin-sdk/lazy-runtime":{"types":"./dist/plugin-sdk/lazy-runtime.d.ts","default":"./dist/plugin-sdk/lazy-runtime.js"},"./plugin-sdk/line-runtime":{"types":"./dist/plugin-sdk/line-runtime.d.ts","default":"./dist/plugin-sdk/line-runtime.js"},"./plugin-sdk/ollama-setup":{"types":"./dist/plugin-sdk/ollama-setup.d.ts","default":"./dist/plugin-sdk/ollama-setup.js"},"./plugin-sdk/plugin-entry":{"types":"./dist/plugin-sdk/plugin-entry.d.ts","default":"./dist/plugin-sdk/plugin-entry.js"},"./plugin-sdk/secret-input":{"types":"./dist/plugin-sdk/secret-input.d.ts","default":"./dist/plugin-sdk/secret-input.js"},"./plugin-sdk/ssrf-runtime":{"types":"./dist/plugin-sdk/ssrf-runtime.d.ts","default":"./dist/plugin-sdk/ssrf-runtime.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/webhook-path":{"types":"./dist/plugin-sdk/webhook-path.d.ts","default":"./dist/plugin-sdk/webhook-path.js"},"./plugin-sdk/agent-runtime":{"types":"./dist/plugin-sdk/agent-runtime.d.ts","default":"./dist/plugin-sdk/agent-runtime.js"},"./plugin-sdk/boolean-param":{"types":"./dist/plugin-sdk/boolean-param.d.ts","default":"./dist/plugin-sdk/boolean-param.js"},"./plugin-sdk/channel-setup":{"types":"./dist/plugin-sdk/channel-setup.d.ts","default":"./dist/plugin-sdk/channel-setup.js"},"./plugin-sdk/imessage-core":{"types":"./dist/plugin-sdk/imessage-core.d.ts","default":"./dist/plugin-sdk/imessage-core.js"},"./plugin-sdk/infra-runtime":{"types":"./dist/plugin-sdk/infra-runtime.d.ts","default":"./dist/plugin-sdk/infra-runtime.js"},"./plugin-sdk/media-runtime":{"types":"./dist/plugin-sdk/media-runtime.d.ts","default":"./dist/plugin-sdk/media-runtime.js"},"./plugin-sdk/param-readers":{"types":"./dist/plugin-sdk/param-readers.d.ts","default":"./dist/plugin-sdk/param-readers.js"},"./plugin-sdk/provider-auth":{"types":"./dist/plugin-sdk/provider-auth.d.ts","default":"./dist/plugin-sdk/provider-auth.js"},"./plugin-sdk/reply-history":{"types":"./dist/plugin-sdk/reply-history.d.ts","default":"./dist/plugin-sdk/reply-history.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/reply-runtime":{"types":"./dist/plugin-sdk/reply-runtime.d.ts","default":"./dist/plugin-sdk/reply-runtime.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/setup-runtime":{"types":"./dist/plugin-sdk/setup-runtime.d.ts","default":"./dist/plugin-sdk/setup-runtime.js"},"./plugin-sdk/slack-targets":{"types":"./dist/plugin-sdk/slack-targets.d.ts","default":"./dist/plugin-sdk/slack-targets.js"},"./plugin-sdk/telegram-core":{"types":"./dist/plugin-sdk/telegram-core.d.ts","default":"./dist/plugin-sdk/telegram-core.js"},"./plugin-sdk/whatsapp-core":{"types":"./dist/plugin-sdk/whatsapp-core.d.ts","default":"./dist/plugin-sdk/whatsapp-core.js"},"./plugin-sdk/windows-spawn":{"types":"./dist/plugin-sdk/windows-spawn.d.ts","default":"./dist/plugin-sdk/windows-spawn.js"},"./plugin-sdk/channel-policy":{"types":"./dist/plugin-sdk/channel-policy.d.ts","default":"./dist/plugin-sdk/channel-policy.js"},"./plugin-sdk/channel-status":{"types":"./dist/plugin-sdk/channel-status.d.ts","default":"./dist/plugin-sdk/channel-status.js"},"./plugin-sdk/config-runtime":{"types":"./dist/plugin-sdk/config-runtime.d.ts","default":"./dist/plugin-sdk/config-runtime.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/plugin-runtime":{"types":"./dist/plugin-sdk/plugin-runtime.d.ts","default":"./dist/plugin-sdk/plugin-runtime.js"},"./plugin-sdk/provider-entry":{"types":"./dist/plugin-sdk/provider-entry.d.ts","default":"./dist/plugin-sdk/provider-entry.js"},"./plugin-sdk/provider-setup":{"types":"./dist/plugin-sdk/provider-setup.d.ts","default":"./dist/plugin-sdk/provider-setup.js"},"./plugin-sdk/provider-usage":{"types":"./dist/plugin-sdk/provider-usage.d.ts","default":"./dist/plugin-sdk/provider-usage.js"},"./plugin-sdk/speech-runtime":{"types":"./dist/plugin-sdk/speech-runtime.d.ts","default":"./dist/plugin-sdk/speech-runtime.js"},"./plugin-sdk/status-helpers":{"types":"./dist/plugin-sdk/status-helpers.d.ts","default":"./dist/plugin-sdk/status-helpers.js"},"./plugin-sdk/account-helpers":{"types":"./dist/plugin-sdk/account-helpers.d.ts","default":"./dist/plugin-sdk/account-helpers.js"},"./plugin-sdk/channel-actions":{"types":"./dist/plugin-sdk/channel-actions.d.ts","default":"./dist/plugin-sdk/channel-actions.js"},"./plugin-sdk/channel-inbound":{"types":"./dist/plugin-sdk/channel-inbound.d.ts","default":"./dist/plugin-sdk/channel-inbound.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.js"},"./plugin-sdk/channel-runtime":{"types":"./dist/plugin-sdk/channel-runtime.d.ts","default":"./dist/plugin-sdk/channel-runtime.js"},"./plugin-sdk/channel-targets":{"types":"./dist/plugin-sdk/channel-targets.d.ts","default":"./dist/plugin-sdk/channel-targets.js"},"./plugin-sdk/gateway-runtime":{"types":"./dist/plugin-sdk/gateway-runtime.d.ts","default":"./dist/plugin-sdk/gateway-runtime.js"},"./plugin-sdk/process-runtime":{"types":"./dist/plugin-sdk/process-runtime.d.ts","default":"./dist/plugin-sdk/process-runtime.js"},"./plugin-sdk/provider-google":{"types":"./dist/plugin-sdk/provider-google.d.ts","default":"./dist/plugin-sdk/provider-google.js"},"./plugin-sdk/provider-models":{"types":"./dist/plugin-sdk/provider-models.d.ts","default":"./dist/plugin-sdk/provider-models.js"},"./plugin-sdk/provider-stream":{"types":"./dist/plugin-sdk/provider-stream.d.ts","default":"./dist/plugin-sdk/provider-stream.js"},"./plugin-sdk/webhook-ingress":{"types":"./dist/plugin-sdk/webhook-ingress.d.ts","default":"./dist/plugin-sdk/webhook-ingress.js"},"./plugin-sdk/whatsapp-shared":{"types":"./dist/plugin-sdk/whatsapp-shared.d.ts","default":"./dist/plugin-sdk/whatsapp-shared.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/device-bootstrap":{"types":"./dist/plugin-sdk/device-bootstrap.d.ts","default":"./dist/plugin-sdk/device-bootstrap.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/extension-shared":{"types":"./dist/plugin-sdk/extension-shared.d.ts","default":"./dist/plugin-sdk/extension-shared.js"},"./plugin-sdk/image-generation":{"types":"./dist/plugin-sdk/image-generation.d.ts","default":"./dist/plugin-sdk/image-generation.js"},"./plugin-sdk/outbound-runtime":{"types":"./dist/plugin-sdk/outbound-runtime.d.ts","default":"./dist/plugin-sdk/outbound-runtime.js"},"./plugin-sdk/provider-catalog":{"types":"./dist/plugin-sdk/provider-catalog.d.ts","default":"./dist/plugin-sdk/provider-catalog.js"},"./plugin-sdk/provider-onboard":{"types":"./dist/plugin-sdk/provider-onboard.d.ts","default":"./dist/plugin-sdk/provider-onboard.js"},"./plugin-sdk/security-runtime":{"types":"./dist/plugin-sdk/security-runtime.d.ts","default":"./dist/plugin-sdk/security-runtime.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.js"},"./plugin-sdk/directory-runtime":{"types":"./dist/plugin-sdk/directory-runtime.d.ts","default":"./dist/plugin-sdk/directory-runtime.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/provider-env-vars":{"types":"./dist/plugin-sdk/provider-env-vars.d.ts","default":"./dist/plugin-sdk/provider-env-vars.js"},"./plugin-sdk/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/interactive-runtime":{"types":"./dist/plugin-sdk/interactive-runtime.d.ts","default":"./dist/plugin-sdk/interactive-runtime.js"},"./plugin-sdk/media-understanding":{"types":"./dist/plugin-sdk/media-understanding.d.ts","default":"./dist/plugin-sdk/media-understanding.js"},"./plugin-sdk/provider-auth-login":{"types":"./dist/plugin-sdk/provider-auth-login.d.ts","default":"./dist/plugin-sdk/provider-auth-login.js"},"./plugin-sdk/provider-web-search":{"types":"./dist/plugin-sdk/provider-web-search.d.ts","default":"./dist/plugin-sdk/provider-web-search.js"},"./plugin-sdk/conversation-runtime":{"types":"./dist/plugin-sdk/conversation-runtime.d.ts","default":"./dist/plugin-sdk/conversation-runtime.js"},"./plugin-sdk/matrix-runtime-heavy":{"types":"./dist/plugin-sdk/matrix-runtime-heavy.d.ts","default":"./dist/plugin-sdk/matrix-runtime-heavy.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/channel-config-schema":{"types":"./dist/plugin-sdk/channel-config-schema.d.ts","default":"./dist/plugin-sdk/channel-config-schema.js"},"./plugin-sdk/image-generation-core":{"types":"./dist/plugin-sdk/image-generation-core.d.ts","default":"./dist/plugin-sdk/image-generation-core.js"},"./plugin-sdk/matrix-runtime-shared":{"types":"./dist/plugin-sdk/matrix-runtime-shared.d.ts","default":"./dist/plugin-sdk/matrix-runtime-shared.js"},"./plugin-sdk/provider-auth-api-key":{"types":"./dist/plugin-sdk/provider-auth-api-key.d.ts","default":"./dist/plugin-sdk/provider-auth-api-key.js"},"./plugin-sdk/provider-zai-endpoint":{"types":"./dist/plugin-sdk/provider-zai-endpoint.d.ts","default":"./dist/plugin-sdk/provider-zai-endpoint.js"},"./plugin-sdk/setup-adapter-runtime":{"types":"./dist/plugin-sdk/setup-adapter-runtime.d.ts","default":"./dist/plugin-sdk/setup-adapter-runtime.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-reply-pipeline":{"types":"./dist/plugin-sdk/channel-reply-pipeline.d.ts","default":"./dist/plugin-sdk/channel-reply-pipeline.js"},"./plugin-sdk/thread-bindings-runtime":{"types":"./dist/plugin-sdk/thread-bindings-runtime.d.ts","default":"./dist/plugin-sdk/thread-bindings-runtime.js"},"./plugin-sdk/self-hosted-provider-setup":{"types":"./dist/plugin-sdk/self-hosted-provider-setup.d.ts","default":"./dist/plugin-sdk/self-hosted-provider-setup.js"},"./plugin-sdk/media-understanding-runtime":{"types":"./dist/plugin-sdk/media-understanding-runtime.d.ts","default":"./dist/plugin-sdk/media-understanding-runtime.js"}},"scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:no-conflict-markers && pnpm check:host-env-policy:swift && pnpm check:base-config-schema && pnpm check:bundled-plugin-metadata && pnpm check:bundled-provider-auth-env-vars && pnpm format:check && pnpm tsgo && pnpm plugin-sdk:check-exports && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:plugins:no-extension-src-imports && pnpm lint:plugins:no-extension-test-core-imports && pnpm lint:plugins:no-extension-imports && pnpm lint:plugins:plugin-sdk-subpaths-exported && pnpm lint:extensions:no-src-outside-plugin-sdk && pnpm lint:extensions:no-plugin-sdk-internal && pnpm lint:extensions:no-relative-outside-package && pnpm lint:web-search-provider-boundaries && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-i18n-glossary && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity","audit:seams":"node scripts/audit-seams.mjs","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testPlayDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:changed":"pnpm test -- --changed origin/main","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_PROFILE=macmini node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"pnpm config:docs:check && pnpm plugin-sdk:api:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && pnpm ui:build && node --import tsx scripts/release-check.ts","test:channels":"OPENCLAW_TEST_SKIP_DEFAULT=1 OPENCLAW_TEST_INCLUDE_CHANNELS=1 node scripts/test-parallel.mjs","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:contracts":"pnpm test:contracts:channels && pnpm test:contracts:plugins","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:extension":"node scripts/test-extension.mjs","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installPlayDebug","config:docs:gen":"node --import tsx scripts/generate-config-doc-baseline.ts --write","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"OPENCLAW_TEST_SKIP_DEFAULT=1 OPENCLAW_TEST_INCLUDE_EXTENSIONS=1 node scripts/test-parallel.mjs","android:assemble":"cd apps/android && ./gradlew :app:assemblePlayDebug","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","config:docs:check":"node --import tsx scripts/generate-config-doc-baseline.ts --check","config:schema:gen":"node --import tsx scripts/generate-base-config-schema.ts --write","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","test:perf:imports":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","plugin-sdk:api:gen":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:e2e:openshell":"OPENCLAW_E2E_OPENSHELL=1 vitest run --config vitest.e2e.config.ts test/openshell-sandbox.e2e.test.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","config:schema:check":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:startup:memory":"node scripts/check-cli-startup-memory.mjs","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","plugin-sdk:api:check":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check","test:build:singleton":"node scripts/test-built-plugin-singleton.mjs","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","test:coverage:changed":"vitest run --config vitest.unit.config.ts --coverage --changed origin/main","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:contracts:plugins":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/plugins/contracts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","test:perf:profile:main":"node scripts/run-vitest-profile.mjs main","android:run:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","plugin-sdk:sync-exports":"node scripts/sync-plugin-sdk-exports.mjs","test:contracts:channels":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/channels/plugins/contracts","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","android:test:third-party":"cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:check-i18n-glossary":"node scripts/check-docs-i18n-glossary.mjs","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","plugin-sdk:check-exports":"node scripts/sync-plugin-sdk-exports.mjs --check","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:perf:profile:runner":"node scripts/run-vitest-profile.mjs runner","test:perf:update-timings":"node scripts/test-update-timings.mjs","check:no-conflict-markers":"node scripts/check-no-conflict-markers.mjs","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","release:plugins:npm:check":"node --import tsx scripts/plugin-npm-release-check.ts","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:parallels:npm-update":"bash scripts/e2e/parallels-npm-update-smoke.sh","test:perf:imports:changed":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test -- --changed origin/main","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","android:install:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","android:assemble:third-party":"cd apps/android && ./gradlew :app:assembleThirdPartyDebug","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","check:bundled-plugin-metadata":"node scripts/generate-bundled-plugin-metadata.mjs --check","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","test:gateway:watch-regression":"node scripts/check-gateway-watch-regression.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","test:perf:find-thread-candidates":"node scripts/test-find-thread-candidates.mjs","test:perf:update-memory-hotspots":"node scripts/test-update-memory-hotspots.mjs","lint:plugins:no-extension-imports":"node scripts/check-plugin-extension-import-boundary.mjs","stage:bundled-plugin-runtime-deps":"node scripts/stage-bundled-plugin-runtime-deps.mjs","lint:web-search-provider-boundaries":"node scripts/check-web-search-provider-boundaries.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","check:bundled-provider-auth-env-vars":"node scripts/generate-bundled-provider-auth-env-vars.mjs --check","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-extension-src-imports":"node --import tsx scripts/check-no-extension-src-imports.ts","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","lint:extensions:no-plugin-sdk-internal":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal","lint:extensions:no-src-outside-plugin-sdk":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk","lint:plugins:plugin-sdk-subpaths-exported":"node scripts/check-plugin-sdk-subpath-exports.mjs","lint:extensions:no-relative-outside-package":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package","lint:plugins:no-extension-test-core-imports":"node --import tsx scripts/check-no-extension-test-core-imports.ts","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"steipete","email":"steipete@gmail.com"},"_resolved":"/tmp/openclaw-2026.3.23-2.ACmhbt/openclaw-2026.3.23-2.tgz","_integrity":"sha512-xjBXnzL9LkOlsWZd2y8VHzn9SuHMbTbHtuBFzZJjAnx+qm6yIvXpnCnVWh8iaOkuN8a6nOiLl5WAcgRK1k3+LQ==","repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.6.2","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"25.3.0","dependencies":{"ws":"^8.20.0","ajv":"^8.18.0","tar":"7.5.12","zod":"^4.3.6","hono":"4.12.8","jiti":"^2.6.1","long":"^5.3.2","uuid":"^13.0.0","yaml":"^2.8.3","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.4","undici":"^7.24.5","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"21.3.4","ipaddr.js":"^2.3.0","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","@mariozechner/pi-ai":"0.61.1","@mariozechner/pi-tui":"0.61.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1014.0","@agentclientprotocol/sdk":"0.16.1","@anthropic-ai/vertex-sdk":"^0.14.4","@modelcontextprotocol/sdk":"1.27.1","@mariozechner/pi-agent-core":"0.61.1","@mariozechner/pi-coding-agent":"0.61.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.23.0","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^29.0.1","oxfmt":"0.41.0","oxlint":"^1.56.0","tsdown":"0.21.4","vitest":"^4.1.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.17.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.0","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260322.1"},"peerDependencies":{"node-llama-cpp":"3.16.2","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.23-2_1774321756239_0.16175602669212297","host":"s3://npm-registry-packages-npm-production"}},"2026.3.24-beta.1":{"name":"openclaw","version":"2026.3.24-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.24-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"b997fa46515a411a9c7faca680715e2ba5bb63b3","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.24-beta.1.tgz","fileCount":15037,"integrity":"sha512-i5oavnoOIpbzo0HNiIThzOc2sMGTBJDE8EgHY16osWHRE8VP+99+HMMowi7DncTJkIc7/H1oaUf5ZLdw/kDbDA==","signatures":[{"sig":"MEYCIQDnrKYqWOvaYnVDFdhun11a8mZlz0DGrF5w9h3hMaeTcQIhANN7WCLQyZE2PnNG9OTZ0+RRMFRJ8wjgUgJv48/H5UR6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openclaw@2026.3.24-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":187940385},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.12","hono":"4.12.8","yauzl":"3.2.1","request":"npm:@cypress/request@3.0.10","file-type":"21.3.4","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.5.7","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@tloncorp/tlon-skill","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"],"ignoredBuiltDependencies":["@discordjs/opus","koffi"]},"type":"module","engines":{"node":">=22.16.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./extension-api":"./dist/extensionAPI.js","./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/setup":{"types":"./dist/plugin-sdk/setup.d.ts","default":"./dist/plugin-sdk/setup.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/speech":{"types":"./dist/plugin-sdk/speech.d.ts","default":"./dist/plugin-sdk/speech.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.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/sandbox":{"types":"./dist/plugin-sdk/sandbox.d.ts","default":"./dist/plugin-sdk/sandbox.js"},"./plugin-sdk/testing":{"types":"./dist/plugin-sdk/testing.d.ts","default":"./dist/plugin-sdk/testing.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/line-core":{"types":"./dist/plugin-sdk/line-core.d.ts","default":"./dist/plugin-sdk/line-core.js"},"./plugin-sdk/temp-path":{"types":"./dist/plugin-sdk/temp-path.d.ts","default":"./dist/plugin-sdk/temp-path.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/web-media":{"types":"./dist/plugin-sdk/web-media.d.ts","default":"./dist/plugin-sdk/web-media.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/allow-from":{"types":"./dist/plugin-sdk/allow-from.d.ts","default":"./dist/plugin-sdk/allow-from.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/json-store":{"types":"./dist/plugin-sdk/json-store.d.ts","default":"./dist/plugin-sdk/json-store.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/slack-core":{"types":"./dist/plugin-sdk/slack-core.d.ts","default":"./dist/plugin-sdk/slack-core.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/acp-runtime":{"types":"./dist/plugin-sdk/acp-runtime.d.ts","default":"./dist/plugin-sdk/acp-runtime.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/cli-runtime":{"types":"./dist/plugin-sdk/cli-runtime.d.ts","default":"./dist/plugin-sdk/cli-runtime.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/request-url":{"types":"./dist/plugin-sdk/request-url.d.ts","default":"./dist/plugin-sdk/request-url.js"},"./plugin-sdk/runtime-env":{"types":"./dist/plugin-sdk/runtime-env.d.ts","default":"./dist/plugin-sdk/runtime-env.js"},"./plugin-sdk/setup-tools":{"types":"./dist/plugin-sdk/setup-tools.d.ts","default":"./dist/plugin-sdk/setup-tools.js"},"./plugin-sdk/speech-core":{"types":"./dist/plugin-sdk/speech-core.d.ts","default":"./dist/plugin-sdk/speech-core.js"},"./plugin-sdk/state-paths":{"types":"./dist/plugin-sdk/state-paths.d.ts","default":"./dist/plugin-sdk/state-paths.js"},"./plugin-sdk/command-auth":{"types":"./dist/plugin-sdk/command-auth.d.ts","default":"./dist/plugin-sdk/command-auth.js"},"./plugin-sdk/discord-core":{"types":"./dist/plugin-sdk/discord-core.d.ts","default":"./dist/plugin-sdk/discord-core.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/hook-runtime":{"types":"./dist/plugin-sdk/hook-runtime.d.ts","default":"./dist/plugin-sdk/hook-runtime.js"},"./plugin-sdk/lazy-runtime":{"types":"./dist/plugin-sdk/lazy-runtime.d.ts","default":"./dist/plugin-sdk/lazy-runtime.js"},"./plugin-sdk/line-runtime":{"types":"./dist/plugin-sdk/line-runtime.d.ts","default":"./dist/plugin-sdk/line-runtime.js"},"./plugin-sdk/ollama-setup":{"types":"./dist/plugin-sdk/ollama-setup.d.ts","default":"./dist/plugin-sdk/ollama-setup.js"},"./plugin-sdk/plugin-entry":{"types":"./dist/plugin-sdk/plugin-entry.d.ts","default":"./dist/plugin-sdk/plugin-entry.js"},"./plugin-sdk/secret-input":{"types":"./dist/plugin-sdk/secret-input.d.ts","default":"./dist/plugin-sdk/secret-input.js"},"./plugin-sdk/ssrf-runtime":{"types":"./dist/plugin-sdk/ssrf-runtime.d.ts","default":"./dist/plugin-sdk/ssrf-runtime.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/webhook-path":{"types":"./dist/plugin-sdk/webhook-path.d.ts","default":"./dist/plugin-sdk/webhook-path.js"},"./plugin-sdk/agent-runtime":{"types":"./dist/plugin-sdk/agent-runtime.d.ts","default":"./dist/plugin-sdk/agent-runtime.js"},"./plugin-sdk/boolean-param":{"types":"./dist/plugin-sdk/boolean-param.d.ts","default":"./dist/plugin-sdk/boolean-param.js"},"./plugin-sdk/channel-setup":{"types":"./dist/plugin-sdk/channel-setup.d.ts","default":"./dist/plugin-sdk/channel-setup.js"},"./plugin-sdk/imessage-core":{"types":"./dist/plugin-sdk/imessage-core.d.ts","default":"./dist/plugin-sdk/imessage-core.js"},"./plugin-sdk/infra-runtime":{"types":"./dist/plugin-sdk/infra-runtime.d.ts","default":"./dist/plugin-sdk/infra-runtime.js"},"./plugin-sdk/media-runtime":{"types":"./dist/plugin-sdk/media-runtime.d.ts","default":"./dist/plugin-sdk/media-runtime.js"},"./plugin-sdk/param-readers":{"types":"./dist/plugin-sdk/param-readers.d.ts","default":"./dist/plugin-sdk/param-readers.js"},"./plugin-sdk/provider-auth":{"types":"./dist/plugin-sdk/provider-auth.d.ts","default":"./dist/plugin-sdk/provider-auth.js"},"./plugin-sdk/reply-history":{"types":"./dist/plugin-sdk/reply-history.d.ts","default":"./dist/plugin-sdk/reply-history.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/reply-runtime":{"types":"./dist/plugin-sdk/reply-runtime.d.ts","default":"./dist/plugin-sdk/reply-runtime.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/setup-runtime":{"types":"./dist/plugin-sdk/setup-runtime.d.ts","default":"./dist/plugin-sdk/setup-runtime.js"},"./plugin-sdk/slack-targets":{"types":"./dist/plugin-sdk/slack-targets.d.ts","default":"./dist/plugin-sdk/slack-targets.js"},"./plugin-sdk/telegram-core":{"types":"./dist/plugin-sdk/telegram-core.d.ts","default":"./dist/plugin-sdk/telegram-core.js"},"./plugin-sdk/whatsapp-core":{"types":"./dist/plugin-sdk/whatsapp-core.d.ts","default":"./dist/plugin-sdk/whatsapp-core.js"},"./plugin-sdk/windows-spawn":{"types":"./dist/plugin-sdk/windows-spawn.d.ts","default":"./dist/plugin-sdk/windows-spawn.js"},"./plugin-sdk/channel-policy":{"types":"./dist/plugin-sdk/channel-policy.d.ts","default":"./dist/plugin-sdk/channel-policy.js"},"./plugin-sdk/channel-status":{"types":"./dist/plugin-sdk/channel-status.d.ts","default":"./dist/plugin-sdk/channel-status.js"},"./plugin-sdk/config-runtime":{"types":"./dist/plugin-sdk/config-runtime.d.ts","default":"./dist/plugin-sdk/config-runtime.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/plugin-runtime":{"types":"./dist/plugin-sdk/plugin-runtime.d.ts","default":"./dist/plugin-sdk/plugin-runtime.js"},"./plugin-sdk/provider-entry":{"types":"./dist/plugin-sdk/provider-entry.d.ts","default":"./dist/plugin-sdk/provider-entry.js"},"./plugin-sdk/provider-setup":{"types":"./dist/plugin-sdk/provider-setup.d.ts","default":"./dist/plugin-sdk/provider-setup.js"},"./plugin-sdk/provider-usage":{"types":"./dist/plugin-sdk/provider-usage.d.ts","default":"./dist/plugin-sdk/provider-usage.js"},"./plugin-sdk/speech-runtime":{"types":"./dist/plugin-sdk/speech-runtime.d.ts","default":"./dist/plugin-sdk/speech-runtime.js"},"./plugin-sdk/status-helpers":{"types":"./dist/plugin-sdk/status-helpers.d.ts","default":"./dist/plugin-sdk/status-helpers.js"},"./plugin-sdk/account-helpers":{"types":"./dist/plugin-sdk/account-helpers.d.ts","default":"./dist/plugin-sdk/account-helpers.js"},"./plugin-sdk/channel-actions":{"types":"./dist/plugin-sdk/channel-actions.d.ts","default":"./dist/plugin-sdk/channel-actions.js"},"./plugin-sdk/channel-inbound":{"types":"./dist/plugin-sdk/channel-inbound.d.ts","default":"./dist/plugin-sdk/channel-inbound.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.js"},"./plugin-sdk/channel-runtime":{"types":"./dist/plugin-sdk/channel-runtime.d.ts","default":"./dist/plugin-sdk/channel-runtime.js"},"./plugin-sdk/channel-targets":{"types":"./dist/plugin-sdk/channel-targets.d.ts","default":"./dist/plugin-sdk/channel-targets.js"},"./plugin-sdk/gateway-runtime":{"types":"./dist/plugin-sdk/gateway-runtime.d.ts","default":"./dist/plugin-sdk/gateway-runtime.js"},"./plugin-sdk/process-runtime":{"types":"./dist/plugin-sdk/process-runtime.d.ts","default":"./dist/plugin-sdk/process-runtime.js"},"./plugin-sdk/provider-google":{"types":"./dist/plugin-sdk/provider-google.d.ts","default":"./dist/plugin-sdk/provider-google.js"},"./plugin-sdk/provider-models":{"types":"./dist/plugin-sdk/provider-models.d.ts","default":"./dist/plugin-sdk/provider-models.js"},"./plugin-sdk/provider-stream":{"types":"./dist/plugin-sdk/provider-stream.d.ts","default":"./dist/plugin-sdk/provider-stream.js"},"./plugin-sdk/webhook-ingress":{"types":"./dist/plugin-sdk/webhook-ingress.d.ts","default":"./dist/plugin-sdk/webhook-ingress.js"},"./plugin-sdk/whatsapp-shared":{"types":"./dist/plugin-sdk/whatsapp-shared.d.ts","default":"./dist/plugin-sdk/whatsapp-shared.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/device-bootstrap":{"types":"./dist/plugin-sdk/device-bootstrap.d.ts","default":"./dist/plugin-sdk/device-bootstrap.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/extension-shared":{"types":"./dist/plugin-sdk/extension-shared.d.ts","default":"./dist/plugin-sdk/extension-shared.js"},"./plugin-sdk/image-generation":{"types":"./dist/plugin-sdk/image-generation.d.ts","default":"./dist/plugin-sdk/image-generation.js"},"./plugin-sdk/outbound-runtime":{"types":"./dist/plugin-sdk/outbound-runtime.d.ts","default":"./dist/plugin-sdk/outbound-runtime.js"},"./plugin-sdk/provider-catalog":{"types":"./dist/plugin-sdk/provider-catalog.d.ts","default":"./dist/plugin-sdk/provider-catalog.js"},"./plugin-sdk/provider-onboard":{"types":"./dist/plugin-sdk/provider-onboard.d.ts","default":"./dist/plugin-sdk/provider-onboard.js"},"./plugin-sdk/security-runtime":{"types":"./dist/plugin-sdk/security-runtime.d.ts","default":"./dist/plugin-sdk/security-runtime.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.js"},"./plugin-sdk/directory-runtime":{"types":"./dist/plugin-sdk/directory-runtime.d.ts","default":"./dist/plugin-sdk/directory-runtime.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/provider-env-vars":{"types":"./dist/plugin-sdk/provider-env-vars.d.ts","default":"./dist/plugin-sdk/provider-env-vars.js"},"./plugin-sdk/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/interactive-runtime":{"types":"./dist/plugin-sdk/interactive-runtime.d.ts","default":"./dist/plugin-sdk/interactive-runtime.js"},"./plugin-sdk/media-understanding":{"types":"./dist/plugin-sdk/media-understanding.d.ts","default":"./dist/plugin-sdk/media-understanding.js"},"./plugin-sdk/provider-auth-login":{"types":"./dist/plugin-sdk/provider-auth-login.d.ts","default":"./dist/plugin-sdk/provider-auth-login.js"},"./plugin-sdk/provider-web-search":{"types":"./dist/plugin-sdk/provider-web-search.d.ts","default":"./dist/plugin-sdk/provider-web-search.js"},"./plugin-sdk/conversation-runtime":{"types":"./dist/plugin-sdk/conversation-runtime.d.ts","default":"./dist/plugin-sdk/conversation-runtime.js"},"./plugin-sdk/github-copilot-token":{"types":"./dist/plugin-sdk/github-copilot-token.d.ts","default":"./dist/plugin-sdk/github-copilot-token.js"},"./plugin-sdk/matrix-runtime-heavy":{"types":"./dist/plugin-sdk/matrix-runtime-heavy.d.ts","default":"./dist/plugin-sdk/matrix-runtime-heavy.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/channel-config-schema":{"types":"./dist/plugin-sdk/channel-config-schema.d.ts","default":"./dist/plugin-sdk/channel-config-schema.js"},"./plugin-sdk/image-generation-core":{"types":"./dist/plugin-sdk/image-generation-core.d.ts","default":"./dist/plugin-sdk/image-generation-core.js"},"./plugin-sdk/matrix-runtime-shared":{"types":"./dist/plugin-sdk/matrix-runtime-shared.d.ts","default":"./dist/plugin-sdk/matrix-runtime-shared.js"},"./plugin-sdk/provider-auth-api-key":{"types":"./dist/plugin-sdk/provider-auth-api-key.d.ts","default":"./dist/plugin-sdk/provider-auth-api-key.js"},"./plugin-sdk/provider-zai-endpoint":{"types":"./dist/plugin-sdk/provider-zai-endpoint.d.ts","default":"./dist/plugin-sdk/provider-zai-endpoint.js"},"./plugin-sdk/setup-adapter-runtime":{"types":"./dist/plugin-sdk/setup-adapter-runtime.d.ts","default":"./dist/plugin-sdk/setup-adapter-runtime.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-reply-pipeline":{"types":"./dist/plugin-sdk/channel-reply-pipeline.d.ts","default":"./dist/plugin-sdk/channel-reply-pipeline.js"},"./plugin-sdk/thread-bindings-runtime":{"types":"./dist/plugin-sdk/thread-bindings-runtime.d.ts","default":"./dist/plugin-sdk/thread-bindings-runtime.js"},"./plugin-sdk/self-hosted-provider-setup":{"types":"./dist/plugin-sdk/self-hosted-provider-setup.d.ts","default":"./dist/plugin-sdk/self-hosted-provider-setup.js"},"./plugin-sdk/media-understanding-runtime":{"types":"./dist/plugin-sdk/media-understanding-runtime.d.ts","default":"./dist/plugin-sdk/media-understanding-runtime.js"}},"gitHead":"b19cc399b664ad349c627b5e1281b5abdae6e49c","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:no-conflict-markers && pnpm check:host-env-policy:swift && pnpm check:base-config-schema && pnpm check:bundled-plugin-metadata && pnpm check:bundled-provider-auth-env-vars && pnpm format:check && pnpm tsgo && pnpm plugin-sdk:check-exports && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:plugins:no-extension-src-imports && pnpm lint:plugins:no-extension-test-core-imports && pnpm lint:plugins:no-extension-imports && pnpm lint:plugins:plugin-sdk-subpaths-exported && pnpm lint:extensions:no-src-outside-plugin-sdk && pnpm lint:extensions:no-plugin-sdk-internal && pnpm lint:extensions:no-relative-outside-package && pnpm lint:web-search-provider-boundaries && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-i18n-glossary && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity","audit:seams":"node scripts/audit-seams.mjs","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testPlayDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:changed":"pnpm test -- --changed origin/main","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_PROFILE=macmini node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"pnpm config:docs:check && pnpm plugin-sdk:api:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && pnpm ui:build && node --import tsx scripts/release-check.ts","test:channels":"OPENCLAW_TEST_SKIP_DEFAULT=1 OPENCLAW_TEST_INCLUDE_CHANNELS=1 node scripts/test-parallel.mjs","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:contracts":"pnpm test:contracts:channels && pnpm test:contracts:plugins","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:extension":"node scripts/test-extension.mjs","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installPlayDebug","config:docs:gen":"node --import tsx scripts/generate-config-doc-baseline.ts --write","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"OPENCLAW_TEST_SKIP_DEFAULT=1 OPENCLAW_TEST_INCLUDE_EXTENSIONS=1 node scripts/test-parallel.mjs","android:assemble":"cd apps/android && ./gradlew :app:assemblePlayDebug","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","config:docs:check":"node --import tsx scripts/generate-config-doc-baseline.ts --check","config:schema:gen":"node --import tsx scripts/generate-base-config-schema.ts --write","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","test:perf:imports":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","plugin-sdk:api:gen":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:e2e:openshell":"OPENCLAW_E2E_OPENSHELL=1 vitest run --config vitest.e2e.config.ts test/openshell-sandbox.e2e.test.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","config:schema:check":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:startup:memory":"node scripts/check-cli-startup-memory.mjs","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","plugin-sdk:api:check":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check","test:build:singleton":"node scripts/test-built-plugin-singleton.mjs","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","test:coverage:changed":"vitest run --config vitest.unit.config.ts --coverage --changed origin/main","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:contracts:plugins":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/plugins/contracts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","test:perf:profile:main":"node scripts/run-vitest-profile.mjs main","android:run:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","plugin-sdk:sync-exports":"node scripts/sync-plugin-sdk-exports.mjs","test:contracts:channels":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/channels/plugins/contracts","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","android:test:third-party":"cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:check-i18n-glossary":"node scripts/check-docs-i18n-glossary.mjs","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","plugin-sdk:check-exports":"node scripts/sync-plugin-sdk-exports.mjs --check","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:perf:profile:runner":"node scripts/run-vitest-profile.mjs runner","test:perf:update-timings":"node scripts/test-update-timings.mjs","check:no-conflict-markers":"node scripts/check-no-conflict-markers.mjs","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","release:plugins:npm:check":"node --import tsx scripts/plugin-npm-release-check.ts","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:parallels:npm-update":"bash scripts/e2e/parallels-npm-update-smoke.sh","test:perf:imports:changed":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test -- --changed origin/main","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","android:install:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","android:assemble:third-party":"cd apps/android && ./gradlew :app:assembleThirdPartyDebug","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","check:bundled-plugin-metadata":"node scripts/generate-bundled-plugin-metadata.mjs --check","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","test:gateway:watch-regression":"node scripts/check-gateway-watch-regression.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","test:perf:find-thread-candidates":"node scripts/test-find-thread-candidates.mjs","test:perf:update-memory-hotspots":"node scripts/test-update-memory-hotspots.mjs","lint:plugins:no-extension-imports":"node scripts/check-plugin-extension-import-boundary.mjs","stage:bundled-plugin-runtime-deps":"node scripts/stage-bundled-plugin-runtime-deps.mjs","lint:web-search-provider-boundaries":"node scripts/check-web-search-provider-boundaries.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","check:bundled-provider-auth-env-vars":"node scripts/generate-bundled-provider-auth-env-vars.mjs --check","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-extension-src-imports":"node --import tsx scripts/check-no-extension-src-imports.ts","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","release:openclaw:npm:verify-published":"node --import tsx scripts/openclaw-npm-postpublish-verify.ts","lint:extensions:no-plugin-sdk-internal":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal","lint:extensions:no-src-outside-plugin-sdk":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk","lint:plugins:plugin-sdk-subpaths-exported":"node scripts/check-plugin-sdk-subpath-exports.mjs","lint:extensions:no-relative-outside-package":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package","lint:plugins:no-extension-test-core-imports":"node --import tsx scripts/check-no-extension-test-core-imports.ts","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2bccb063-cd01-4335-8b61-f7859f1dd4e2"}},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.20.0","ajv":"^8.18.0","tar":"7.5.12","zod":"^4.3.6","hono":"4.12.8","jiti":"^2.6.1","long":"^5.3.2","uuid":"^13.0.0","yaml":"^2.8.3","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.4","undici":"^7.24.5","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"21.3.4","ipaddr.js":"^2.3.0","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","@mariozechner/pi-ai":"0.61.1","@mariozechner/pi-tui":"0.61.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1014.0","@agentclientprotocol/sdk":"0.16.1","@anthropic-ai/vertex-sdk":"^0.14.4","@modelcontextprotocol/sdk":"1.27.1","@mariozechner/pi-agent-core":"0.61.1","@mariozechner/pi-coding-agent":"0.61.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^29.0.1","oxfmt":"0.41.0","oxlint":"^1.56.0","tsdown":"0.21.4","vitest":"^4.1.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.17.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.0","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260322.1"},"peerDependencies":{"node-llama-cpp":"3.18.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.24-beta.1_1774441159066_0.12344904945623503","host":"s3://npm-registry-packages-npm-production"}},"2026.3.24-beta.2":{"name":"openclaw","version":"2026.3.24-beta.2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.24-beta.2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"8e31d00406a0cbca28f35a542a3a42329dc1babd","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.24-beta.2.tgz","fileCount":15037,"integrity":"sha512-vfNS22RrFgMu4FDJmg9io2MqE3QOjtyVnO9MPrBCQ3IQKPvVStZsSRWZYWayWVGPDHeZbUkQYmee7xx1uXMuxw==","signatures":[{"sig":"MEYCIQCxxc/KnRJt2w7f6j8TsVEuwG1VZXlrGNPt4oQIpvF87wIhAIIJary2Ps21WX+OLTsPA0QV8h7x41Pbwkx+f36MfYpg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openclaw@2026.3.24-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":187954962},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.12","hono":"4.12.8","yauzl":"3.2.1","request":"npm:@cypress/request@3.0.10","file-type":"21.3.4","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.5.7","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@tloncorp/tlon-skill","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"],"ignoredBuiltDependencies":["@discordjs/opus","koffi"]},"type":"module","engines":{"node":">=22.14.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./extension-api":"./dist/extensionAPI.js","./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/setup":{"types":"./dist/plugin-sdk/setup.d.ts","default":"./dist/plugin-sdk/setup.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/speech":{"types":"./dist/plugin-sdk/speech.d.ts","default":"./dist/plugin-sdk/speech.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.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/sandbox":{"types":"./dist/plugin-sdk/sandbox.d.ts","default":"./dist/plugin-sdk/sandbox.js"},"./plugin-sdk/testing":{"types":"./dist/plugin-sdk/testing.d.ts","default":"./dist/plugin-sdk/testing.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/line-core":{"types":"./dist/plugin-sdk/line-core.d.ts","default":"./dist/plugin-sdk/line-core.js"},"./plugin-sdk/temp-path":{"types":"./dist/plugin-sdk/temp-path.d.ts","default":"./dist/plugin-sdk/temp-path.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/web-media":{"types":"./dist/plugin-sdk/web-media.d.ts","default":"./dist/plugin-sdk/web-media.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/allow-from":{"types":"./dist/plugin-sdk/allow-from.d.ts","default":"./dist/plugin-sdk/allow-from.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/json-store":{"types":"./dist/plugin-sdk/json-store.d.ts","default":"./dist/plugin-sdk/json-store.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/slack-core":{"types":"./dist/plugin-sdk/slack-core.d.ts","default":"./dist/plugin-sdk/slack-core.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/acp-runtime":{"types":"./dist/plugin-sdk/acp-runtime.d.ts","default":"./dist/plugin-sdk/acp-runtime.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/cli-runtime":{"types":"./dist/plugin-sdk/cli-runtime.d.ts","default":"./dist/plugin-sdk/cli-runtime.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/request-url":{"types":"./dist/plugin-sdk/request-url.d.ts","default":"./dist/plugin-sdk/request-url.js"},"./plugin-sdk/runtime-env":{"types":"./dist/plugin-sdk/runtime-env.d.ts","default":"./dist/plugin-sdk/runtime-env.js"},"./plugin-sdk/setup-tools":{"types":"./dist/plugin-sdk/setup-tools.d.ts","default":"./dist/plugin-sdk/setup-tools.js"},"./plugin-sdk/speech-core":{"types":"./dist/plugin-sdk/speech-core.d.ts","default":"./dist/plugin-sdk/speech-core.js"},"./plugin-sdk/state-paths":{"types":"./dist/plugin-sdk/state-paths.d.ts","default":"./dist/plugin-sdk/state-paths.js"},"./plugin-sdk/command-auth":{"types":"./dist/plugin-sdk/command-auth.d.ts","default":"./dist/plugin-sdk/command-auth.js"},"./plugin-sdk/discord-core":{"types":"./dist/plugin-sdk/discord-core.d.ts","default":"./dist/plugin-sdk/discord-core.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/hook-runtime":{"types":"./dist/plugin-sdk/hook-runtime.d.ts","default":"./dist/plugin-sdk/hook-runtime.js"},"./plugin-sdk/lazy-runtime":{"types":"./dist/plugin-sdk/lazy-runtime.d.ts","default":"./dist/plugin-sdk/lazy-runtime.js"},"./plugin-sdk/line-runtime":{"types":"./dist/plugin-sdk/line-runtime.d.ts","default":"./dist/plugin-sdk/line-runtime.js"},"./plugin-sdk/ollama-setup":{"types":"./dist/plugin-sdk/ollama-setup.d.ts","default":"./dist/plugin-sdk/ollama-setup.js"},"./plugin-sdk/plugin-entry":{"types":"./dist/plugin-sdk/plugin-entry.d.ts","default":"./dist/plugin-sdk/plugin-entry.js"},"./plugin-sdk/secret-input":{"types":"./dist/plugin-sdk/secret-input.d.ts","default":"./dist/plugin-sdk/secret-input.js"},"./plugin-sdk/ssrf-runtime":{"types":"./dist/plugin-sdk/ssrf-runtime.d.ts","default":"./dist/plugin-sdk/ssrf-runtime.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/webhook-path":{"types":"./dist/plugin-sdk/webhook-path.d.ts","default":"./dist/plugin-sdk/webhook-path.js"},"./plugin-sdk/agent-runtime":{"types":"./dist/plugin-sdk/agent-runtime.d.ts","default":"./dist/plugin-sdk/agent-runtime.js"},"./plugin-sdk/boolean-param":{"types":"./dist/plugin-sdk/boolean-param.d.ts","default":"./dist/plugin-sdk/boolean-param.js"},"./plugin-sdk/channel-setup":{"types":"./dist/plugin-sdk/channel-setup.d.ts","default":"./dist/plugin-sdk/channel-setup.js"},"./plugin-sdk/imessage-core":{"types":"./dist/plugin-sdk/imessage-core.d.ts","default":"./dist/plugin-sdk/imessage-core.js"},"./plugin-sdk/infra-runtime":{"types":"./dist/plugin-sdk/infra-runtime.d.ts","default":"./dist/plugin-sdk/infra-runtime.js"},"./plugin-sdk/media-runtime":{"types":"./dist/plugin-sdk/media-runtime.d.ts","default":"./dist/plugin-sdk/media-runtime.js"},"./plugin-sdk/param-readers":{"types":"./dist/plugin-sdk/param-readers.d.ts","default":"./dist/plugin-sdk/param-readers.js"},"./plugin-sdk/provider-auth":{"types":"./dist/plugin-sdk/provider-auth.d.ts","default":"./dist/plugin-sdk/provider-auth.js"},"./plugin-sdk/reply-history":{"types":"./dist/plugin-sdk/reply-history.d.ts","default":"./dist/plugin-sdk/reply-history.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/reply-runtime":{"types":"./dist/plugin-sdk/reply-runtime.d.ts","default":"./dist/plugin-sdk/reply-runtime.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/setup-runtime":{"types":"./dist/plugin-sdk/setup-runtime.d.ts","default":"./dist/plugin-sdk/setup-runtime.js"},"./plugin-sdk/slack-targets":{"types":"./dist/plugin-sdk/slack-targets.d.ts","default":"./dist/plugin-sdk/slack-targets.js"},"./plugin-sdk/telegram-core":{"types":"./dist/plugin-sdk/telegram-core.d.ts","default":"./dist/plugin-sdk/telegram-core.js"},"./plugin-sdk/whatsapp-core":{"types":"./dist/plugin-sdk/whatsapp-core.d.ts","default":"./dist/plugin-sdk/whatsapp-core.js"},"./plugin-sdk/windows-spawn":{"types":"./dist/plugin-sdk/windows-spawn.d.ts","default":"./dist/plugin-sdk/windows-spawn.js"},"./plugin-sdk/channel-policy":{"types":"./dist/plugin-sdk/channel-policy.d.ts","default":"./dist/plugin-sdk/channel-policy.js"},"./plugin-sdk/channel-status":{"types":"./dist/plugin-sdk/channel-status.d.ts","default":"./dist/plugin-sdk/channel-status.js"},"./plugin-sdk/config-runtime":{"types":"./dist/plugin-sdk/config-runtime.d.ts","default":"./dist/plugin-sdk/config-runtime.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/plugin-runtime":{"types":"./dist/plugin-sdk/plugin-runtime.d.ts","default":"./dist/plugin-sdk/plugin-runtime.js"},"./plugin-sdk/provider-entry":{"types":"./dist/plugin-sdk/provider-entry.d.ts","default":"./dist/plugin-sdk/provider-entry.js"},"./plugin-sdk/provider-setup":{"types":"./dist/plugin-sdk/provider-setup.d.ts","default":"./dist/plugin-sdk/provider-setup.js"},"./plugin-sdk/provider-usage":{"types":"./dist/plugin-sdk/provider-usage.d.ts","default":"./dist/plugin-sdk/provider-usage.js"},"./plugin-sdk/speech-runtime":{"types":"./dist/plugin-sdk/speech-runtime.d.ts","default":"./dist/plugin-sdk/speech-runtime.js"},"./plugin-sdk/status-helpers":{"types":"./dist/plugin-sdk/status-helpers.d.ts","default":"./dist/plugin-sdk/status-helpers.js"},"./plugin-sdk/account-helpers":{"types":"./dist/plugin-sdk/account-helpers.d.ts","default":"./dist/plugin-sdk/account-helpers.js"},"./plugin-sdk/channel-actions":{"types":"./dist/plugin-sdk/channel-actions.d.ts","default":"./dist/plugin-sdk/channel-actions.js"},"./plugin-sdk/channel-inbound":{"types":"./dist/plugin-sdk/channel-inbound.d.ts","default":"./dist/plugin-sdk/channel-inbound.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.js"},"./plugin-sdk/channel-runtime":{"types":"./dist/plugin-sdk/channel-runtime.d.ts","default":"./dist/plugin-sdk/channel-runtime.js"},"./plugin-sdk/channel-targets":{"types":"./dist/plugin-sdk/channel-targets.d.ts","default":"./dist/plugin-sdk/channel-targets.js"},"./plugin-sdk/gateway-runtime":{"types":"./dist/plugin-sdk/gateway-runtime.d.ts","default":"./dist/plugin-sdk/gateway-runtime.js"},"./plugin-sdk/process-runtime":{"types":"./dist/plugin-sdk/process-runtime.d.ts","default":"./dist/plugin-sdk/process-runtime.js"},"./plugin-sdk/provider-google":{"types":"./dist/plugin-sdk/provider-google.d.ts","default":"./dist/plugin-sdk/provider-google.js"},"./plugin-sdk/provider-models":{"types":"./dist/plugin-sdk/provider-models.d.ts","default":"./dist/plugin-sdk/provider-models.js"},"./plugin-sdk/provider-stream":{"types":"./dist/plugin-sdk/provider-stream.d.ts","default":"./dist/plugin-sdk/provider-stream.js"},"./plugin-sdk/webhook-ingress":{"types":"./dist/plugin-sdk/webhook-ingress.d.ts","default":"./dist/plugin-sdk/webhook-ingress.js"},"./plugin-sdk/whatsapp-shared":{"types":"./dist/plugin-sdk/whatsapp-shared.d.ts","default":"./dist/plugin-sdk/whatsapp-shared.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/device-bootstrap":{"types":"./dist/plugin-sdk/device-bootstrap.d.ts","default":"./dist/plugin-sdk/device-bootstrap.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/extension-shared":{"types":"./dist/plugin-sdk/extension-shared.d.ts","default":"./dist/plugin-sdk/extension-shared.js"},"./plugin-sdk/image-generation":{"types":"./dist/plugin-sdk/image-generation.d.ts","default":"./dist/plugin-sdk/image-generation.js"},"./plugin-sdk/outbound-runtime":{"types":"./dist/plugin-sdk/outbound-runtime.d.ts","default":"./dist/plugin-sdk/outbound-runtime.js"},"./plugin-sdk/provider-catalog":{"types":"./dist/plugin-sdk/provider-catalog.d.ts","default":"./dist/plugin-sdk/provider-catalog.js"},"./plugin-sdk/provider-onboard":{"types":"./dist/plugin-sdk/provider-onboard.d.ts","default":"./dist/plugin-sdk/provider-onboard.js"},"./plugin-sdk/security-runtime":{"types":"./dist/plugin-sdk/security-runtime.d.ts","default":"./dist/plugin-sdk/security-runtime.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.js"},"./plugin-sdk/directory-runtime":{"types":"./dist/plugin-sdk/directory-runtime.d.ts","default":"./dist/plugin-sdk/directory-runtime.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/provider-env-vars":{"types":"./dist/plugin-sdk/provider-env-vars.d.ts","default":"./dist/plugin-sdk/provider-env-vars.js"},"./plugin-sdk/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/interactive-runtime":{"types":"./dist/plugin-sdk/interactive-runtime.d.ts","default":"./dist/plugin-sdk/interactive-runtime.js"},"./plugin-sdk/media-understanding":{"types":"./dist/plugin-sdk/media-understanding.d.ts","default":"./dist/plugin-sdk/media-understanding.js"},"./plugin-sdk/provider-auth-login":{"types":"./dist/plugin-sdk/provider-auth-login.d.ts","default":"./dist/plugin-sdk/provider-auth-login.js"},"./plugin-sdk/provider-web-search":{"types":"./dist/plugin-sdk/provider-web-search.d.ts","default":"./dist/plugin-sdk/provider-web-search.js"},"./plugin-sdk/conversation-runtime":{"types":"./dist/plugin-sdk/conversation-runtime.d.ts","default":"./dist/plugin-sdk/conversation-runtime.js"},"./plugin-sdk/github-copilot-token":{"types":"./dist/plugin-sdk/github-copilot-token.d.ts","default":"./dist/plugin-sdk/github-copilot-token.js"},"./plugin-sdk/matrix-runtime-heavy":{"types":"./dist/plugin-sdk/matrix-runtime-heavy.d.ts","default":"./dist/plugin-sdk/matrix-runtime-heavy.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/channel-config-schema":{"types":"./dist/plugin-sdk/channel-config-schema.d.ts","default":"./dist/plugin-sdk/channel-config-schema.js"},"./plugin-sdk/image-generation-core":{"types":"./dist/plugin-sdk/image-generation-core.d.ts","default":"./dist/plugin-sdk/image-generation-core.js"},"./plugin-sdk/matrix-runtime-shared":{"types":"./dist/plugin-sdk/matrix-runtime-shared.d.ts","default":"./dist/plugin-sdk/matrix-runtime-shared.js"},"./plugin-sdk/provider-auth-api-key":{"types":"./dist/plugin-sdk/provider-auth-api-key.d.ts","default":"./dist/plugin-sdk/provider-auth-api-key.js"},"./plugin-sdk/provider-zai-endpoint":{"types":"./dist/plugin-sdk/provider-zai-endpoint.d.ts","default":"./dist/plugin-sdk/provider-zai-endpoint.js"},"./plugin-sdk/setup-adapter-runtime":{"types":"./dist/plugin-sdk/setup-adapter-runtime.d.ts","default":"./dist/plugin-sdk/setup-adapter-runtime.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-reply-pipeline":{"types":"./dist/plugin-sdk/channel-reply-pipeline.d.ts","default":"./dist/plugin-sdk/channel-reply-pipeline.js"},"./plugin-sdk/thread-bindings-runtime":{"types":"./dist/plugin-sdk/thread-bindings-runtime.d.ts","default":"./dist/plugin-sdk/thread-bindings-runtime.js"},"./plugin-sdk/self-hosted-provider-setup":{"types":"./dist/plugin-sdk/self-hosted-provider-setup.d.ts","default":"./dist/plugin-sdk/self-hosted-provider-setup.js"},"./plugin-sdk/media-understanding-runtime":{"types":"./dist/plugin-sdk/media-understanding-runtime.d.ts","default":"./dist/plugin-sdk/media-understanding-runtime.js"}},"gitHead":"e9ac2860c1659f3fad1935dd519443c00a66aa25","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:no-conflict-markers && pnpm check:host-env-policy:swift && pnpm check:base-config-schema && pnpm check:bundled-plugin-metadata && pnpm check:bundled-provider-auth-env-vars && pnpm format:check && pnpm tsgo && pnpm plugin-sdk:check-exports && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:plugins:no-extension-src-imports && pnpm lint:plugins:no-extension-test-core-imports && pnpm lint:plugins:no-extension-imports && pnpm lint:plugins:plugin-sdk-subpaths-exported && pnpm lint:extensions:no-src-outside-plugin-sdk && pnpm lint:extensions:no-plugin-sdk-internal && pnpm lint:extensions:no-relative-outside-package && pnpm lint:web-search-provider-boundaries && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-i18n-glossary && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity","audit:seams":"node scripts/audit-seams.mjs","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testPlayDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:changed":"pnpm test -- --changed origin/main","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_PROFILE=macmini node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"pnpm config:docs:check && pnpm plugin-sdk:api:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && pnpm ui:build && node --import tsx scripts/release-check.ts","test:channels":"OPENCLAW_TEST_SKIP_DEFAULT=1 OPENCLAW_TEST_INCLUDE_CHANNELS=1 node scripts/test-parallel.mjs","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:contracts":"pnpm test:contracts:channels && pnpm test:contracts:plugins","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:extension":"node scripts/test-extension.mjs","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installPlayDebug","config:docs:gen":"node --import tsx scripts/generate-config-doc-baseline.ts --write","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:openwebui && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"OPENCLAW_TEST_SKIP_DEFAULT=1 OPENCLAW_TEST_INCLUDE_EXTENSIONS=1 node scripts/test-parallel.mjs","android:assemble":"cd apps/android && ./gradlew :app:assemblePlayDebug","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","config:docs:check":"node --import tsx scripts/generate-config-doc-baseline.ts --check","config:schema:gen":"node --import tsx scripts/generate-base-config-schema.ts --write","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","test:perf:imports":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","plugin-sdk:api:gen":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:e2e:openshell":"OPENCLAW_E2E_OPENSHELL=1 vitest run --config vitest.e2e.config.ts test/openshell-sandbox.e2e.test.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","config:schema:check":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:startup:memory":"node scripts/check-cli-startup-memory.mjs","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","plugin-sdk:api:check":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check","test:build:singleton":"node scripts/test-built-plugin-singleton.mjs","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","test:coverage:changed":"vitest run --config vitest.unit.config.ts --coverage --changed origin/main","test:docker:openwebui":"bash scripts/e2e/openwebui-docker.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:contracts:plugins":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/plugins/contracts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","test:perf:profile:main":"node scripts/run-vitest-profile.mjs main","android:run:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","plugin-sdk:sync-exports":"node scripts/sync-plugin-sdk-exports.mjs","test:contracts:channels":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/channels/plugins/contracts","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","android:test:third-party":"cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:check-i18n-glossary":"node scripts/check-docs-i18n-glossary.mjs","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","plugin-sdk:check-exports":"node scripts/sync-plugin-sdk-exports.mjs --check","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:perf:profile:runner":"node scripts/run-vitest-profile.mjs runner","test:perf:update-timings":"node scripts/test-update-timings.mjs","check:no-conflict-markers":"node scripts/check-no-conflict-markers.mjs","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","release:plugins:npm:check":"node --import tsx scripts/plugin-npm-release-check.ts","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:parallels:npm-update":"bash scripts/e2e/parallels-npm-update-smoke.sh","test:perf:imports:changed":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test -- --changed origin/main","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","android:install:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","android:assemble:third-party":"cd apps/android && ./gradlew :app:assembleThirdPartyDebug","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","check:bundled-plugin-metadata":"node scripts/generate-bundled-plugin-metadata.mjs --check","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","test:gateway:watch-regression":"node scripts/check-gateway-watch-regression.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","test:perf:find-thread-candidates":"node scripts/test-find-thread-candidates.mjs","test:perf:update-memory-hotspots":"node scripts/test-update-memory-hotspots.mjs","lint:plugins:no-extension-imports":"node scripts/check-plugin-extension-import-boundary.mjs","stage:bundled-plugin-runtime-deps":"node scripts/stage-bundled-plugin-runtime-deps.mjs","lint:web-search-provider-boundaries":"node scripts/check-web-search-provider-boundaries.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","check:bundled-provider-auth-env-vars":"node scripts/generate-bundled-provider-auth-env-vars.mjs --check","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-extension-src-imports":"node --import tsx scripts/check-no-extension-src-imports.ts","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","release:openclaw:npm:verify-published":"node --import tsx scripts/openclaw-npm-postpublish-verify.ts","lint:extensions:no-plugin-sdk-internal":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal","lint:extensions:no-src-outside-plugin-sdk":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk","lint:plugins:plugin-sdk-subpaths-exported":"node scripts/check-plugin-sdk-subpath-exports.mjs","lint:extensions:no-relative-outside-package":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package","lint:plugins:no-extension-test-core-imports":"node --import tsx scripts/check-no-extension-test-core-imports.ts","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2bccb063-cd01-4335-8b61-f7859f1dd4e2"}},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.20.0","ajv":"^8.18.0","tar":"7.5.12","zod":"^4.3.6","hono":"4.12.8","jiti":"^2.6.1","long":"^5.3.2","uuid":"^13.0.0","yaml":"^2.8.3","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.4","undici":"^7.24.5","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"21.3.4","ipaddr.js":"^2.3.0","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","@mariozechner/pi-ai":"0.61.1","@mariozechner/pi-tui":"0.61.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1014.0","@agentclientprotocol/sdk":"0.16.1","@anthropic-ai/vertex-sdk":"^0.14.4","@modelcontextprotocol/sdk":"1.27.1","@mariozechner/pi-agent-core":"0.61.1","@mariozechner/pi-coding-agent":"0.61.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^29.0.1","oxfmt":"0.41.0","oxlint":"^1.56.0","tsdown":"0.21.4","vitest":"^4.1.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.17.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.0","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260322.1"},"peerDependencies":{"node-llama-cpp":"3.18.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.24-beta.2_1774449152084_0.0019481969727015436","host":"s3://npm-registry-packages-npm-production"}},"2026.3.24":{"name":"openclaw","version":"2026.3.24","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.24","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"6e6b9972dfdef48d9c7d30f4dc9f31a08ce57f6c","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.24.tgz","fileCount":14950,"integrity":"sha512-Bjk1+AiTsjbBaAl4NI0pQjtmG0Y2BFVcQg7veOJ15T7+orBN8RYBK/9cdqejIENDV5Mm7IPgls2WImYsd5aJOQ==","signatures":[{"sig":"MEQCICAeVboZOHomz0yEdne/TPqdWmornFMofBF764x6oqsnAiBX0k11cTuBFF5TTf7mN2hh6C+ZtKemloRFA2aBIzn4pA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openclaw@2026.3.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":187914932},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.12","hono":"4.12.8","yauzl":"3.2.1","request":"npm:@cypress/request@3.0.10","file-type":"21.3.4","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","fast-xml-parser":"5.5.7","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@tloncorp/tlon-skill","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"],"ignoredBuiltDependencies":["@discordjs/opus","koffi"]},"type":"module","engines":{"node":">=22.14.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./extension-api":"./dist/extensionAPI.js","./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/setup":{"types":"./dist/plugin-sdk/setup.d.ts","default":"./dist/plugin-sdk/setup.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/speech":{"types":"./dist/plugin-sdk/speech.d.ts","default":"./dist/plugin-sdk/speech.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.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/sandbox":{"types":"./dist/plugin-sdk/sandbox.d.ts","default":"./dist/plugin-sdk/sandbox.js"},"./plugin-sdk/testing":{"types":"./dist/plugin-sdk/testing.d.ts","default":"./dist/plugin-sdk/testing.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/line-core":{"types":"./dist/plugin-sdk/line-core.d.ts","default":"./dist/plugin-sdk/line-core.js"},"./plugin-sdk/temp-path":{"types":"./dist/plugin-sdk/temp-path.d.ts","default":"./dist/plugin-sdk/temp-path.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/web-media":{"types":"./dist/plugin-sdk/web-media.d.ts","default":"./dist/plugin-sdk/web-media.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/allow-from":{"types":"./dist/plugin-sdk/allow-from.d.ts","default":"./dist/plugin-sdk/allow-from.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/json-store":{"types":"./dist/plugin-sdk/json-store.d.ts","default":"./dist/plugin-sdk/json-store.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/slack-core":{"types":"./dist/plugin-sdk/slack-core.d.ts","default":"./dist/plugin-sdk/slack-core.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/acp-runtime":{"types":"./dist/plugin-sdk/acp-runtime.d.ts","default":"./dist/plugin-sdk/acp-runtime.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/cli-runtime":{"types":"./dist/plugin-sdk/cli-runtime.d.ts","default":"./dist/plugin-sdk/cli-runtime.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/request-url":{"types":"./dist/plugin-sdk/request-url.d.ts","default":"./dist/plugin-sdk/request-url.js"},"./plugin-sdk/runtime-env":{"types":"./dist/plugin-sdk/runtime-env.d.ts","default":"./dist/plugin-sdk/runtime-env.js"},"./plugin-sdk/setup-tools":{"types":"./dist/plugin-sdk/setup-tools.d.ts","default":"./dist/plugin-sdk/setup-tools.js"},"./plugin-sdk/speech-core":{"types":"./dist/plugin-sdk/speech-core.d.ts","default":"./dist/plugin-sdk/speech-core.js"},"./plugin-sdk/state-paths":{"types":"./dist/plugin-sdk/state-paths.d.ts","default":"./dist/plugin-sdk/state-paths.js"},"./plugin-sdk/command-auth":{"types":"./dist/plugin-sdk/command-auth.d.ts","default":"./dist/plugin-sdk/command-auth.js"},"./plugin-sdk/discord-core":{"types":"./dist/plugin-sdk/discord-core.d.ts","default":"./dist/plugin-sdk/discord-core.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/hook-runtime":{"types":"./dist/plugin-sdk/hook-runtime.d.ts","default":"./dist/plugin-sdk/hook-runtime.js"},"./plugin-sdk/lazy-runtime":{"types":"./dist/plugin-sdk/lazy-runtime.d.ts","default":"./dist/plugin-sdk/lazy-runtime.js"},"./plugin-sdk/line-runtime":{"types":"./dist/plugin-sdk/line-runtime.d.ts","default":"./dist/plugin-sdk/line-runtime.js"},"./plugin-sdk/ollama-setup":{"types":"./dist/plugin-sdk/ollama-setup.d.ts","default":"./dist/plugin-sdk/ollama-setup.js"},"./plugin-sdk/plugin-entry":{"types":"./dist/plugin-sdk/plugin-entry.d.ts","default":"./dist/plugin-sdk/plugin-entry.js"},"./plugin-sdk/secret-input":{"types":"./dist/plugin-sdk/secret-input.d.ts","default":"./dist/plugin-sdk/secret-input.js"},"./plugin-sdk/ssrf-runtime":{"types":"./dist/plugin-sdk/ssrf-runtime.d.ts","default":"./dist/plugin-sdk/ssrf-runtime.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/webhook-path":{"types":"./dist/plugin-sdk/webhook-path.d.ts","default":"./dist/plugin-sdk/webhook-path.js"},"./plugin-sdk/agent-runtime":{"types":"./dist/plugin-sdk/agent-runtime.d.ts","default":"./dist/plugin-sdk/agent-runtime.js"},"./plugin-sdk/boolean-param":{"types":"./dist/plugin-sdk/boolean-param.d.ts","default":"./dist/plugin-sdk/boolean-param.js"},"./plugin-sdk/channel-setup":{"types":"./dist/plugin-sdk/channel-setup.d.ts","default":"./dist/plugin-sdk/channel-setup.js"},"./plugin-sdk/imessage-core":{"types":"./dist/plugin-sdk/imessage-core.d.ts","default":"./dist/plugin-sdk/imessage-core.js"},"./plugin-sdk/infra-runtime":{"types":"./dist/plugin-sdk/infra-runtime.d.ts","default":"./dist/plugin-sdk/infra-runtime.js"},"./plugin-sdk/media-runtime":{"types":"./dist/plugin-sdk/media-runtime.d.ts","default":"./dist/plugin-sdk/media-runtime.js"},"./plugin-sdk/param-readers":{"types":"./dist/plugin-sdk/param-readers.d.ts","default":"./dist/plugin-sdk/param-readers.js"},"./plugin-sdk/provider-auth":{"types":"./dist/plugin-sdk/provider-auth.d.ts","default":"./dist/plugin-sdk/provider-auth.js"},"./plugin-sdk/reply-history":{"types":"./dist/plugin-sdk/reply-history.d.ts","default":"./dist/plugin-sdk/reply-history.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/reply-runtime":{"types":"./dist/plugin-sdk/reply-runtime.d.ts","default":"./dist/plugin-sdk/reply-runtime.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/setup-runtime":{"types":"./dist/plugin-sdk/setup-runtime.d.ts","default":"./dist/plugin-sdk/setup-runtime.js"},"./plugin-sdk/slack-targets":{"types":"./dist/plugin-sdk/slack-targets.d.ts","default":"./dist/plugin-sdk/slack-targets.js"},"./plugin-sdk/telegram-core":{"types":"./dist/plugin-sdk/telegram-core.d.ts","default":"./dist/plugin-sdk/telegram-core.js"},"./plugin-sdk/whatsapp-core":{"types":"./dist/plugin-sdk/whatsapp-core.d.ts","default":"./dist/plugin-sdk/whatsapp-core.js"},"./plugin-sdk/windows-spawn":{"types":"./dist/plugin-sdk/windows-spawn.d.ts","default":"./dist/plugin-sdk/windows-spawn.js"},"./plugin-sdk/channel-policy":{"types":"./dist/plugin-sdk/channel-policy.d.ts","default":"./dist/plugin-sdk/channel-policy.js"},"./plugin-sdk/channel-status":{"types":"./dist/plugin-sdk/channel-status.d.ts","default":"./dist/plugin-sdk/channel-status.js"},"./plugin-sdk/config-runtime":{"types":"./dist/plugin-sdk/config-runtime.d.ts","default":"./dist/plugin-sdk/config-runtime.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/plugin-runtime":{"types":"./dist/plugin-sdk/plugin-runtime.d.ts","default":"./dist/plugin-sdk/plugin-runtime.js"},"./plugin-sdk/provider-entry":{"types":"./dist/plugin-sdk/provider-entry.d.ts","default":"./dist/plugin-sdk/provider-entry.js"},"./plugin-sdk/provider-setup":{"types":"./dist/plugin-sdk/provider-setup.d.ts","default":"./dist/plugin-sdk/provider-setup.js"},"./plugin-sdk/provider-usage":{"types":"./dist/plugin-sdk/provider-usage.d.ts","default":"./dist/plugin-sdk/provider-usage.js"},"./plugin-sdk/speech-runtime":{"types":"./dist/plugin-sdk/speech-runtime.d.ts","default":"./dist/plugin-sdk/speech-runtime.js"},"./plugin-sdk/status-helpers":{"types":"./dist/plugin-sdk/status-helpers.d.ts","default":"./dist/plugin-sdk/status-helpers.js"},"./plugin-sdk/account-helpers":{"types":"./dist/plugin-sdk/account-helpers.d.ts","default":"./dist/plugin-sdk/account-helpers.js"},"./plugin-sdk/channel-actions":{"types":"./dist/plugin-sdk/channel-actions.d.ts","default":"./dist/plugin-sdk/channel-actions.js"},"./plugin-sdk/channel-inbound":{"types":"./dist/plugin-sdk/channel-inbound.d.ts","default":"./dist/plugin-sdk/channel-inbound.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.js"},"./plugin-sdk/channel-runtime":{"types":"./dist/plugin-sdk/channel-runtime.d.ts","default":"./dist/plugin-sdk/channel-runtime.js"},"./plugin-sdk/channel-targets":{"types":"./dist/plugin-sdk/channel-targets.d.ts","default":"./dist/plugin-sdk/channel-targets.js"},"./plugin-sdk/gateway-runtime":{"types":"./dist/plugin-sdk/gateway-runtime.d.ts","default":"./dist/plugin-sdk/gateway-runtime.js"},"./plugin-sdk/process-runtime":{"types":"./dist/plugin-sdk/process-runtime.d.ts","default":"./dist/plugin-sdk/process-runtime.js"},"./plugin-sdk/provider-google":{"types":"./dist/plugin-sdk/provider-google.d.ts","default":"./dist/plugin-sdk/provider-google.js"},"./plugin-sdk/provider-models":{"types":"./dist/plugin-sdk/provider-models.d.ts","default":"./dist/plugin-sdk/provider-models.js"},"./plugin-sdk/provider-stream":{"types":"./dist/plugin-sdk/provider-stream.d.ts","default":"./dist/plugin-sdk/provider-stream.js"},"./plugin-sdk/webhook-ingress":{"types":"./dist/plugin-sdk/webhook-ingress.d.ts","default":"./dist/plugin-sdk/webhook-ingress.js"},"./plugin-sdk/whatsapp-shared":{"types":"./dist/plugin-sdk/whatsapp-shared.d.ts","default":"./dist/plugin-sdk/whatsapp-shared.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/device-bootstrap":{"types":"./dist/plugin-sdk/device-bootstrap.d.ts","default":"./dist/plugin-sdk/device-bootstrap.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/extension-shared":{"types":"./dist/plugin-sdk/extension-shared.d.ts","default":"./dist/plugin-sdk/extension-shared.js"},"./plugin-sdk/image-generation":{"types":"./dist/plugin-sdk/image-generation.d.ts","default":"./dist/plugin-sdk/image-generation.js"},"./plugin-sdk/outbound-runtime":{"types":"./dist/plugin-sdk/outbound-runtime.d.ts","default":"./dist/plugin-sdk/outbound-runtime.js"},"./plugin-sdk/provider-catalog":{"types":"./dist/plugin-sdk/provider-catalog.d.ts","default":"./dist/plugin-sdk/provider-catalog.js"},"./plugin-sdk/provider-onboard":{"types":"./dist/plugin-sdk/provider-onboard.d.ts","default":"./dist/plugin-sdk/provider-onboard.js"},"./plugin-sdk/security-runtime":{"types":"./dist/plugin-sdk/security-runtime.d.ts","default":"./dist/plugin-sdk/security-runtime.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.js"},"./plugin-sdk/directory-runtime":{"types":"./dist/plugin-sdk/directory-runtime.d.ts","default":"./dist/plugin-sdk/directory-runtime.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/provider-env-vars":{"types":"./dist/plugin-sdk/provider-env-vars.d.ts","default":"./dist/plugin-sdk/provider-env-vars.js"},"./plugin-sdk/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.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/interactive-runtime":{"types":"./dist/plugin-sdk/interactive-runtime.d.ts","default":"./dist/plugin-sdk/interactive-runtime.js"},"./plugin-sdk/media-understanding":{"types":"./dist/plugin-sdk/media-understanding.d.ts","default":"./dist/plugin-sdk/media-understanding.js"},"./plugin-sdk/provider-auth-login":{"types":"./dist/plugin-sdk/provider-auth-login.d.ts","default":"./dist/plugin-sdk/provider-auth-login.js"},"./plugin-sdk/provider-web-search":{"types":"./dist/plugin-sdk/provider-web-search.d.ts","default":"./dist/plugin-sdk/provider-web-search.js"},"./plugin-sdk/conversation-runtime":{"types":"./dist/plugin-sdk/conversation-runtime.d.ts","default":"./dist/plugin-sdk/conversation-runtime.js"},"./plugin-sdk/github-copilot-token":{"types":"./dist/plugin-sdk/github-copilot-token.d.ts","default":"./dist/plugin-sdk/github-copilot-token.js"},"./plugin-sdk/matrix-runtime-heavy":{"types":"./dist/plugin-sdk/matrix-runtime-heavy.d.ts","default":"./dist/plugin-sdk/matrix-runtime-heavy.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/channel-config-schema":{"types":"./dist/plugin-sdk/channel-config-schema.d.ts","default":"./dist/plugin-sdk/channel-config-schema.js"},"./plugin-sdk/image-generation-core":{"types":"./dist/plugin-sdk/image-generation-core.d.ts","default":"./dist/plugin-sdk/image-generation-core.js"},"./plugin-sdk/matrix-runtime-shared":{"types":"./dist/plugin-sdk/matrix-runtime-shared.d.ts","default":"./dist/plugin-sdk/matrix-runtime-shared.js"},"./plugin-sdk/provider-auth-api-key":{"types":"./dist/plugin-sdk/provider-auth-api-key.d.ts","default":"./dist/plugin-sdk/provider-auth-api-key.js"},"./plugin-sdk/provider-zai-endpoint":{"types":"./dist/plugin-sdk/provider-zai-endpoint.d.ts","default":"./dist/plugin-sdk/provider-zai-endpoint.js"},"./plugin-sdk/setup-adapter-runtime":{"types":"./dist/plugin-sdk/setup-adapter-runtime.d.ts","default":"./dist/plugin-sdk/setup-adapter-runtime.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-reply-pipeline":{"types":"./dist/plugin-sdk/channel-reply-pipeline.d.ts","default":"./dist/plugin-sdk/channel-reply-pipeline.js"},"./plugin-sdk/thread-bindings-runtime":{"types":"./dist/plugin-sdk/thread-bindings-runtime.d.ts","default":"./dist/plugin-sdk/thread-bindings-runtime.js"},"./plugin-sdk/self-hosted-provider-setup":{"types":"./dist/plugin-sdk/self-hosted-provider-setup.d.ts","default":"./dist/plugin-sdk/self-hosted-provider-setup.js"},"./plugin-sdk/media-understanding-runtime":{"types":"./dist/plugin-sdk/media-understanding-runtime.d.ts","default":"./dist/plugin-sdk/media-understanding-runtime.js"}},"gitHead":"cff6dc94e30794a269eb7805b6e636c3634a088c","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:no-conflict-markers && pnpm check:host-env-policy:swift && pnpm check:base-config-schema && pnpm check:bundled-plugin-metadata && pnpm check:bundled-provider-auth-env-vars && pnpm format:check && pnpm tsgo && pnpm plugin-sdk:check-exports && pnpm lint && pnpm lint:tmp:no-random-messaging && pnpm lint:tmp:channel-agnostic-boundaries && pnpm lint:tmp:no-raw-channel-fetch && pnpm lint:agent:ingress-owner && pnpm lint:plugins:no-register-http-handler && pnpm lint:plugins:no-monolithic-plugin-sdk-entry-imports && pnpm lint:plugins:no-extension-src-imports && pnpm lint:plugins:no-extension-test-core-imports && pnpm lint:plugins:no-extension-imports && pnpm lint:plugins:plugin-sdk-subpaths-exported && pnpm lint:extensions:no-src-outside-plugin-sdk && pnpm lint:extensions:no-plugin-sdk-internal && pnpm lint:extensions:no-relative-outside-package && pnpm lint:web-search-provider-boundaries && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"OPENCLAW_LIVE_TEST=1 vitest run --config vitest.live.config.ts","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-i18n-glossary && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity","audit:seams":"node scripts/audit-seams.mjs","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testPlayDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:changed":"pnpm test -- --changed origin/main","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","test:macmini":"OPENCLAW_TEST_PROFILE=macmini node scripts/test-parallel.mjs","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"pnpm config:docs:check && pnpm plugin-sdk:check-exports && pnpm plugin-sdk:api:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && pnpm ui:build && node --import tsx scripts/release-check.ts","test:channels":"OPENCLAW_TEST_SKIP_DEFAULT=1 OPENCLAW_TEST_INCLUDE_CHANNELS=1 node scripts/test-parallel.mjs","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:contracts":"pnpm test:contracts:channels && pnpm test:contracts:plugins","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:extension":"node scripts/test-extension.mjs","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installPlayDebug","config:docs:gen":"node --import tsx scripts/generate-config-doc-baseline.ts --write","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:openwebui && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"OPENCLAW_TEST_SKIP_DEFAULT=1 OPENCLAW_TEST_INCLUDE_EXTENSIONS=1 node scripts/test-parallel.mjs","android:assemble":"cd apps/android && ./gradlew :app:assemblePlayDebug","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","config:docs:check":"node --import tsx scripts/generate-config-doc-baseline.ts --check","config:schema:gen":"node --import tsx scripts/generate-base-config-schema.ts --write","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","test:perf:imports":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","plugin-sdk:api:gen":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:e2e:openshell":"OPENCLAW_E2E_OPENSHELL=1 vitest run --config vitest.e2e.config.ts test/openshell-sandbox.e2e.test.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","config:schema:check":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:startup:memory":"node scripts/check-cli-startup-memory.mjs","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","plugin-sdk:api:check":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check","test:build:singleton":"node scripts/test-built-plugin-singleton.mjs","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","test:coverage:changed":"vitest run --config vitest.unit.config.ts --coverage --changed origin/main","test:docker:openwebui":"bash scripts/e2e/openwebui-docker.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","test:contracts:plugins":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/plugins/contracts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","test:perf:profile:main":"node scripts/run-vitest-profile.mjs main","android:run:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","plugin-sdk:sync-exports":"node scripts/sync-plugin-sdk-exports.mjs","test:contracts:channels":"OPENCLAW_TEST_PROFILE=low pnpm test -- src/channels/plugins/contracts","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","android:test:third-party":"cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:check-i18n-glossary":"node scripts/check-docs-i18n-glossary.mjs","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","plugin-sdk:check-exports":"node scripts/sync-plugin-sdk-exports.mjs --check","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:perf:profile:runner":"node scripts/run-vitest-profile.mjs runner","test:perf:update-timings":"node scripts/test-update-timings.mjs","check:no-conflict-markers":"node scripts/check-no-conflict-markers.mjs","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","release:plugins:npm:check":"node --import tsx scripts/plugin-npm-release-check.ts","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:parallels:npm-update":"bash scripts/e2e/parallels-npm-update-smoke.sh","test:perf:imports:changed":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test -- --changed origin/main","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","android:install:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","android:assemble:third-party":"cd apps/android && ./gradlew :app:assembleThirdPartyDebug","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","check:bundled-plugin-metadata":"node scripts/generate-bundled-plugin-metadata.mjs --check","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","test:gateway:watch-regression":"node scripts/check-gateway-watch-regression.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","test:perf:find-thread-candidates":"node scripts/test-find-thread-candidates.mjs","test:perf:update-memory-hotspots":"node scripts/test-update-memory-hotspots.mjs","lint:plugins:no-extension-imports":"node scripts/check-plugin-extension-import-boundary.mjs","stage:bundled-plugin-runtime-deps":"node scripts/stage-bundled-plugin-runtime-deps.mjs","lint:web-search-provider-boundaries":"node scripts/check-web-search-provider-boundaries.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","check:bundled-provider-auth-env-vars":"node scripts/generate-bundled-provider-auth-env-vars.mjs --check","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","lint:plugins:no-extension-src-imports":"node --import tsx scripts/check-no-extension-src-imports.ts","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","release:openclaw:npm:verify-published":"node --import tsx scripts/openclaw-npm-postpublish-verify.ts","lint:extensions:no-plugin-sdk-internal":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal","lint:extensions:no-src-outside-plugin-sdk":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk","lint:plugins:plugin-sdk-subpaths-exported":"node scripts/check-plugin-sdk-subpath-exports.mjs","lint:extensions:no-relative-outside-package":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package","lint:plugins:no-extension-test-core-imports":"node --import tsx scripts/check-no-extension-test-core-imports.ts","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2bccb063-cd01-4335-8b61-f7859f1dd4e2"}},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.20.0","ajv":"^8.18.0","tar":"7.5.12","zod":"^4.3.6","hono":"4.12.8","jiti":"^2.6.1","long":"^5.3.2","uuid":"^13.0.0","yaml":"^2.8.3","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.4","undici":"^7.24.5","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"21.3.4","ipaddr.js":"^2.3.0","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","@mariozechner/pi-ai":"0.61.1","@mariozechner/pi-tui":"0.61.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1014.0","@agentclientprotocol/sdk":"0.16.1","@anthropic-ai/vertex-sdk":"^0.14.4","@modelcontextprotocol/sdk":"1.27.1","@mariozechner/pi-agent-core":"0.61.1","@mariozechner/pi-coding-agent":"0.61.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^29.0.1","oxfmt":"0.41.0","oxlint":"^1.56.0","tsdown":"0.21.4","vitest":"^4.1.0","@types/ws":"^8.18.1","typescript":"^5.9.3","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.17.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.0","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260322.1"},"peerDependencies":{"node-llama-cpp":"3.18.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.24_1774457832519_0.9545322723545036","host":"s3://npm-registry-packages-npm-production"}},"2026.3.28-beta.1":{"name":"openclaw","version":"2026.3.28-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.28-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"6e2832954ac2584f9fa960db4e326da36bce32ad","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.28-beta.1.tgz","fileCount":19968,"integrity":"sha512-9N0cggT8UlfjqddJ0bCsd3A0PUFzinKUvg1KIVv0KP5EFW3my/mpyR+KSiqAJRCfvlZ0eDubaOHQyCn0nFWVBQ==","signatures":[{"sig":"MEQCIEcVa/6lSunNWiCo1qTwPXEKOskjE8a1iZwaZ3CGzBd2AiBQGyq6gm4oklAFYawcKLW/EMDXkkdkcF3I2gAQ3Uc9ZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openclaw@2026.3.28-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":200205911},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.13","hono":"4.12.9","yauzl":"3.2.1","request":"npm:@cypress/request@3.0.10","file-type":"22.0.0","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","path-to-regexp":"8.4.0","fast-xml-parser":"5.5.7","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@tloncorp/tlon-skill","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"],"ignoredBuiltDependencies":["@discordjs/opus","koffi"]},"type":"module","engines":{"node":">=22.14.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./extension-api":"./dist/extensionAPI.js","./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/xai":{"types":"./dist/plugin-sdk/xai.d.ts","default":"./dist/plugin-sdk/xai.js"},"./plugin-sdk/zod":{"types":"./dist/plugin-sdk/zod.d.ts","default":"./dist/plugin-sdk/zod.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/vllm":{"types":"./dist/plugin-sdk/vllm.d.ts","default":"./dist/plugin-sdk/vllm.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/setup":{"types":"./dist/plugin-sdk/setup.d.ts","default":"./dist/plugin-sdk/setup.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/chutes":{"types":"./dist/plugin-sdk/chutes.d.ts","default":"./dist/plugin-sdk/chutes.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/google":{"types":"./dist/plugin-sdk/google.d.ts","default":"./dist/plugin-sdk/google.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/nvidia":{"types":"./dist/plugin-sdk/nvidia.d.ts","default":"./dist/plugin-sdk/nvidia.js"},"./plugin-sdk/ollama":{"types":"./dist/plugin-sdk/ollama.d.ts","default":"./dist/plugin-sdk/ollama.js"},"./plugin-sdk/openai":{"types":"./dist/plugin-sdk/openai.d.ts","default":"./dist/plugin-sdk/openai.js"},"./plugin-sdk/sglang":{"types":"./dist/plugin-sdk/sglang.d.ts","default":"./dist/plugin-sdk/sglang.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/speech":{"types":"./dist/plugin-sdk/speech.d.ts","default":"./dist/plugin-sdk/speech.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/venice":{"types":"./dist/plugin-sdk/venice.d.ts","default":"./dist/plugin-sdk/venice.js"},"./plugin-sdk/browser":{"types":"./dist/plugin-sdk/browser.d.ts","default":"./dist/plugin-sdk/browser.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/minimax":{"types":"./dist/plugin-sdk/minimax.d.ts","default":"./dist/plugin-sdk/minimax.js"},"./plugin-sdk/mistral":{"types":"./dist/plugin-sdk/mistral.d.ts","default":"./dist/plugin-sdk/mistral.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/qianfan":{"types":"./dist/plugin-sdk/qianfan.d.ts","default":"./dist/plugin-sdk/qianfan.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/sandbox":{"types":"./dist/plugin-sdk/sandbox.d.ts","default":"./dist/plugin-sdk/sandbox.js"},"./plugin-sdk/testing":{"types":"./dist/plugin-sdk/testing.d.ts","default":"./dist/plugin-sdk/testing.js"},"./plugin-sdk/byteplus":{"types":"./dist/plugin-sdk/byteplus.d.ts","default":"./dist/plugin-sdk/byteplus.js"},"./plugin-sdk/deepseek":{"types":"./dist/plugin-sdk/deepseek.d.ts","default":"./dist/plugin-sdk/deepseek.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/kilocode":{"types":"./dist/plugin-sdk/kilocode.d.ts","default":"./dist/plugin-sdk/kilocode.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/moonshot":{"types":"./dist/plugin-sdk/moonshot.d.ts","default":"./dist/plugin-sdk/moonshot.js"},"./plugin-sdk/opencode":{"types":"./dist/plugin-sdk/opencode.d.ts","default":"./dist/plugin-sdk/opencode.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/together":{"types":"./dist/plugin-sdk/together.d.ts","default":"./dist/plugin-sdk/together.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/direct-dm":{"types":"./dist/plugin-sdk/direct-dm.d.ts","default":"./dist/plugin-sdk/direct-dm.js"},"./plugin-sdk/file-lock":{"types":"./dist/plugin-sdk/file-lock.d.ts","default":"./dist/plugin-sdk/file-lock.js"},"./plugin-sdk/line-core":{"types":"./dist/plugin-sdk/line-core.d.ts","default":"./dist/plugin-sdk/line-core.js"},"./plugin-sdk/synthetic":{"types":"./dist/plugin-sdk/synthetic.d.ts","default":"./dist/plugin-sdk/synthetic.js"},"./plugin-sdk/temp-path":{"types":"./dist/plugin-sdk/temp-path.d.ts","default":"./dist/plugin-sdk/temp-path.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/web-media":{"types":"./dist/plugin-sdk/web-media.d.ts","default":"./dist/plugin-sdk/web-media.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/allow-from":{"types":"./dist/plugin-sdk/allow-from.d.ts","default":"./dist/plugin-sdk/allow-from.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/json-store":{"types":"./dist/plugin-sdk/json-store.d.ts","default":"./dist/plugin-sdk/json-store.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/slack-core":{"types":"./dist/plugin-sdk/slack-core.d.ts","default":"./dist/plugin-sdk/slack-core.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/volcengine":{"types":"./dist/plugin-sdk/volcengine.d.ts","default":"./dist/plugin-sdk/volcengine.js"},"./plugin-sdk/zalo-setup":{"types":"./dist/plugin-sdk/zalo-setup.d.ts","default":"./dist/plugin-sdk/zalo-setup.js"},"./plugin-sdk/acp-runtime":{"types":"./dist/plugin-sdk/acp-runtime.d.ts","default":"./dist/plugin-sdk/acp-runtime.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/cli-backend":{"types":"./dist/plugin-sdk/cli-backend.d.ts","default":"./dist/plugin-sdk/cli-backend.js"},"./plugin-sdk/cli-runtime":{"types":"./dist/plugin-sdk/cli-runtime.d.ts","default":"./dist/plugin-sdk/cli-runtime.js"},"./plugin-sdk/huggingface":{"types":"./dist/plugin-sdk/huggingface.d.ts","default":"./dist/plugin-sdk/huggingface.js"},"./plugin-sdk/irc-surface":{"types":"./dist/plugin-sdk/irc-surface.d.ts","default":"./dist/plugin-sdk/irc-surface.js"},"./plugin-sdk/kimi-coding":{"types":"./dist/plugin-sdk/kimi-coding.d.ts","default":"./dist/plugin-sdk/kimi-coding.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/modelstudio":{"types":"./dist/plugin-sdk/modelstudio.d.ts","default":"./dist/plugin-sdk/modelstudio.js"},"./plugin-sdk/opencode-go":{"types":"./dist/plugin-sdk/opencode-go.d.ts","default":"./dist/plugin-sdk/opencode-go.js"},"./plugin-sdk/request-url":{"types":"./dist/plugin-sdk/request-url.d.ts","default":"./dist/plugin-sdk/request-url.js"},"./plugin-sdk/runtime-env":{"types":"./dist/plugin-sdk/runtime-env.d.ts","default":"./dist/plugin-sdk/runtime-env.js"},"./plugin-sdk/setup-tools":{"types":"./dist/plugin-sdk/setup-tools.d.ts","default":"./dist/plugin-sdk/setup-tools.js"},"./plugin-sdk/speech-core":{"types":"./dist/plugin-sdk/speech-core.d.ts","default":"./dist/plugin-sdk/speech-core.js"},"./plugin-sdk/state-paths":{"types":"./dist/plugin-sdk/state-paths.d.ts","default":"./dist/plugin-sdk/state-paths.js"},"./plugin-sdk/account-core":{"types":"./dist/plugin-sdk/account-core.d.ts","default":"./dist/plugin-sdk/account-core.js"},"./plugin-sdk/command-auth":{"types":"./dist/plugin-sdk/command-auth.d.ts","default":"./dist/plugin-sdk/command-auth.js"},"./plugin-sdk/discord-core":{"types":"./dist/plugin-sdk/discord-core.d.ts","default":"./dist/plugin-sdk/discord-core.js"},"./plugin-sdk/feishu-setup":{"types":"./dist/plugin-sdk/feishu-setup.d.ts","default":"./dist/plugin-sdk/feishu-setup.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/hook-runtime":{"types":"./dist/plugin-sdk/hook-runtime.d.ts","default":"./dist/plugin-sdk/hook-runtime.js"},"./plugin-sdk/host-runtime":{"types":"./dist/plugin-sdk/host-runtime.d.ts","default":"./dist/plugin-sdk/host-runtime.js"},"./plugin-sdk/lazy-runtime":{"types":"./dist/plugin-sdk/lazy-runtime.d.ts","default":"./dist/plugin-sdk/lazy-runtime.js"},"./plugin-sdk/line-runtime":{"types":"./dist/plugin-sdk/line-runtime.d.ts","default":"./dist/plugin-sdk/line-runtime.js"},"./plugin-sdk/line-surface":{"types":"./dist/plugin-sdk/line-surface.d.ts","default":"./dist/plugin-sdk/line-surface.js"},"./plugin-sdk/logging-core":{"types":"./dist/plugin-sdk/logging-core.d.ts","default":"./dist/plugin-sdk/logging-core.js"},"./plugin-sdk/plugin-entry":{"types":"./dist/plugin-sdk/plugin-entry.d.ts","default":"./dist/plugin-sdk/plugin-entry.js"},"./plugin-sdk/secret-input":{"types":"./dist/plugin-sdk/secret-input.d.ts","default":"./dist/plugin-sdk/secret-input.js"},"./plugin-sdk/ssrf-runtime":{"types":"./dist/plugin-sdk/ssrf-runtime.d.ts","default":"./dist/plugin-sdk/ssrf-runtime.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/webhook-path":{"types":"./dist/plugin-sdk/webhook-path.d.ts","default":"./dist/plugin-sdk/webhook-path.js"},"./plugin-sdk/agent-runtime":{"types":"./dist/plugin-sdk/agent-runtime.d.ts","default":"./dist/plugin-sdk/agent-runtime.js"},"./plugin-sdk/boolean-param":{"types":"./dist/plugin-sdk/boolean-param.d.ts","default":"./dist/plugin-sdk/boolean-param.js"},"./plugin-sdk/channel-setup":{"types":"./dist/plugin-sdk/channel-setup.d.ts","default":"./dist/plugin-sdk/channel-setup.js"},"./plugin-sdk/error-runtime":{"types":"./dist/plugin-sdk/error-runtime.d.ts","default":"./dist/plugin-sdk/error-runtime.js"},"./plugin-sdk/fetch-runtime":{"types":"./dist/plugin-sdk/fetch-runtime.d.ts","default":"./dist/plugin-sdk/fetch-runtime.js"},"./plugin-sdk/imessage-core":{"types":"./dist/plugin-sdk/imessage-core.d.ts","default":"./dist/plugin-sdk/imessage-core.js"},"./plugin-sdk/infra-runtime":{"types":"./dist/plugin-sdk/infra-runtime.d.ts","default":"./dist/plugin-sdk/infra-runtime.js"},"./plugin-sdk/matrix-helper":{"types":"./dist/plugin-sdk/matrix-helper.d.ts","default":"./dist/plugin-sdk/matrix-helper.js"},"./plugin-sdk/media-runtime":{"types":"./dist/plugin-sdk/media-runtime.d.ts","default":"./dist/plugin-sdk/media-runtime.js"},"./plugin-sdk/param-readers":{"types":"./dist/plugin-sdk/param-readers.d.ts","default":"./dist/plugin-sdk/param-readers.js"},"./plugin-sdk/provider-auth":{"types":"./dist/plugin-sdk/provider-auth.d.ts","default":"./dist/plugin-sdk/provider-auth.js"},"./plugin-sdk/provider-http":{"types":"./dist/plugin-sdk/provider-http.d.ts","default":"./dist/plugin-sdk/provider-http.js"},"./plugin-sdk/reply-history":{"types":"./dist/plugin-sdk/reply-history.d.ts","default":"./dist/plugin-sdk/reply-history.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/reply-runtime":{"types":"./dist/plugin-sdk/reply-runtime.d.ts","default":"./dist/plugin-sdk/reply-runtime.js"},"./plugin-sdk/retry-runtime":{"types":"./dist/plugin-sdk/retry-runtime.d.ts","default":"./dist/plugin-sdk/retry-runtime.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/setup-runtime":{"types":"./dist/plugin-sdk/setup-runtime.d.ts","default":"./dist/plugin-sdk/setup-runtime.js"},"./plugin-sdk/slack-account":{"types":"./dist/plugin-sdk/slack-account.d.ts","default":"./dist/plugin-sdk/slack-account.js"},"./plugin-sdk/slack-surface":{"types":"./dist/plugin-sdk/slack-surface.d.ts","default":"./dist/plugin-sdk/slack-surface.js"},"./plugin-sdk/slack-targets":{"types":"./dist/plugin-sdk/slack-targets.d.ts","default":"./dist/plugin-sdk/slack-targets.js"},"./plugin-sdk/telegram-core":{"types":"./dist/plugin-sdk/telegram-core.d.ts","default":"./dist/plugin-sdk/telegram-core.js"},"./plugin-sdk/whatsapp-core":{"types":"./dist/plugin-sdk/whatsapp-core.d.ts","default":"./dist/plugin-sdk/whatsapp-core.js"},"./plugin-sdk/windows-spawn":{"types":"./dist/plugin-sdk/windows-spawn.d.ts","default":"./dist/plugin-sdk/windows-spawn.js"},"./plugin-sdk/amazon-bedrock":{"types":"./dist/plugin-sdk/amazon-bedrock.d.ts","default":"./dist/plugin-sdk/amazon-bedrock.js"},"./plugin-sdk/channel-policy":{"types":"./dist/plugin-sdk/channel-policy.d.ts","default":"./dist/plugin-sdk/channel-policy.js"},"./plugin-sdk/channel-status":{"types":"./dist/plugin-sdk/channel-status.d.ts","default":"./dist/plugin-sdk/channel-status.js"},"./plugin-sdk/config-runtime":{"types":"./dist/plugin-sdk/config-runtime.d.ts","default":"./dist/plugin-sdk/config-runtime.js"},"./plugin-sdk/matrix-surface":{"types":"./dist/plugin-sdk/matrix-surface.d.ts","default":"./dist/plugin-sdk/matrix-surface.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/ollama-surface":{"types":"./dist/plugin-sdk/ollama-surface.d.ts","default":"./dist/plugin-sdk/ollama-surface.js"},"./plugin-sdk/plugin-runtime":{"types":"./dist/plugin-sdk/plugin-runtime.d.ts","default":"./dist/plugin-sdk/plugin-runtime.js"},"./plugin-sdk/provider-entry":{"types":"./dist/plugin-sdk/provider-entry.d.ts","default":"./dist/plugin-sdk/provider-entry.js"},"./plugin-sdk/provider-setup":{"types":"./dist/plugin-sdk/provider-setup.d.ts","default":"./dist/plugin-sdk/provider-setup.js"},"./plugin-sdk/provider-tools":{"types":"./dist/plugin-sdk/provider-tools.d.ts","default":"./dist/plugin-sdk/provider-tools.js"},"./plugin-sdk/provider-usage":{"types":"./dist/plugin-sdk/provider-usage.d.ts","default":"./dist/plugin-sdk/provider-usage.js"},"./plugin-sdk/signal-account":{"types":"./dist/plugin-sdk/signal-account.d.ts","default":"./dist/plugin-sdk/signal-account.js"},"./plugin-sdk/signal-surface":{"types":"./dist/plugin-sdk/signal-surface.d.ts","default":"./dist/plugin-sdk/signal-surface.js"},"./plugin-sdk/speech-runtime":{"types":"./dist/plugin-sdk/speech-runtime.d.ts","default":"./dist/plugin-sdk/speech-runtime.js"},"./plugin-sdk/status-helpers":{"types":"./dist/plugin-sdk/status-helpers.d.ts","default":"./dist/plugin-sdk/status-helpers.js"},"./plugin-sdk/account-helpers":{"types":"./dist/plugin-sdk/account-helpers.d.ts","default":"./dist/plugin-sdk/account-helpers.js"},"./plugin-sdk/browser-runtime":{"types":"./dist/plugin-sdk/browser-runtime.d.ts","default":"./dist/plugin-sdk/browser-runtime.js"},"./plugin-sdk/browser-support":{"types":"./dist/plugin-sdk/browser-support.d.ts","default":"./dist/plugin-sdk/browser-support.js"},"./plugin-sdk/channel-actions":{"types":"./dist/plugin-sdk/channel-actions.d.ts","default":"./dist/plugin-sdk/channel-actions.js"},"./plugin-sdk/channel-inbound":{"types":"./dist/plugin-sdk/channel-inbound.d.ts","default":"./dist/plugin-sdk/channel-inbound.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.js"},"./plugin-sdk/channel-runtime":{"types":"./dist/plugin-sdk/channel-runtime.d.ts","default":"./dist/plugin-sdk/channel-runtime.js"},"./plugin-sdk/channel-targets":{"types":"./dist/plugin-sdk/channel-targets.d.ts","default":"./dist/plugin-sdk/channel-targets.js"},"./plugin-sdk/discord-account":{"types":"./dist/plugin-sdk/discord-account.d.ts","default":"./dist/plugin-sdk/discord-account.js"},"./plugin-sdk/discord-surface":{"types":"./dist/plugin-sdk/discord-surface.d.ts","default":"./dist/plugin-sdk/discord-surface.js"},"./plugin-sdk/gateway-runtime":{"types":"./dist/plugin-sdk/gateway-runtime.d.ts","default":"./dist/plugin-sdk/gateway-runtime.js"},"./plugin-sdk/imessage-policy":{"types":"./dist/plugin-sdk/imessage-policy.d.ts","default":"./dist/plugin-sdk/imessage-policy.js"},"./plugin-sdk/process-runtime":{"types":"./dist/plugin-sdk/process-runtime.d.ts","default":"./dist/plugin-sdk/process-runtime.js"},"./plugin-sdk/provider-google":{"types":"./dist/plugin-sdk/provider-google.d.ts","default":"./dist/plugin-sdk/provider-google.js"},"./plugin-sdk/provider-models":{"types":"./dist/plugin-sdk/provider-models.d.ts","default":"./dist/plugin-sdk/provider-models.js"},"./plugin-sdk/provider-stream":{"types":"./dist/plugin-sdk/provider-stream.d.ts","default":"./dist/plugin-sdk/provider-stream.js"},"./plugin-sdk/webhook-ingress":{"types":"./dist/plugin-sdk/webhook-ingress.d.ts","default":"./dist/plugin-sdk/webhook-ingress.js"},"./plugin-sdk/whatsapp-shared":{"types":"./dist/plugin-sdk/whatsapp-shared.d.ts","default":"./dist/plugin-sdk/whatsapp-shared.js"},"./plugin-sdk/anthropic-vertex":{"types":"./dist/plugin-sdk/anthropic-vertex.d.ts","default":"./dist/plugin-sdk/anthropic-vertex.js"},"./plugin-sdk/approval-runtime":{"types":"./dist/plugin-sdk/approval-runtime.d.ts","default":"./dist/plugin-sdk/approval-runtime.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/device-bootstrap":{"types":"./dist/plugin-sdk/device-bootstrap.d.ts","default":"./dist/plugin-sdk/device-bootstrap.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/discord-timeouts":{"types":"./dist/plugin-sdk/discord-timeouts.d.ts","default":"./dist/plugin-sdk/discord-timeouts.js"},"./plugin-sdk/extension-shared":{"types":"./dist/plugin-sdk/extension-shared.d.ts","default":"./dist/plugin-sdk/extension-shared.js"},"./plugin-sdk/global-singleton":{"types":"./dist/plugin-sdk/global-singleton.d.ts","default":"./dist/plugin-sdk/global-singleton.js"},"./plugin-sdk/image-generation":{"types":"./dist/plugin-sdk/image-generation.d.ts","default":"./dist/plugin-sdk/image-generation.js"},"./plugin-sdk/imessage-runtime":{"types":"./dist/plugin-sdk/imessage-runtime.d.ts","default":"./dist/plugin-sdk/imessage-runtime.js"},"./plugin-sdk/imessage-targets":{"types":"./dist/plugin-sdk/imessage-targets.d.ts","default":"./dist/plugin-sdk/imessage-targets.js"},"./plugin-sdk/outbound-runtime":{"types":"./dist/plugin-sdk/outbound-runtime.d.ts","default":"./dist/plugin-sdk/outbound-runtime.js"},"./plugin-sdk/provider-catalog":{"types":"./dist/plugin-sdk/provider-catalog.d.ts","default":"./dist/plugin-sdk/provider-catalog.js"},"./plugin-sdk/provider-onboard":{"types":"./dist/plugin-sdk/provider-onboard.d.ts","default":"./dist/plugin-sdk/provider-onboard.js"},"./plugin-sdk/security-runtime":{"types":"./dist/plugin-sdk/security-runtime.d.ts","default":"./dist/plugin-sdk/security-runtime.js"},"./plugin-sdk/telegram-account":{"types":"./dist/plugin-sdk/telegram-account.d.ts","default":"./dist/plugin-sdk/telegram-account.js"},"./plugin-sdk/telegram-runtime":{"types":"./dist/plugin-sdk/telegram-runtime.d.ts","default":"./dist/plugin-sdk/telegram-runtime.js"},"./plugin-sdk/telegram-surface":{"types":"./dist/plugin-sdk/telegram-surface.d.ts","default":"./dist/plugin-sdk/telegram-surface.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/whatsapp-surface":{"types":"./dist/plugin-sdk/whatsapp-surface.d.ts","default":"./dist/plugin-sdk/whatsapp-surface.js"},"./plugin-sdk/whatsapp-targets":{"types":"./dist/plugin-sdk/whatsapp-targets.d.ts","default":"./dist/plugin-sdk/whatsapp-targets.js"},"./plugin-sdk/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.js"},"./plugin-sdk/directory-runtime":{"types":"./dist/plugin-sdk/directory-runtime.d.ts","default":"./dist/plugin-sdk/directory-runtime.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/mattermost-policy":{"types":"./dist/plugin-sdk/mattermost-policy.d.ts","default":"./dist/plugin-sdk/mattermost-policy.js"},"./plugin-sdk/provider-env-vars":{"types":"./dist/plugin-sdk/provider-env-vars.d.ts","default":"./dist/plugin-sdk/provider-env-vars.js"},"./plugin-sdk/provider-moonshot":{"types":"./dist/plugin-sdk/provider-moonshot.d.ts","default":"./dist/plugin-sdk/provider-moonshot.js"},"./plugin-sdk/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.js"},"./plugin-sdk/bluebubbles-policy":{"types":"./dist/plugin-sdk/bluebubbles-policy.d.ts","default":"./dist/plugin-sdk/bluebubbles-policy.js"},"./plugin-sdk/collection-runtime":{"types":"./dist/plugin-sdk/collection-runtime.d.ts","default":"./dist/plugin-sdk/collection-runtime.js"},"./plugin-sdk/diagnostic-runtime":{"types":"./dist/plugin-sdk/diagnostic-runtime.d.ts","default":"./dist/plugin-sdk/diagnostic-runtime.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/discord-session-key":{"types":"./dist/plugin-sdk/discord-session-key.d.ts","default":"./dist/plugin-sdk/discord-session-key.js"},"./plugin-sdk/feishu-conversation":{"types":"./dist/plugin-sdk/feishu-conversation.d.ts","default":"./dist/plugin-sdk/feishu-conversation.js"},"./plugin-sdk/interactive-runtime":{"types":"./dist/plugin-sdk/interactive-runtime.d.ts","default":"./dist/plugin-sdk/interactive-runtime.js"},"./plugin-sdk/media-understanding":{"types":"./dist/plugin-sdk/media-understanding.d.ts","default":"./dist/plugin-sdk/media-understanding.js"},"./plugin-sdk/provider-auth-login":{"types":"./dist/plugin-sdk/provider-auth-login.d.ts","default":"./dist/plugin-sdk/provider-auth-login.js"},"./plugin-sdk/provider-web-search":{"types":"./dist/plugin-sdk/provider-web-search.d.ts","default":"./dist/plugin-sdk/provider-web-search.js"},"./plugin-sdk/slack-target-parser":{"types":"./dist/plugin-sdk/slack-target-parser.d.ts","default":"./dist/plugin-sdk/slack-target-parser.js"},"./plugin-sdk/telegram-allow-from":{"types":"./dist/plugin-sdk/telegram-allow-from.d.ts","default":"./dist/plugin-sdk/telegram-allow-from.js"},"./plugin-sdk/conversation-runtime":{"types":"./dist/plugin-sdk/conversation-runtime.d.ts","default":"./dist/plugin-sdk/conversation-runtime.js"},"./plugin-sdk/github-copilot-login":{"types":"./dist/plugin-sdk/github-copilot-login.d.ts","default":"./dist/plugin-sdk/github-copilot-login.js"},"./plugin-sdk/github-copilot-token":{"types":"./dist/plugin-sdk/github-copilot-token.d.ts","default":"./dist/plugin-sdk/github-copilot-token.js"},"./plugin-sdk/matrix-runtime-heavy":{"types":"./dist/plugin-sdk/matrix-runtime-heavy.d.ts","default":"./dist/plugin-sdk/matrix-runtime-heavy.js"},"./plugin-sdk/provider-auth-result":{"types":"./dist/plugin-sdk/provider-auth-result.d.ts","default":"./dist/plugin-sdk/provider-auth-result.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/channel-config-schema":{"types":"./dist/plugin-sdk/channel-config-schema.d.ts","default":"./dist/plugin-sdk/channel-config-schema.js"},"./plugin-sdk/channel-config-writes":{"types":"./dist/plugin-sdk/channel-config-writes.d.ts","default":"./dist/plugin-sdk/channel-config-writes.js"},"./plugin-sdk/cloudflare-ai-gateway":{"types":"./dist/plugin-sdk/cloudflare-ai-gateway.d.ts","default":"./dist/plugin-sdk/cloudflare-ai-gateway.js"},"./plugin-sdk/image-generation-core":{"types":"./dist/plugin-sdk/image-generation-core.d.ts","default":"./dist/plugin-sdk/image-generation-core.js"},"./plugin-sdk/matrix-runtime-shared":{"types":"./dist/plugin-sdk/matrix-runtime-shared.d.ts","default":"./dist/plugin-sdk/matrix-runtime-shared.js"},"./plugin-sdk/provider-auth-api-key":{"types":"./dist/plugin-sdk/provider-auth-api-key.d.ts","default":"./dist/plugin-sdk/provider-auth-api-key.js"},"./plugin-sdk/provider-auth-runtime":{"types":"./dist/plugin-sdk/provider-auth-runtime.d.ts","default":"./dist/plugin-sdk/provider-auth-runtime.js"},"./plugin-sdk/provider-model-shared":{"types":"./dist/plugin-sdk/provider-model-shared.d.ts","default":"./dist/plugin-sdk/provider-model-shared.js"},"./plugin-sdk/provider-zai-endpoint":{"types":"./dist/plugin-sdk/provider-zai-endpoint.d.ts","default":"./dist/plugin-sdk/provider-zai-endpoint.js"},"./plugin-sdk/setup-adapter-runtime":{"types":"./dist/plugin-sdk/setup-adapter-runtime.d.ts","default":"./dist/plugin-sdk/setup-adapter-runtime.js"},"./plugin-sdk/slack-runtime-surface":{"types":"./dist/plugin-sdk/slack-runtime-surface.d.ts","default":"./dist/plugin-sdk/slack-runtime-surface.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-reply-pipeline":{"types":"./dist/plugin-sdk/channel-reply-pipeline.d.ts","default":"./dist/plugin-sdk/channel-reply-pipeline.js"},"./plugin-sdk/matrix-runtime-surface":{"types":"./dist/plugin-sdk/matrix-runtime-surface.d.ts","default":"./dist/plugin-sdk/matrix-runtime-surface.js"},"./plugin-sdk/matrix-thread-bindings":{"types":"./dist/plugin-sdk/matrix-thread-bindings.d.ts","default":"./dist/plugin-sdk/matrix-thread-bindings.js"},"./plugin-sdk/memory-core-host-query":{"types":"./dist/plugin-sdk/memory-core-host-query.d.ts","default":"./dist/plugin-sdk/memory-core-host-query.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/whatsapp-auth-presence":{"types":"./dist/plugin-sdk/whatsapp-auth-presence.d.ts","default":"./dist/plugin-sdk/whatsapp-auth-presence.js"},"./plugin-sdk/agent-config-primitives":{"types":"./dist/plugin-sdk/agent-config-primitives.d.ts","default":"./dist/plugin-sdk/agent-config-primitives.js"},"./plugin-sdk/discord-runtime-surface":{"types":"./dist/plugin-sdk/discord-runtime-surface.d.ts","default":"./dist/plugin-sdk/discord-runtime-surface.js"},"./plugin-sdk/discord-thread-bindings":{"types":"./dist/plugin-sdk/discord-thread-bindings.d.ts","default":"./dist/plugin-sdk/discord-thread-bindings.js"},"./plugin-sdk/memory-core-host-secret":{"types":"./dist/plugin-sdk/memory-core-host-secret.d.ts","default":"./dist/plugin-sdk/memory-core-host-secret.js"},"./plugin-sdk/memory-core-host-status":{"types":"./dist/plugin-sdk/memory-core-host-status.d.ts","default":"./dist/plugin-sdk/memory-core-host-status.js"},"./plugin-sdk/modelstudio-definitions":{"types":"./dist/plugin-sdk/modelstudio-definitions.d.ts","default":"./dist/plugin-sdk/modelstudio-definitions.js"},"./plugin-sdk/provider-catalog-shared":{"types":"./dist/plugin-sdk/provider-catalog-shared.d.ts","default":"./dist/plugin-sdk/provider-catalog-shared.js"},"./plugin-sdk/thread-bindings-runtime":{"types":"./dist/plugin-sdk/thread-bindings-runtime.d.ts","default":"./dist/plugin-sdk/thread-bindings-runtime.js"},"./plugin-sdk/telegram-runtime-surface":{"types":"./dist/plugin-sdk/telegram-runtime-surface.d.ts","default":"./dist/plugin-sdk/telegram-runtime-surface.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/memory-core-engine-runtime":{"types":"./dist/plugin-sdk/memory-core-engine-runtime.d.ts","default":"./dist/plugin-sdk/memory-core-engine-runtime.js"},"./plugin-sdk/self-hosted-provider-setup":{"types":"./dist/plugin-sdk/self-hosted-provider-setup.d.ts","default":"./dist/plugin-sdk/self-hosted-provider-setup.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/memory-core-host-engine-qmd":{"types":"./dist/plugin-sdk/memory-core-host-engine-qmd.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-qmd.js"},"./plugin-sdk/memory-core-host-multimodal":{"types":"./dist/plugin-sdk/memory-core-host-multimodal.d.ts","default":"./dist/plugin-sdk/memory-core-host-multimodal.js"},"./plugin-sdk/memory-core-host-runtime-cli":{"types":"./dist/plugin-sdk/memory-core-host-runtime-cli.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-cli.js"},"./plugin-sdk/memory-core-host-runtime-core":{"types":"./dist/plugin-sdk/memory-core-host-runtime-core.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-core.js"},"./plugin-sdk/memory-core-host-runtime-files":{"types":"./dist/plugin-sdk/memory-core-host-runtime-files.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-files.js"},"./plugin-sdk/memory-core-host-engine-storage":{"types":"./dist/plugin-sdk/memory-core-host-engine-storage.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-storage.js"},"./plugin-sdk/memory-core-host-engine-embeddings":{"types":"./dist/plugin-sdk/memory-core-host-engine-embeddings.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-embeddings.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"}},"gitHead":"664680318eea98172c7d25405c20f5e3eadfd0e2","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:no-conflict-markers && pnpm check:host-env-policy:swift && pnpm tsgo && pnpm lint && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","test:max":"node scripts/test-parallel.mjs --profile max","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"node scripts/test-live.mjs","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-i18n-glossary && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity","audit:seams":"node scripts/audit-seams.mjs","canon:check":"node scripts/canon.mjs check","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:serial":"node scripts/test-parallel.mjs --profile serial","ts-topology":"node --import tsx scripts/ts-topology.ts","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testPlayDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:changed":"pnpm test -- --changed origin/main","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","canon:enforce":"node scripts/canon.mjs enforce --json","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"pnpm check:base-config-schema && pnpm check:bundled-channel-config-metadata && pnpm check:bundled-plugin-metadata && pnpm check:bundled-provider-auth-env-vars && pnpm config:docs:check && pnpm plugin-sdk:check-exports && pnpm plugin-sdk:facades:check && pnpm plugin-sdk:api:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && pnpm ui:build && node --import tsx scripts/release-check.ts","test:channels":"node scripts/test-parallel.mjs --surface channels","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:contracts":"pnpm test:contracts:channels && pnpm test:contracts:plugins","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:extension":"node scripts/test-extension.mjs","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installPlayDebug","config:docs:gen":"node --import tsx scripts/generate-config-doc-baseline.ts --write","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:openwebui && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:mcp-channels && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"node scripts/test-parallel.mjs --surface extensions","android:assemble":"cd apps/android && ./gradlew :app:assemblePlayDebug","canon:check:json":"node scripts/canon.mjs check --json","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","plugin-sdk:usage":"node --import tsx scripts/analyze-plugin-sdk-usage.ts","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:changed:max":"node scripts/test-parallel.mjs --profile max --changed origin/main","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","config:docs:check":"node --import tsx scripts/generate-config-doc-baseline.ts --check","config:schema:gen":"node --import tsx scripts/generate-base-config-schema.ts --write","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","test:perf:imports":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","plugin-sdk:api:gen":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:e2e:openshell":"OPENCLAW_E2E_OPENSHELL=1 vitest run --config vitest.e2e.config.ts test/openshell-sandbox.e2e.test.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","config:channels:gen":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --write","config:schema:check":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:startup:memory":"node scripts/check-cli-startup-memory.mjs","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","plugin-sdk:api:check":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check","test:build:singleton":"node scripts/test-built-plugin-singleton.mjs","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","config:channels:check":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check","test:coverage:changed":"vitest run --config vitest.unit.config.ts --coverage --changed origin/main","test:docker:openwebui":"bash scripts/e2e/openwebui-docker.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","plugin-sdk:facades:gen":"node scripts/generate-plugin-sdk-facades.mjs --write","test:contracts:plugins":"OPENCLAW_TEST_PROFILE=serial pnpm exec vitest run --config vitest.contracts.config.ts src/plugins/contracts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","test:perf:profile:main":"node scripts/run-vitest-profile.mjs main","android:run:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","plugin-sdk:sync-exports":"node scripts/sync-plugin-sdk-exports.mjs","test:contracts:channels":"OPENCLAW_TEST_PROFILE=serial pnpm exec vitest run --config vitest.contracts.config.ts src/channels/plugins/contracts","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","android:test:third-party":"cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:check-i18n-glossary":"node scripts/check-docs-i18n-glossary.mjs","docs:check-links:anchors":"node scripts/docs-link-audit.mjs --anchors","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","plugin-sdk:check-exports":"node scripts/sync-plugin-sdk-exports.mjs --check","plugin-sdk:facades:check":"node scripts/generate-plugin-sdk-facades.mjs --check","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:mcp-channels":"bash scripts/e2e/mcp-channels-docker.sh","test:perf:profile:runner":"node scripts/run-vitest-profile.mjs runner","test:perf:update-timings":"node scripts/test-update-timings.mjs","check:no-conflict-markers":"node scripts/check-no-conflict-markers.mjs","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","release:plugins:npm:check":"node --import tsx scripts/plugin-npm-release-check.ts","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:docker:live-acp-bind":"bash scripts/test-live-acp-bind-docker.sh","test:parallels:npm-update":"bash scripts/e2e/parallels-npm-update-smoke.sh","test:perf:imports:changed":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test -- --changed origin/main","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","android:install:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","android:assemble:third-party":"cd apps/android && ./gradlew :app:assembleThirdPartyDebug","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","test:docker:live-cli-backend":"bash scripts/test-live-cli-backend-docker.sh","check:bundled-plugin-metadata":"node scripts/generate-bundled-plugin-metadata.mjs --check","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","test:gateway:watch-regression":"node scripts/check-gateway-watch-regression.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","test:perf:update-memory-hotspots":"node scripts/test-update-memory-hotspots.mjs","lint:plugins:no-extension-imports":"node scripts/check-plugin-extension-import-boundary.mjs","stage:bundled-plugin-runtime-deps":"node scripts/stage-bundled-plugin-runtime-deps.mjs","lint:web-search-provider-boundaries":"node scripts/check-web-search-provider-boundaries.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","test:perf:update-timings:extensions":"node scripts/test-update-timings.mjs --config vitest.extensions.config.ts","check:bundled-provider-auth-env-vars":"node scripts/generate-bundled-provider-auth-env-vars.mjs --check","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","check:bundled-channel-config-metadata":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check","lint:plugins:no-extension-src-imports":"node --import tsx scripts/check-no-extension-src-imports.ts","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","release:openclaw:npm:verify-published":"node --import tsx scripts/openclaw-npm-postpublish-verify.ts","lint:extensions:no-plugin-sdk-internal":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal","lint:extensions:no-src-outside-plugin-sdk":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk","lint:plugins:plugin-sdk-subpaths-exported":"node scripts/check-plugin-sdk-subpath-exports.mjs","lint:extensions:no-relative-outside-package":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package","lint:plugins:no-extension-test-core-imports":"node --import tsx scripts/check-no-extension-test-core-imports.ts","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2bccb063-cd01-4335-8b61-f7859f1dd4e2"}},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.20.0","ajv":"^8.18.0","tar":"7.5.13","zod":"^4.3.6","hono":"4.12.9","jiti":"^2.6.1","long":"^5.3.2","uuid":"^13.0.0","yaml":"^2.8.3","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.4","undici":"^7.24.6","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"22.0.0","ipaddr.js":"^2.3.0","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","matrix-js-sdk":"41.2.0","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","@mariozechner/pi-ai":"0.63.1","@mariozechner/pi-tui":"0.63.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1018.0","@agentclientprotocol/sdk":"0.17.0","@anthropic-ai/vertex-sdk":"^0.14.4","@modelcontextprotocol/sdk":"1.28.0","@mariozechner/pi-agent-core":"0.63.1","@mariozechner/pi-coding-agent":"0.63.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^29.0.1","oxfmt":"0.42.0","oxlint":"^1.57.0","tsdown":"0.21.5","vitest":"^4.1.2","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.17.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.2","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260326.1"},"peerDependencies":{"node-llama-cpp":"3.18.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.28-beta.1_1774739008131_0.14267309584023358","host":"s3://npm-registry-packages-npm-production"}},"2026.3.28":{"name":"openclaw","version":"2026.3.28","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.28","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"fc3d6af136e06e147b514669deccc9198e0eb62f","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.28.tgz","fileCount":19887,"integrity":"sha512-n7ZS3zdimB2H/GfnylyG8xWXVrmlsSPHZdNEIEPe54Sl5XYuYD5yxilGYV0DWowgtsM5ysFEQMMMArdC/O77Jw==","signatures":[{"sig":"MEUCIFstQmOKOmrdhsTjMYBhT2D0HMunf6ioWYVVRITlVpQZAiEAnKEinHqzr8tmlMs15sczC2TZDUqqdtAw+RancIRNOXY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openclaw@2026.3.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":200169370},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.13","hono":"4.12.9","yauzl":"3.2.1","request":"npm:@cypress/request@3.0.10","file-type":"22.0.0","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","path-to-regexp":"8.4.0","fast-xml-parser":"5.5.7","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.48","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"minimumReleaseAge":2880,"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@tloncorp/tlon-skill","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"],"ignoredBuiltDependencies":["@discordjs/opus","koffi"]},"type":"module","engines":{"node":">=22.14.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./extension-api":"./dist/extensionAPI.js","./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/xai":{"types":"./dist/plugin-sdk/xai.d.ts","default":"./dist/plugin-sdk/xai.js"},"./plugin-sdk/zod":{"types":"./dist/plugin-sdk/zod.d.ts","default":"./dist/plugin-sdk/zod.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/vllm":{"types":"./dist/plugin-sdk/vllm.d.ts","default":"./dist/plugin-sdk/vllm.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/setup":{"types":"./dist/plugin-sdk/setup.d.ts","default":"./dist/plugin-sdk/setup.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/chutes":{"types":"./dist/plugin-sdk/chutes.d.ts","default":"./dist/plugin-sdk/chutes.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/google":{"types":"./dist/plugin-sdk/google.d.ts","default":"./dist/plugin-sdk/google.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/nvidia":{"types":"./dist/plugin-sdk/nvidia.d.ts","default":"./dist/plugin-sdk/nvidia.js"},"./plugin-sdk/ollama":{"types":"./dist/plugin-sdk/ollama.d.ts","default":"./dist/plugin-sdk/ollama.js"},"./plugin-sdk/openai":{"types":"./dist/plugin-sdk/openai.d.ts","default":"./dist/plugin-sdk/openai.js"},"./plugin-sdk/sglang":{"types":"./dist/plugin-sdk/sglang.d.ts","default":"./dist/plugin-sdk/sglang.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/speech":{"types":"./dist/plugin-sdk/speech.d.ts","default":"./dist/plugin-sdk/speech.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/venice":{"types":"./dist/plugin-sdk/venice.d.ts","default":"./dist/plugin-sdk/venice.js"},"./plugin-sdk/browser":{"types":"./dist/plugin-sdk/browser.d.ts","default":"./dist/plugin-sdk/browser.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/minimax":{"types":"./dist/plugin-sdk/minimax.d.ts","default":"./dist/plugin-sdk/minimax.js"},"./plugin-sdk/mistral":{"types":"./dist/plugin-sdk/mistral.d.ts","default":"./dist/plugin-sdk/mistral.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/qianfan":{"types":"./dist/plugin-sdk/qianfan.d.ts","default":"./dist/plugin-sdk/qianfan.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/sandbox":{"types":"./dist/plugin-sdk/sandbox.d.ts","default":"./dist/plugin-sdk/sandbox.js"},"./plugin-sdk/testing":{"types":"./dist/plugin-sdk/testing.d.ts","default":"./dist/plugin-sdk/testing.js"},"./plugin-sdk/byteplus":{"types":"./dist/plugin-sdk/byteplus.d.ts","default":"./dist/plugin-sdk/byteplus.js"},"./plugin-sdk/deepseek":{"types":"./dist/plugin-sdk/deepseek.d.ts","default":"./dist/plugin-sdk/deepseek.js"},"./plugin-sdk/imessage":{"types":"./dist/plugin-sdk/imessage.d.ts","default":"./dist/plugin-sdk/imessage.js"},"./plugin-sdk/kilocode":{"types":"./dist/plugin-sdk/kilocode.d.ts","default":"./dist/plugin-sdk/kilocode.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/moonshot":{"types":"./dist/plugin-sdk/moonshot.d.ts","default":"./dist/plugin-sdk/moonshot.js"},"./plugin-sdk/opencode":{"types":"./dist/plugin-sdk/opencode.d.ts","default":"./dist/plugin-sdk/opencode.js"},"./plugin-sdk/telegram":{"types":"./dist/plugin-sdk/telegram.d.ts","default":"./dist/plugin-sdk/telegram.js"},"./plugin-sdk/together":{"types":"./dist/plugin-sdk/together.d.ts","default":"./dist/plugin-sdk/together.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/direct-dm":{"types":"./dist/plugin-sdk/direct-dm.d.ts","default":"./dist/plugin-sdk/direct-dm.js"},"./plugin-sdk/file-lock":{"types":"./dist/plugin-sdk/file-lock.d.ts","default":"./dist/plugin-sdk/file-lock.js"},"./plugin-sdk/line-core":{"types":"./dist/plugin-sdk/line-core.d.ts","default":"./dist/plugin-sdk/line-core.js"},"./plugin-sdk/synthetic":{"types":"./dist/plugin-sdk/synthetic.d.ts","default":"./dist/plugin-sdk/synthetic.js"},"./plugin-sdk/temp-path":{"types":"./dist/plugin-sdk/temp-path.d.ts","default":"./dist/plugin-sdk/temp-path.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/web-media":{"types":"./dist/plugin-sdk/web-media.d.ts","default":"./dist/plugin-sdk/web-media.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/allow-from":{"types":"./dist/plugin-sdk/allow-from.d.ts","default":"./dist/plugin-sdk/allow-from.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/json-store":{"types":"./dist/plugin-sdk/json-store.d.ts","default":"./dist/plugin-sdk/json-store.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/slack-core":{"types":"./dist/plugin-sdk/slack-core.d.ts","default":"./dist/plugin-sdk/slack-core.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/volcengine":{"types":"./dist/plugin-sdk/volcengine.d.ts","default":"./dist/plugin-sdk/volcengine.js"},"./plugin-sdk/zalo-setup":{"types":"./dist/plugin-sdk/zalo-setup.d.ts","default":"./dist/plugin-sdk/zalo-setup.js"},"./plugin-sdk/acp-runtime":{"types":"./dist/plugin-sdk/acp-runtime.d.ts","default":"./dist/plugin-sdk/acp-runtime.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/cli-backend":{"types":"./dist/plugin-sdk/cli-backend.d.ts","default":"./dist/plugin-sdk/cli-backend.js"},"./plugin-sdk/cli-runtime":{"types":"./dist/plugin-sdk/cli-runtime.d.ts","default":"./dist/plugin-sdk/cli-runtime.js"},"./plugin-sdk/huggingface":{"types":"./dist/plugin-sdk/huggingface.d.ts","default":"./dist/plugin-sdk/huggingface.js"},"./plugin-sdk/irc-surface":{"types":"./dist/plugin-sdk/irc-surface.d.ts","default":"./dist/plugin-sdk/irc-surface.js"},"./plugin-sdk/kimi-coding":{"types":"./dist/plugin-sdk/kimi-coding.d.ts","default":"./dist/plugin-sdk/kimi-coding.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/modelstudio":{"types":"./dist/plugin-sdk/modelstudio.d.ts","default":"./dist/plugin-sdk/modelstudio.js"},"./plugin-sdk/opencode-go":{"types":"./dist/plugin-sdk/opencode-go.d.ts","default":"./dist/plugin-sdk/opencode-go.js"},"./plugin-sdk/request-url":{"types":"./dist/plugin-sdk/request-url.d.ts","default":"./dist/plugin-sdk/request-url.js"},"./plugin-sdk/runtime-env":{"types":"./dist/plugin-sdk/runtime-env.d.ts","default":"./dist/plugin-sdk/runtime-env.js"},"./plugin-sdk/setup-tools":{"types":"./dist/plugin-sdk/setup-tools.d.ts","default":"./dist/plugin-sdk/setup-tools.js"},"./plugin-sdk/speech-core":{"types":"./dist/plugin-sdk/speech-core.d.ts","default":"./dist/plugin-sdk/speech-core.js"},"./plugin-sdk/state-paths":{"types":"./dist/plugin-sdk/state-paths.d.ts","default":"./dist/plugin-sdk/state-paths.js"},"./plugin-sdk/account-core":{"types":"./dist/plugin-sdk/account-core.d.ts","default":"./dist/plugin-sdk/account-core.js"},"./plugin-sdk/command-auth":{"types":"./dist/plugin-sdk/command-auth.d.ts","default":"./dist/plugin-sdk/command-auth.js"},"./plugin-sdk/discord-core":{"types":"./dist/plugin-sdk/discord-core.d.ts","default":"./dist/plugin-sdk/discord-core.js"},"./plugin-sdk/feishu-setup":{"types":"./dist/plugin-sdk/feishu-setup.d.ts","default":"./dist/plugin-sdk/feishu-setup.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/hook-runtime":{"types":"./dist/plugin-sdk/hook-runtime.d.ts","default":"./dist/plugin-sdk/hook-runtime.js"},"./plugin-sdk/host-runtime":{"types":"./dist/plugin-sdk/host-runtime.d.ts","default":"./dist/plugin-sdk/host-runtime.js"},"./plugin-sdk/lazy-runtime":{"types":"./dist/plugin-sdk/lazy-runtime.d.ts","default":"./dist/plugin-sdk/lazy-runtime.js"},"./plugin-sdk/line-runtime":{"types":"./dist/plugin-sdk/line-runtime.d.ts","default":"./dist/plugin-sdk/line-runtime.js"},"./plugin-sdk/line-surface":{"types":"./dist/plugin-sdk/line-surface.d.ts","default":"./dist/plugin-sdk/line-surface.js"},"./plugin-sdk/logging-core":{"types":"./dist/plugin-sdk/logging-core.d.ts","default":"./dist/plugin-sdk/logging-core.js"},"./plugin-sdk/plugin-entry":{"types":"./dist/plugin-sdk/plugin-entry.d.ts","default":"./dist/plugin-sdk/plugin-entry.js"},"./plugin-sdk/secret-input":{"types":"./dist/plugin-sdk/secret-input.d.ts","default":"./dist/plugin-sdk/secret-input.js"},"./plugin-sdk/ssrf-runtime":{"types":"./dist/plugin-sdk/ssrf-runtime.d.ts","default":"./dist/plugin-sdk/ssrf-runtime.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/webhook-path":{"types":"./dist/plugin-sdk/webhook-path.d.ts","default":"./dist/plugin-sdk/webhook-path.js"},"./plugin-sdk/agent-runtime":{"types":"./dist/plugin-sdk/agent-runtime.d.ts","default":"./dist/plugin-sdk/agent-runtime.js"},"./plugin-sdk/boolean-param":{"types":"./dist/plugin-sdk/boolean-param.d.ts","default":"./dist/plugin-sdk/boolean-param.js"},"./plugin-sdk/channel-setup":{"types":"./dist/plugin-sdk/channel-setup.d.ts","default":"./dist/plugin-sdk/channel-setup.js"},"./plugin-sdk/error-runtime":{"types":"./dist/plugin-sdk/error-runtime.d.ts","default":"./dist/plugin-sdk/error-runtime.js"},"./plugin-sdk/fetch-runtime":{"types":"./dist/plugin-sdk/fetch-runtime.d.ts","default":"./dist/plugin-sdk/fetch-runtime.js"},"./plugin-sdk/imessage-core":{"types":"./dist/plugin-sdk/imessage-core.d.ts","default":"./dist/plugin-sdk/imessage-core.js"},"./plugin-sdk/infra-runtime":{"types":"./dist/plugin-sdk/infra-runtime.d.ts","default":"./dist/plugin-sdk/infra-runtime.js"},"./plugin-sdk/matrix-helper":{"types":"./dist/plugin-sdk/matrix-helper.d.ts","default":"./dist/plugin-sdk/matrix-helper.js"},"./plugin-sdk/media-runtime":{"types":"./dist/plugin-sdk/media-runtime.d.ts","default":"./dist/plugin-sdk/media-runtime.js"},"./plugin-sdk/param-readers":{"types":"./dist/plugin-sdk/param-readers.d.ts","default":"./dist/plugin-sdk/param-readers.js"},"./plugin-sdk/provider-auth":{"types":"./dist/plugin-sdk/provider-auth.d.ts","default":"./dist/plugin-sdk/provider-auth.js"},"./plugin-sdk/provider-http":{"types":"./dist/plugin-sdk/provider-http.d.ts","default":"./dist/plugin-sdk/provider-http.js"},"./plugin-sdk/reply-history":{"types":"./dist/plugin-sdk/reply-history.d.ts","default":"./dist/plugin-sdk/reply-history.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/reply-runtime":{"types":"./dist/plugin-sdk/reply-runtime.d.ts","default":"./dist/plugin-sdk/reply-runtime.js"},"./plugin-sdk/retry-runtime":{"types":"./dist/plugin-sdk/retry-runtime.d.ts","default":"./dist/plugin-sdk/retry-runtime.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/setup-runtime":{"types":"./dist/plugin-sdk/setup-runtime.d.ts","default":"./dist/plugin-sdk/setup-runtime.js"},"./plugin-sdk/slack-account":{"types":"./dist/plugin-sdk/slack-account.d.ts","default":"./dist/plugin-sdk/slack-account.js"},"./plugin-sdk/slack-surface":{"types":"./dist/plugin-sdk/slack-surface.d.ts","default":"./dist/plugin-sdk/slack-surface.js"},"./plugin-sdk/slack-targets":{"types":"./dist/plugin-sdk/slack-targets.d.ts","default":"./dist/plugin-sdk/slack-targets.js"},"./plugin-sdk/telegram-core":{"types":"./dist/plugin-sdk/telegram-core.d.ts","default":"./dist/plugin-sdk/telegram-core.js"},"./plugin-sdk/whatsapp-core":{"types":"./dist/plugin-sdk/whatsapp-core.d.ts","default":"./dist/plugin-sdk/whatsapp-core.js"},"./plugin-sdk/windows-spawn":{"types":"./dist/plugin-sdk/windows-spawn.d.ts","default":"./dist/plugin-sdk/windows-spawn.js"},"./plugin-sdk/amazon-bedrock":{"types":"./dist/plugin-sdk/amazon-bedrock.d.ts","default":"./dist/plugin-sdk/amazon-bedrock.js"},"./plugin-sdk/channel-policy":{"types":"./dist/plugin-sdk/channel-policy.d.ts","default":"./dist/plugin-sdk/channel-policy.js"},"./plugin-sdk/channel-status":{"types":"./dist/plugin-sdk/channel-status.d.ts","default":"./dist/plugin-sdk/channel-status.js"},"./plugin-sdk/config-runtime":{"types":"./dist/plugin-sdk/config-runtime.d.ts","default":"./dist/plugin-sdk/config-runtime.js"},"./plugin-sdk/matrix-surface":{"types":"./dist/plugin-sdk/matrix-surface.d.ts","default":"./dist/plugin-sdk/matrix-surface.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/ollama-surface":{"types":"./dist/plugin-sdk/ollama-surface.d.ts","default":"./dist/plugin-sdk/ollama-surface.js"},"./plugin-sdk/plugin-runtime":{"types":"./dist/plugin-sdk/plugin-runtime.d.ts","default":"./dist/plugin-sdk/plugin-runtime.js"},"./plugin-sdk/provider-entry":{"types":"./dist/plugin-sdk/provider-entry.d.ts","default":"./dist/plugin-sdk/provider-entry.js"},"./plugin-sdk/provider-setup":{"types":"./dist/plugin-sdk/provider-setup.d.ts","default":"./dist/plugin-sdk/provider-setup.js"},"./plugin-sdk/provider-tools":{"types":"./dist/plugin-sdk/provider-tools.d.ts","default":"./dist/plugin-sdk/provider-tools.js"},"./plugin-sdk/provider-usage":{"types":"./dist/plugin-sdk/provider-usage.d.ts","default":"./dist/plugin-sdk/provider-usage.js"},"./plugin-sdk/signal-account":{"types":"./dist/plugin-sdk/signal-account.d.ts","default":"./dist/plugin-sdk/signal-account.js"},"./plugin-sdk/signal-surface":{"types":"./dist/plugin-sdk/signal-surface.d.ts","default":"./dist/plugin-sdk/signal-surface.js"},"./plugin-sdk/speech-runtime":{"types":"./dist/plugin-sdk/speech-runtime.d.ts","default":"./dist/plugin-sdk/speech-runtime.js"},"./plugin-sdk/status-helpers":{"types":"./dist/plugin-sdk/status-helpers.d.ts","default":"./dist/plugin-sdk/status-helpers.js"},"./plugin-sdk/account-helpers":{"types":"./dist/plugin-sdk/account-helpers.d.ts","default":"./dist/plugin-sdk/account-helpers.js"},"./plugin-sdk/browser-runtime":{"types":"./dist/plugin-sdk/browser-runtime.d.ts","default":"./dist/plugin-sdk/browser-runtime.js"},"./plugin-sdk/browser-support":{"types":"./dist/plugin-sdk/browser-support.d.ts","default":"./dist/plugin-sdk/browser-support.js"},"./plugin-sdk/channel-actions":{"types":"./dist/plugin-sdk/channel-actions.d.ts","default":"./dist/plugin-sdk/channel-actions.js"},"./plugin-sdk/channel-inbound":{"types":"./dist/plugin-sdk/channel-inbound.d.ts","default":"./dist/plugin-sdk/channel-inbound.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.js"},"./plugin-sdk/channel-runtime":{"types":"./dist/plugin-sdk/channel-runtime.d.ts","default":"./dist/plugin-sdk/channel-runtime.js"},"./plugin-sdk/channel-targets":{"types":"./dist/plugin-sdk/channel-targets.d.ts","default":"./dist/plugin-sdk/channel-targets.js"},"./plugin-sdk/discord-account":{"types":"./dist/plugin-sdk/discord-account.d.ts","default":"./dist/plugin-sdk/discord-account.js"},"./plugin-sdk/discord-surface":{"types":"./dist/plugin-sdk/discord-surface.d.ts","default":"./dist/plugin-sdk/discord-surface.js"},"./plugin-sdk/gateway-runtime":{"types":"./dist/plugin-sdk/gateway-runtime.d.ts","default":"./dist/plugin-sdk/gateway-runtime.js"},"./plugin-sdk/imessage-policy":{"types":"./dist/plugin-sdk/imessage-policy.d.ts","default":"./dist/plugin-sdk/imessage-policy.js"},"./plugin-sdk/process-runtime":{"types":"./dist/plugin-sdk/process-runtime.d.ts","default":"./dist/plugin-sdk/process-runtime.js"},"./plugin-sdk/provider-google":{"types":"./dist/plugin-sdk/provider-google.d.ts","default":"./dist/plugin-sdk/provider-google.js"},"./plugin-sdk/provider-models":{"types":"./dist/plugin-sdk/provider-models.d.ts","default":"./dist/plugin-sdk/provider-models.js"},"./plugin-sdk/provider-stream":{"types":"./dist/plugin-sdk/provider-stream.d.ts","default":"./dist/plugin-sdk/provider-stream.js"},"./plugin-sdk/webhook-ingress":{"types":"./dist/plugin-sdk/webhook-ingress.d.ts","default":"./dist/plugin-sdk/webhook-ingress.js"},"./plugin-sdk/whatsapp-shared":{"types":"./dist/plugin-sdk/whatsapp-shared.d.ts","default":"./dist/plugin-sdk/whatsapp-shared.js"},"./plugin-sdk/anthropic-vertex":{"types":"./dist/plugin-sdk/anthropic-vertex.d.ts","default":"./dist/plugin-sdk/anthropic-vertex.js"},"./plugin-sdk/approval-runtime":{"types":"./dist/plugin-sdk/approval-runtime.d.ts","default":"./dist/plugin-sdk/approval-runtime.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/device-bootstrap":{"types":"./dist/plugin-sdk/device-bootstrap.d.ts","default":"./dist/plugin-sdk/device-bootstrap.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/discord-timeouts":{"types":"./dist/plugin-sdk/discord-timeouts.d.ts","default":"./dist/plugin-sdk/discord-timeouts.js"},"./plugin-sdk/extension-shared":{"types":"./dist/plugin-sdk/extension-shared.d.ts","default":"./dist/plugin-sdk/extension-shared.js"},"./plugin-sdk/global-singleton":{"types":"./dist/plugin-sdk/global-singleton.d.ts","default":"./dist/plugin-sdk/global-singleton.js"},"./plugin-sdk/image-generation":{"types":"./dist/plugin-sdk/image-generation.d.ts","default":"./dist/plugin-sdk/image-generation.js"},"./plugin-sdk/imessage-runtime":{"types":"./dist/plugin-sdk/imessage-runtime.d.ts","default":"./dist/plugin-sdk/imessage-runtime.js"},"./plugin-sdk/imessage-targets":{"types":"./dist/plugin-sdk/imessage-targets.d.ts","default":"./dist/plugin-sdk/imessage-targets.js"},"./plugin-sdk/outbound-runtime":{"types":"./dist/plugin-sdk/outbound-runtime.d.ts","default":"./dist/plugin-sdk/outbound-runtime.js"},"./plugin-sdk/provider-catalog":{"types":"./dist/plugin-sdk/provider-catalog.d.ts","default":"./dist/plugin-sdk/provider-catalog.js"},"./plugin-sdk/provider-onboard":{"types":"./dist/plugin-sdk/provider-onboard.d.ts","default":"./dist/plugin-sdk/provider-onboard.js"},"./plugin-sdk/security-runtime":{"types":"./dist/plugin-sdk/security-runtime.d.ts","default":"./dist/plugin-sdk/security-runtime.js"},"./plugin-sdk/telegram-account":{"types":"./dist/plugin-sdk/telegram-account.d.ts","default":"./dist/plugin-sdk/telegram-account.js"},"./plugin-sdk/telegram-runtime":{"types":"./dist/plugin-sdk/telegram-runtime.d.ts","default":"./dist/plugin-sdk/telegram-runtime.js"},"./plugin-sdk/telegram-surface":{"types":"./dist/plugin-sdk/telegram-surface.d.ts","default":"./dist/plugin-sdk/telegram-surface.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/whatsapp-surface":{"types":"./dist/plugin-sdk/whatsapp-surface.d.ts","default":"./dist/plugin-sdk/whatsapp-surface.js"},"./plugin-sdk/whatsapp-targets":{"types":"./dist/plugin-sdk/whatsapp-targets.d.ts","default":"./dist/plugin-sdk/whatsapp-targets.js"},"./plugin-sdk/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.js"},"./plugin-sdk/directory-runtime":{"types":"./dist/plugin-sdk/directory-runtime.d.ts","default":"./dist/plugin-sdk/directory-runtime.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/mattermost-policy":{"types":"./dist/plugin-sdk/mattermost-policy.d.ts","default":"./dist/plugin-sdk/mattermost-policy.js"},"./plugin-sdk/provider-env-vars":{"types":"./dist/plugin-sdk/provider-env-vars.d.ts","default":"./dist/plugin-sdk/provider-env-vars.js"},"./plugin-sdk/provider-moonshot":{"types":"./dist/plugin-sdk/provider-moonshot.d.ts","default":"./dist/plugin-sdk/provider-moonshot.js"},"./plugin-sdk/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.js"},"./plugin-sdk/bluebubbles-policy":{"types":"./dist/plugin-sdk/bluebubbles-policy.d.ts","default":"./dist/plugin-sdk/bluebubbles-policy.js"},"./plugin-sdk/collection-runtime":{"types":"./dist/plugin-sdk/collection-runtime.d.ts","default":"./dist/plugin-sdk/collection-runtime.js"},"./plugin-sdk/diagnostic-runtime":{"types":"./dist/plugin-sdk/diagnostic-runtime.d.ts","default":"./dist/plugin-sdk/diagnostic-runtime.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/discord-session-key":{"types":"./dist/plugin-sdk/discord-session-key.d.ts","default":"./dist/plugin-sdk/discord-session-key.js"},"./plugin-sdk/feishu-conversation":{"types":"./dist/plugin-sdk/feishu-conversation.d.ts","default":"./dist/plugin-sdk/feishu-conversation.js"},"./plugin-sdk/interactive-runtime":{"types":"./dist/plugin-sdk/interactive-runtime.d.ts","default":"./dist/plugin-sdk/interactive-runtime.js"},"./plugin-sdk/media-understanding":{"types":"./dist/plugin-sdk/media-understanding.d.ts","default":"./dist/plugin-sdk/media-understanding.js"},"./plugin-sdk/provider-auth-login":{"types":"./dist/plugin-sdk/provider-auth-login.d.ts","default":"./dist/plugin-sdk/provider-auth-login.js"},"./plugin-sdk/provider-web-search":{"types":"./dist/plugin-sdk/provider-web-search.d.ts","default":"./dist/plugin-sdk/provider-web-search.js"},"./plugin-sdk/slack-target-parser":{"types":"./dist/plugin-sdk/slack-target-parser.d.ts","default":"./dist/plugin-sdk/slack-target-parser.js"},"./plugin-sdk/telegram-allow-from":{"types":"./dist/plugin-sdk/telegram-allow-from.d.ts","default":"./dist/plugin-sdk/telegram-allow-from.js"},"./plugin-sdk/conversation-runtime":{"types":"./dist/plugin-sdk/conversation-runtime.d.ts","default":"./dist/plugin-sdk/conversation-runtime.js"},"./plugin-sdk/github-copilot-login":{"types":"./dist/plugin-sdk/github-copilot-login.d.ts","default":"./dist/plugin-sdk/github-copilot-login.js"},"./plugin-sdk/github-copilot-token":{"types":"./dist/plugin-sdk/github-copilot-token.d.ts","default":"./dist/plugin-sdk/github-copilot-token.js"},"./plugin-sdk/matrix-runtime-heavy":{"types":"./dist/plugin-sdk/matrix-runtime-heavy.d.ts","default":"./dist/plugin-sdk/matrix-runtime-heavy.js"},"./plugin-sdk/provider-auth-result":{"types":"./dist/plugin-sdk/provider-auth-result.d.ts","default":"./dist/plugin-sdk/provider-auth-result.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/channel-config-schema":{"types":"./dist/plugin-sdk/channel-config-schema.d.ts","default":"./dist/plugin-sdk/channel-config-schema.js"},"./plugin-sdk/channel-config-writes":{"types":"./dist/plugin-sdk/channel-config-writes.d.ts","default":"./dist/plugin-sdk/channel-config-writes.js"},"./plugin-sdk/cloudflare-ai-gateway":{"types":"./dist/plugin-sdk/cloudflare-ai-gateway.d.ts","default":"./dist/plugin-sdk/cloudflare-ai-gateway.js"},"./plugin-sdk/image-generation-core":{"types":"./dist/plugin-sdk/image-generation-core.d.ts","default":"./dist/plugin-sdk/image-generation-core.js"},"./plugin-sdk/matrix-runtime-shared":{"types":"./dist/plugin-sdk/matrix-runtime-shared.d.ts","default":"./dist/plugin-sdk/matrix-runtime-shared.js"},"./plugin-sdk/provider-auth-api-key":{"types":"./dist/plugin-sdk/provider-auth-api-key.d.ts","default":"./dist/plugin-sdk/provider-auth-api-key.js"},"./plugin-sdk/provider-auth-runtime":{"types":"./dist/plugin-sdk/provider-auth-runtime.d.ts","default":"./dist/plugin-sdk/provider-auth-runtime.js"},"./plugin-sdk/provider-model-shared":{"types":"./dist/plugin-sdk/provider-model-shared.d.ts","default":"./dist/plugin-sdk/provider-model-shared.js"},"./plugin-sdk/provider-zai-endpoint":{"types":"./dist/plugin-sdk/provider-zai-endpoint.d.ts","default":"./dist/plugin-sdk/provider-zai-endpoint.js"},"./plugin-sdk/setup-adapter-runtime":{"types":"./dist/plugin-sdk/setup-adapter-runtime.d.ts","default":"./dist/plugin-sdk/setup-adapter-runtime.js"},"./plugin-sdk/slack-runtime-surface":{"types":"./dist/plugin-sdk/slack-runtime-surface.d.ts","default":"./dist/plugin-sdk/slack-runtime-surface.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-reply-pipeline":{"types":"./dist/plugin-sdk/channel-reply-pipeline.d.ts","default":"./dist/plugin-sdk/channel-reply-pipeline.js"},"./plugin-sdk/matrix-runtime-surface":{"types":"./dist/plugin-sdk/matrix-runtime-surface.d.ts","default":"./dist/plugin-sdk/matrix-runtime-surface.js"},"./plugin-sdk/matrix-thread-bindings":{"types":"./dist/plugin-sdk/matrix-thread-bindings.d.ts","default":"./dist/plugin-sdk/matrix-thread-bindings.js"},"./plugin-sdk/memory-core-host-query":{"types":"./dist/plugin-sdk/memory-core-host-query.d.ts","default":"./dist/plugin-sdk/memory-core-host-query.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/whatsapp-auth-presence":{"types":"./dist/plugin-sdk/whatsapp-auth-presence.d.ts","default":"./dist/plugin-sdk/whatsapp-auth-presence.js"},"./plugin-sdk/agent-config-primitives":{"types":"./dist/plugin-sdk/agent-config-primitives.d.ts","default":"./dist/plugin-sdk/agent-config-primitives.js"},"./plugin-sdk/discord-runtime-surface":{"types":"./dist/plugin-sdk/discord-runtime-surface.d.ts","default":"./dist/plugin-sdk/discord-runtime-surface.js"},"./plugin-sdk/discord-thread-bindings":{"types":"./dist/plugin-sdk/discord-thread-bindings.d.ts","default":"./dist/plugin-sdk/discord-thread-bindings.js"},"./plugin-sdk/memory-core-host-secret":{"types":"./dist/plugin-sdk/memory-core-host-secret.d.ts","default":"./dist/plugin-sdk/memory-core-host-secret.js"},"./plugin-sdk/memory-core-host-status":{"types":"./dist/plugin-sdk/memory-core-host-status.d.ts","default":"./dist/plugin-sdk/memory-core-host-status.js"},"./plugin-sdk/modelstudio-definitions":{"types":"./dist/plugin-sdk/modelstudio-definitions.d.ts","default":"./dist/plugin-sdk/modelstudio-definitions.js"},"./plugin-sdk/provider-catalog-shared":{"types":"./dist/plugin-sdk/provider-catalog-shared.d.ts","default":"./dist/plugin-sdk/provider-catalog-shared.js"},"./plugin-sdk/thread-bindings-runtime":{"types":"./dist/plugin-sdk/thread-bindings-runtime.d.ts","default":"./dist/plugin-sdk/thread-bindings-runtime.js"},"./plugin-sdk/telegram-runtime-surface":{"types":"./dist/plugin-sdk/telegram-runtime-surface.d.ts","default":"./dist/plugin-sdk/telegram-runtime-surface.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/memory-core-engine-runtime":{"types":"./dist/plugin-sdk/memory-core-engine-runtime.d.ts","default":"./dist/plugin-sdk/memory-core-engine-runtime.js"},"./plugin-sdk/self-hosted-provider-setup":{"types":"./dist/plugin-sdk/self-hosted-provider-setup.d.ts","default":"./dist/plugin-sdk/self-hosted-provider-setup.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/memory-core-host-engine-qmd":{"types":"./dist/plugin-sdk/memory-core-host-engine-qmd.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-qmd.js"},"./plugin-sdk/memory-core-host-multimodal":{"types":"./dist/plugin-sdk/memory-core-host-multimodal.d.ts","default":"./dist/plugin-sdk/memory-core-host-multimodal.js"},"./plugin-sdk/memory-core-host-runtime-cli":{"types":"./dist/plugin-sdk/memory-core-host-runtime-cli.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-cli.js"},"./plugin-sdk/memory-core-host-runtime-core":{"types":"./dist/plugin-sdk/memory-core-host-runtime-core.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-core.js"},"./plugin-sdk/memory-core-host-runtime-files":{"types":"./dist/plugin-sdk/memory-core-host-runtime-files.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-files.js"},"./plugin-sdk/memory-core-host-engine-storage":{"types":"./dist/plugin-sdk/memory-core-host-engine-storage.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-storage.js"},"./plugin-sdk/memory-core-host-engine-embeddings":{"types":"./dist/plugin-sdk/memory-core-host-engine-embeddings.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-embeddings.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"}},"gitHead":"f9b1079283a8ee25a7cee77c8f8225d5c813bc30","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"oxlint --type-aware","test":"node scripts/test-parallel.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:no-conflict-markers && pnpm check:host-env-policy:swift && pnpm tsgo && pnpm lint && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"oxlint --type-aware --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","test:max":"node scripts/test-parallel.mjs --profile max","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"node scripts/test-live.mjs","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-i18n-glossary && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity","audit:seams":"node scripts/audit-seams.mjs","canon:check":"node scripts/canon.mjs check","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","test:serial":"node scripts/test-parallel.mjs --profile serial","ts-topology":"node --import tsx scripts/ts-topology.ts","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testPlayDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:changed":"pnpm test -- --changed origin/main","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","canon:enforce":"node scripts/canon.mjs enforce --json","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"pnpm check:base-config-schema && pnpm check:bundled-channel-config-metadata && pnpm check:bundled-plugin-metadata && pnpm check:bundled-provider-auth-env-vars && pnpm config:docs:check && pnpm plugin-sdk:check-exports && pnpm plugin-sdk:facades:check && pnpm plugin-sdk:api:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && pnpm ui:build && node --import tsx scripts/release-check.ts","test:channels":"node scripts/test-parallel.mjs --surface channels","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:contracts":"pnpm test:contracts:channels && pnpm test:contracts:plugins","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:extension":"node scripts/test-extension.mjs","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installPlayDebug","config:docs:gen":"node --import tsx scripts/generate-config-doc-baseline.ts --write","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:openwebui && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:mcp-channels && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"node scripts/test-parallel.mjs --surface extensions","android:assemble":"cd apps/android && ./gradlew :app:assemblePlayDebug","canon:check:json":"node scripts/canon.mjs check --json","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","plugin-sdk:usage":"node --import tsx scripts/analyze-plugin-sdk-usage.ts","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:changed:max":"node scripts/test-parallel.mjs --profile max --changed origin/main","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","config:docs:check":"node --import tsx scripts/generate-config-doc-baseline.ts --check","config:schema:gen":"node --import tsx scripts/generate-base-config-schema.ts --write","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","test:perf:imports":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","plugin-sdk:api:gen":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:e2e:openshell":"OPENCLAW_E2E_OPENSHELL=1 vitest run --config vitest.e2e.config.ts test/openshell-sandbox.e2e.test.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","config:channels:gen":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --write","config:schema:check":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:startup:memory":"node scripts/check-cli-startup-memory.mjs","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","plugin-sdk:api:check":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check","test:build:singleton":"node scripts/test-built-plugin-singleton.mjs","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","config:channels:check":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check","test:coverage:changed":"vitest run --config vitest.unit.config.ts --coverage --changed origin/main","test:docker:openwebui":"bash scripts/e2e/openwebui-docker.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","plugin-sdk:facades:gen":"node scripts/generate-plugin-sdk-facades.mjs --write","test:contracts:plugins":"OPENCLAW_TEST_PROFILE=serial pnpm exec vitest run --config vitest.contracts.config.ts src/plugins/contracts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","test:perf:profile:main":"node scripts/run-vitest-profile.mjs main","android:run:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","plugin-sdk:sync-exports":"node scripts/sync-plugin-sdk-exports.mjs","test:contracts:channels":"OPENCLAW_TEST_PROFILE=serial pnpm exec vitest run --config vitest.contracts.config.ts src/channels/plugins/contracts","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","android:test:third-party":"cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:check-i18n-glossary":"node scripts/check-docs-i18n-glossary.mjs","docs:check-links:anchors":"node scripts/docs-link-audit.mjs --anchors","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","plugin-sdk:check-exports":"node scripts/sync-plugin-sdk-exports.mjs --check","plugin-sdk:facades:check":"node scripts/generate-plugin-sdk-facades.mjs --check","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:mcp-channels":"bash scripts/e2e/mcp-channels-docker.sh","test:perf:profile:runner":"node scripts/run-vitest-profile.mjs runner","test:perf:update-timings":"node scripts/test-update-timings.mjs","check:no-conflict-markers":"node scripts/check-no-conflict-markers.mjs","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","release:plugins:npm:check":"node --import tsx scripts/plugin-npm-release-check.ts","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:docker:live-acp-bind":"bash scripts/test-live-acp-bind-docker.sh","test:parallels:npm-update":"bash scripts/e2e/parallels-npm-update-smoke.sh","test:perf:imports:changed":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test -- --changed origin/main","test:voicecall:closedloop":"vitest run extensions/voice-call/src/manager.test.ts extensions/voice-call/src/media-stream.test.ts src/plugins/voice-call.plugin.test.ts --maxWorkers=1","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","android:install:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","android:assemble:third-party":"cd apps/android && ./gradlew :app:assembleThirdPartyDebug","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","test:docker:live-cli-backend":"bash scripts/test-live-cli-backend-docker.sh","check:bundled-plugin-metadata":"node scripts/generate-bundled-plugin-metadata.mjs --check","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","test:gateway:watch-regression":"node scripts/check-gateway-watch-regression.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","test:perf:update-memory-hotspots":"node scripts/test-update-memory-hotspots.mjs","lint:plugins:no-extension-imports":"node scripts/check-plugin-extension-import-boundary.mjs","stage:bundled-plugin-runtime-deps":"node scripts/stage-bundled-plugin-runtime-deps.mjs","lint:web-search-provider-boundaries":"node scripts/check-web-search-provider-boundaries.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","test:perf:update-timings:extensions":"node scripts/test-update-timings.mjs --config vitest.extensions.config.ts","check:bundled-provider-auth-env-vars":"node scripts/generate-bundled-provider-auth-env-vars.mjs --check","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","check:bundled-channel-config-metadata":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check","lint:plugins:no-extension-src-imports":"node --import tsx scripts/check-no-extension-src-imports.ts","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","release:openclaw:npm:verify-published":"node --import tsx scripts/openclaw-npm-postpublish-verify.ts","lint:extensions:no-plugin-sdk-internal":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal","lint:extensions:no-src-outside-plugin-sdk":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk","lint:plugins:plugin-sdk-subpaths-exported":"node scripts/check-plugin-sdk-subpath-exports.mjs","lint:extensions:no-relative-outside-package":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package","lint:plugins:no-extension-test-core-imports":"node --import tsx scripts/check-no-extension-test-core-imports.ts","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2bccb063-cd01-4335-8b61-f7859f1dd4e2"}},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.20.0","ajv":"^8.18.0","tar":"7.5.13","zod":"^4.3.6","hono":"4.12.9","jiti":"^2.6.1","long":"^5.3.2","uuid":"^13.0.0","yaml":"^2.8.3","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.4","undici":"^7.24.6","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"22.0.0","ipaddr.js":"^2.3.0","pdfjs-dist":"^5.5.207","sqlite-vec":"0.1.7","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","matrix-js-sdk":"41.2.0","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@homebridge/ciao":"^1.3.5","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.48","@mariozechner/pi-ai":"0.63.1","@mariozechner/pi-tui":"0.63.1","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"^3.1019.0","@agentclientprotocol/sdk":"0.17.0","@anthropic-ai/vertex-sdk":"^0.14.4","@modelcontextprotocol/sdk":"1.28.0","@mariozechner/pi-agent-core":"0.63.1","@mariozechner/pi-coding-agent":"0.63.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^29.0.1","oxfmt":"0.42.0","oxlint":"^1.57.0","tsdown":"0.21.7","vitest":"^4.1.2","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.17.4","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.2","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260326.1"},"peerDependencies":{"node-llama-cpp":"3.18.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.28_1774749776174_0.02918816526620427","host":"s3://npm-registry-packages-npm-production"}},"2026.3.31-beta.1":{"name":"openclaw","version":"2026.3.31-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.31-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"fb63fd529276ef606aa93d0ea5b6cf752ffcd684","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.31-beta.1.tgz","fileCount":21126,"integrity":"sha512-U02ovdllsvYQwZAd1cfrndL7m3NoEGzMn5eXhQV0/HHc75AFyidNNVXuruwUTkMUXVw+T2/H0F4wrecOaarQ1Q==","signatures":[{"sig":"MEQCIHJLJL29MSy2p7cx1TRw/uqJRrW8aV/DoJ9xTnx3fJ9VAiASzeiXX14FszXj8jnQaQ3chHpkOQciHtEkX1GZR6TrdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openclaw@2026.3.31-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":182647600},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.13","hono":"4.12.9","axios":"1.13.6","yauzl":"3.2.1","request":"npm:@cypress/request@3.0.10","file-type":"22.0.0","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","path-to-regexp":"8.4.0","fast-xml-parser":"5.5.7","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.49","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@tloncorp/tlon-skill","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"],"ignoredBuiltDependencies":["@discordjs/opus","koffi"]},"type":"module","engines":{"node":">=22.14.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./extension-api":"./dist/extensionAPI.js","./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/xai":{"types":"./dist/plugin-sdk/xai.d.ts","default":"./dist/plugin-sdk/xai.js"},"./plugin-sdk/zod":{"types":"./dist/plugin-sdk/zod.d.ts","default":"./dist/plugin-sdk/zod.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/vllm":{"types":"./dist/plugin-sdk/vllm.d.ts","default":"./dist/plugin-sdk/vllm.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/setup":{"types":"./dist/plugin-sdk/setup.d.ts","default":"./dist/plugin-sdk/setup.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/chutes":{"types":"./dist/plugin-sdk/chutes.d.ts","default":"./dist/plugin-sdk/chutes.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/google":{"types":"./dist/plugin-sdk/google.d.ts","default":"./dist/plugin-sdk/google.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/nvidia":{"types":"./dist/plugin-sdk/nvidia.d.ts","default":"./dist/plugin-sdk/nvidia.js"},"./plugin-sdk/ollama":{"types":"./dist/plugin-sdk/ollama.d.ts","default":"./dist/plugin-sdk/ollama.js"},"./plugin-sdk/openai":{"types":"./dist/plugin-sdk/openai.d.ts","default":"./dist/plugin-sdk/openai.js"},"./plugin-sdk/sglang":{"types":"./dist/plugin-sdk/sglang.d.ts","default":"./dist/plugin-sdk/sglang.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/speech":{"types":"./dist/plugin-sdk/speech.d.ts","default":"./dist/plugin-sdk/speech.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/venice":{"types":"./dist/plugin-sdk/venice.d.ts","default":"./dist/plugin-sdk/venice.js"},"./plugin-sdk/browser":{"types":"./dist/plugin-sdk/browser.d.ts","default":"./dist/plugin-sdk/browser.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/minimax":{"types":"./dist/plugin-sdk/minimax.d.ts","default":"./dist/plugin-sdk/minimax.js"},"./plugin-sdk/mistral":{"types":"./dist/plugin-sdk/mistral.d.ts","default":"./dist/plugin-sdk/mistral.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/qianfan":{"types":"./dist/plugin-sdk/qianfan.d.ts","default":"./dist/plugin-sdk/qianfan.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/sandbox":{"types":"./dist/plugin-sdk/sandbox.d.ts","default":"./dist/plugin-sdk/sandbox.js"},"./plugin-sdk/testing":{"types":"./dist/plugin-sdk/testing.d.ts","default":"./dist/plugin-sdk/testing.js"},"./plugin-sdk/byteplus":{"types":"./dist/plugin-sdk/byteplus.d.ts","default":"./dist/plugin-sdk/byteplus.js"},"./plugin-sdk/deepseek":{"types":"./dist/plugin-sdk/deepseek.d.ts","default":"./dist/plugin-sdk/deepseek.js"},"./plugin-sdk/kilocode":{"types":"./dist/plugin-sdk/kilocode.d.ts","default":"./dist/plugin-sdk/kilocode.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/moonshot":{"types":"./dist/plugin-sdk/moonshot.d.ts","default":"./dist/plugin-sdk/moonshot.js"},"./plugin-sdk/opencode":{"types":"./dist/plugin-sdk/opencode.d.ts","default":"./dist/plugin-sdk/opencode.js"},"./plugin-sdk/together":{"types":"./dist/plugin-sdk/together.d.ts","default":"./dist/plugin-sdk/together.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/direct-dm":{"types":"./dist/plugin-sdk/direct-dm.d.ts","default":"./dist/plugin-sdk/direct-dm.js"},"./plugin-sdk/file-lock":{"types":"./dist/plugin-sdk/file-lock.d.ts","default":"./dist/plugin-sdk/file-lock.js"},"./plugin-sdk/line-core":{"types":"./dist/plugin-sdk/line-core.d.ts","default":"./dist/plugin-sdk/line-core.js"},"./plugin-sdk/synthetic":{"types":"./dist/plugin-sdk/synthetic.d.ts","default":"./dist/plugin-sdk/synthetic.js"},"./plugin-sdk/temp-path":{"types":"./dist/plugin-sdk/temp-path.d.ts","default":"./dist/plugin-sdk/temp-path.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/web-media":{"types":"./dist/plugin-sdk/web-media.d.ts","default":"./dist/plugin-sdk/web-media.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/allow-from":{"types":"./dist/plugin-sdk/allow-from.d.ts","default":"./dist/plugin-sdk/allow-from.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/json-store":{"types":"./dist/plugin-sdk/json-store.d.ts","default":"./dist/plugin-sdk/json-store.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/slack-core":{"types":"./dist/plugin-sdk/slack-core.d.ts","default":"./dist/plugin-sdk/slack-core.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/volcengine":{"types":"./dist/plugin-sdk/volcengine.d.ts","default":"./dist/plugin-sdk/volcengine.js"},"./plugin-sdk/zalo-setup":{"types":"./dist/plugin-sdk/zalo-setup.d.ts","default":"./dist/plugin-sdk/zalo-setup.js"},"./plugin-sdk/acp-runtime":{"types":"./dist/plugin-sdk/acp-runtime.d.ts","default":"./dist/plugin-sdk/acp-runtime.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/cli-backend":{"types":"./dist/plugin-sdk/cli-backend.d.ts","default":"./dist/plugin-sdk/cli-backend.js"},"./plugin-sdk/cli-runtime":{"types":"./dist/plugin-sdk/cli-runtime.d.ts","default":"./dist/plugin-sdk/cli-runtime.js"},"./plugin-sdk/huggingface":{"types":"./dist/plugin-sdk/huggingface.d.ts","default":"./dist/plugin-sdk/huggingface.js"},"./plugin-sdk/irc-surface":{"types":"./dist/plugin-sdk/irc-surface.d.ts","default":"./dist/plugin-sdk/irc-surface.js"},"./plugin-sdk/kimi-coding":{"types":"./dist/plugin-sdk/kimi-coding.d.ts","default":"./dist/plugin-sdk/kimi-coding.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/modelstudio":{"types":"./dist/plugin-sdk/modelstudio.d.ts","default":"./dist/plugin-sdk/modelstudio.js"},"./plugin-sdk/opencode-go":{"types":"./dist/plugin-sdk/opencode-go.d.ts","default":"./dist/plugin-sdk/opencode-go.js"},"./plugin-sdk/request-url":{"types":"./dist/plugin-sdk/request-url.d.ts","default":"./dist/plugin-sdk/request-url.js"},"./plugin-sdk/runtime-env":{"types":"./dist/plugin-sdk/runtime-env.d.ts","default":"./dist/plugin-sdk/runtime-env.js"},"./plugin-sdk/setup-tools":{"types":"./dist/plugin-sdk/setup-tools.d.ts","default":"./dist/plugin-sdk/setup-tools.js"},"./plugin-sdk/speech-core":{"types":"./dist/plugin-sdk/speech-core.d.ts","default":"./dist/plugin-sdk/speech-core.js"},"./plugin-sdk/state-paths":{"types":"./dist/plugin-sdk/state-paths.d.ts","default":"./dist/plugin-sdk/state-paths.js"},"./plugin-sdk/account-core":{"types":"./dist/plugin-sdk/account-core.d.ts","default":"./dist/plugin-sdk/account-core.js"},"./plugin-sdk/command-auth":{"types":"./dist/plugin-sdk/command-auth.d.ts","default":"./dist/plugin-sdk/command-auth.js"},"./plugin-sdk/discord-core":{"types":"./dist/plugin-sdk/discord-core.d.ts","default":"./dist/plugin-sdk/discord-core.js"},"./plugin-sdk/feishu-setup":{"types":"./dist/plugin-sdk/feishu-setup.d.ts","default":"./dist/plugin-sdk/feishu-setup.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/hook-runtime":{"types":"./dist/plugin-sdk/hook-runtime.d.ts","default":"./dist/plugin-sdk/hook-runtime.js"},"./plugin-sdk/host-runtime":{"types":"./dist/plugin-sdk/host-runtime.d.ts","default":"./dist/plugin-sdk/host-runtime.js"},"./plugin-sdk/lazy-runtime":{"types":"./dist/plugin-sdk/lazy-runtime.d.ts","default":"./dist/plugin-sdk/lazy-runtime.js"},"./plugin-sdk/line-runtime":{"types":"./dist/plugin-sdk/line-runtime.d.ts","default":"./dist/plugin-sdk/line-runtime.js"},"./plugin-sdk/line-surface":{"types":"./dist/plugin-sdk/line-surface.d.ts","default":"./dist/plugin-sdk/line-surface.js"},"./plugin-sdk/logging-core":{"types":"./dist/plugin-sdk/logging-core.d.ts","default":"./dist/plugin-sdk/logging-core.js"},"./plugin-sdk/plugin-entry":{"types":"./dist/plugin-sdk/plugin-entry.d.ts","default":"./dist/plugin-sdk/plugin-entry.js"},"./plugin-sdk/secret-input":{"types":"./dist/plugin-sdk/secret-input.d.ts","default":"./dist/plugin-sdk/secret-input.js"},"./plugin-sdk/ssrf-runtime":{"types":"./dist/plugin-sdk/ssrf-runtime.d.ts","default":"./dist/plugin-sdk/ssrf-runtime.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/webhook-path":{"types":"./dist/plugin-sdk/webhook-path.d.ts","default":"./dist/plugin-sdk/webhook-path.js"},"./plugin-sdk/agent-runtime":{"types":"./dist/plugin-sdk/agent-runtime.d.ts","default":"./dist/plugin-sdk/agent-runtime.js"},"./plugin-sdk/boolean-param":{"types":"./dist/plugin-sdk/boolean-param.d.ts","default":"./dist/plugin-sdk/boolean-param.js"},"./plugin-sdk/channel-setup":{"types":"./dist/plugin-sdk/channel-setup.d.ts","default":"./dist/plugin-sdk/channel-setup.js"},"./plugin-sdk/error-runtime":{"types":"./dist/plugin-sdk/error-runtime.d.ts","default":"./dist/plugin-sdk/error-runtime.js"},"./plugin-sdk/fetch-runtime":{"types":"./dist/plugin-sdk/fetch-runtime.d.ts","default":"./dist/plugin-sdk/fetch-runtime.js"},"./plugin-sdk/infra-runtime":{"types":"./dist/plugin-sdk/infra-runtime.d.ts","default":"./dist/plugin-sdk/infra-runtime.js"},"./plugin-sdk/matrix-helper":{"types":"./dist/plugin-sdk/matrix-helper.d.ts","default":"./dist/plugin-sdk/matrix-helper.js"},"./plugin-sdk/media-runtime":{"types":"./dist/plugin-sdk/media-runtime.d.ts","default":"./dist/plugin-sdk/media-runtime.js"},"./plugin-sdk/param-readers":{"types":"./dist/plugin-sdk/param-readers.d.ts","default":"./dist/plugin-sdk/param-readers.js"},"./plugin-sdk/provider-auth":{"types":"./dist/plugin-sdk/provider-auth.d.ts","default":"./dist/plugin-sdk/provider-auth.js"},"./plugin-sdk/provider-http":{"types":"./dist/plugin-sdk/provider-http.d.ts","default":"./dist/plugin-sdk/provider-http.js"},"./plugin-sdk/reply-history":{"types":"./dist/plugin-sdk/reply-history.d.ts","default":"./dist/plugin-sdk/reply-history.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/reply-runtime":{"types":"./dist/plugin-sdk/reply-runtime.d.ts","default":"./dist/plugin-sdk/reply-runtime.js"},"./plugin-sdk/retry-runtime":{"types":"./dist/plugin-sdk/retry-runtime.d.ts","default":"./dist/plugin-sdk/retry-runtime.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/setup-runtime":{"types":"./dist/plugin-sdk/setup-runtime.d.ts","default":"./dist/plugin-sdk/setup-runtime.js"},"./plugin-sdk/slack-account":{"types":"./dist/plugin-sdk/slack-account.d.ts","default":"./dist/plugin-sdk/slack-account.js"},"./plugin-sdk/slack-surface":{"types":"./dist/plugin-sdk/slack-surface.d.ts","default":"./dist/plugin-sdk/slack-surface.js"},"./plugin-sdk/slack-targets":{"types":"./dist/plugin-sdk/slack-targets.d.ts","default":"./dist/plugin-sdk/slack-targets.js"},"./plugin-sdk/telegram-core":{"types":"./dist/plugin-sdk/telegram-core.d.ts","default":"./dist/plugin-sdk/telegram-core.js"},"./plugin-sdk/whatsapp-core":{"types":"./dist/plugin-sdk/whatsapp-core.d.ts","default":"./dist/plugin-sdk/whatsapp-core.js"},"./plugin-sdk/windows-spawn":{"types":"./dist/plugin-sdk/windows-spawn.d.ts","default":"./dist/plugin-sdk/windows-spawn.js"},"./plugin-sdk/amazon-bedrock":{"types":"./dist/plugin-sdk/amazon-bedrock.d.ts","default":"./dist/plugin-sdk/amazon-bedrock.js"},"./plugin-sdk/channel-policy":{"types":"./dist/plugin-sdk/channel-policy.d.ts","default":"./dist/plugin-sdk/channel-policy.js"},"./plugin-sdk/channel-status":{"types":"./dist/plugin-sdk/channel-status.d.ts","default":"./dist/plugin-sdk/channel-status.js"},"./plugin-sdk/config-runtime":{"types":"./dist/plugin-sdk/config-runtime.d.ts","default":"./dist/plugin-sdk/config-runtime.js"},"./plugin-sdk/matrix-surface":{"types":"./dist/plugin-sdk/matrix-surface.d.ts","default":"./dist/plugin-sdk/matrix-surface.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/ollama-surface":{"types":"./dist/plugin-sdk/ollama-surface.d.ts","default":"./dist/plugin-sdk/ollama-surface.js"},"./plugin-sdk/plugin-runtime":{"types":"./dist/plugin-sdk/plugin-runtime.d.ts","default":"./dist/plugin-sdk/plugin-runtime.js"},"./plugin-sdk/provider-entry":{"types":"./dist/plugin-sdk/provider-entry.d.ts","default":"./dist/plugin-sdk/provider-entry.js"},"./plugin-sdk/provider-setup":{"types":"./dist/plugin-sdk/provider-setup.d.ts","default":"./dist/plugin-sdk/provider-setup.js"},"./plugin-sdk/provider-tools":{"types":"./dist/plugin-sdk/provider-tools.d.ts","default":"./dist/plugin-sdk/provider-tools.js"},"./plugin-sdk/provider-usage":{"types":"./dist/plugin-sdk/provider-usage.d.ts","default":"./dist/plugin-sdk/provider-usage.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/signal-account":{"types":"./dist/plugin-sdk/signal-account.d.ts","default":"./dist/plugin-sdk/signal-account.js"},"./plugin-sdk/signal-surface":{"types":"./dist/plugin-sdk/signal-surface.d.ts","default":"./dist/plugin-sdk/signal-surface.js"},"./plugin-sdk/speech-runtime":{"types":"./dist/plugin-sdk/speech-runtime.d.ts","default":"./dist/plugin-sdk/speech-runtime.js"},"./plugin-sdk/status-helpers":{"types":"./dist/plugin-sdk/status-helpers.d.ts","default":"./dist/plugin-sdk/status-helpers.js"},"./plugin-sdk/account-helpers":{"types":"./dist/plugin-sdk/account-helpers.d.ts","default":"./dist/plugin-sdk/account-helpers.js"},"./plugin-sdk/browser-runtime":{"types":"./dist/plugin-sdk/browser-runtime.d.ts","default":"./dist/plugin-sdk/browser-runtime.js"},"./plugin-sdk/browser-support":{"types":"./dist/plugin-sdk/browser-support.d.ts","default":"./dist/plugin-sdk/browser-support.js"},"./plugin-sdk/channel-actions":{"types":"./dist/plugin-sdk/channel-actions.d.ts","default":"./dist/plugin-sdk/channel-actions.js"},"./plugin-sdk/channel-inbound":{"types":"./dist/plugin-sdk/channel-inbound.d.ts","default":"./dist/plugin-sdk/channel-inbound.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.js"},"./plugin-sdk/channel-runtime":{"types":"./dist/plugin-sdk/channel-runtime.d.ts","default":"./dist/plugin-sdk/channel-runtime.js"},"./plugin-sdk/channel-targets":{"types":"./dist/plugin-sdk/channel-targets.d.ts","default":"./dist/plugin-sdk/channel-targets.js"},"./plugin-sdk/discord-account":{"types":"./dist/plugin-sdk/discord-account.d.ts","default":"./dist/plugin-sdk/discord-account.js"},"./plugin-sdk/discord-surface":{"types":"./dist/plugin-sdk/discord-surface.d.ts","default":"./dist/plugin-sdk/discord-surface.js"},"./plugin-sdk/gateway-runtime":{"types":"./dist/plugin-sdk/gateway-runtime.d.ts","default":"./dist/plugin-sdk/gateway-runtime.js"},"./plugin-sdk/process-runtime":{"types":"./dist/plugin-sdk/process-runtime.d.ts","default":"./dist/plugin-sdk/process-runtime.js"},"./plugin-sdk/provider-stream":{"types":"./dist/plugin-sdk/provider-stream.d.ts","default":"./dist/plugin-sdk/provider-stream.js"},"./plugin-sdk/webhook-ingress":{"types":"./dist/plugin-sdk/webhook-ingress.d.ts","default":"./dist/plugin-sdk/webhook-ingress.js"},"./plugin-sdk/whatsapp-shared":{"types":"./dist/plugin-sdk/whatsapp-shared.d.ts","default":"./dist/plugin-sdk/whatsapp-shared.js"},"./plugin-sdk/anthropic-vertex":{"types":"./dist/plugin-sdk/anthropic-vertex.d.ts","default":"./dist/plugin-sdk/anthropic-vertex.js"},"./plugin-sdk/approval-runtime":{"types":"./dist/plugin-sdk/approval-runtime.d.ts","default":"./dist/plugin-sdk/approval-runtime.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/device-bootstrap":{"types":"./dist/plugin-sdk/device-bootstrap.d.ts","default":"./dist/plugin-sdk/device-bootstrap.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/discord-timeouts":{"types":"./dist/plugin-sdk/discord-timeouts.d.ts","default":"./dist/plugin-sdk/discord-timeouts.js"},"./plugin-sdk/extension-shared":{"types":"./dist/plugin-sdk/extension-shared.d.ts","default":"./dist/plugin-sdk/extension-shared.js"},"./plugin-sdk/global-singleton":{"types":"./dist/plugin-sdk/global-singleton.d.ts","default":"./dist/plugin-sdk/global-singleton.js"},"./plugin-sdk/image-generation":{"types":"./dist/plugin-sdk/image-generation.d.ts","default":"./dist/plugin-sdk/image-generation.js"},"./plugin-sdk/outbound-runtime":{"types":"./dist/plugin-sdk/outbound-runtime.d.ts","default":"./dist/plugin-sdk/outbound-runtime.js"},"./plugin-sdk/provider-onboard":{"types":"./dist/plugin-sdk/provider-onboard.d.ts","default":"./dist/plugin-sdk/provider-onboard.js"},"./plugin-sdk/security-runtime":{"types":"./dist/plugin-sdk/security-runtime.d.ts","default":"./dist/plugin-sdk/security-runtime.js"},"./plugin-sdk/telegram-account":{"types":"./dist/plugin-sdk/telegram-account.d.ts","default":"./dist/plugin-sdk/telegram-account.js"},"./plugin-sdk/telegram-surface":{"types":"./dist/plugin-sdk/telegram-surface.d.ts","default":"./dist/plugin-sdk/telegram-surface.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/whatsapp-surface":{"types":"./dist/plugin-sdk/whatsapp-surface.d.ts","default":"./dist/plugin-sdk/whatsapp-surface.js"},"./plugin-sdk/whatsapp-targets":{"types":"./dist/plugin-sdk/whatsapp-targets.d.ts","default":"./dist/plugin-sdk/whatsapp-targets.js"},"./plugin-sdk/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.js"},"./plugin-sdk/directory-runtime":{"types":"./dist/plugin-sdk/directory-runtime.d.ts","default":"./dist/plugin-sdk/directory-runtime.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/mattermost-policy":{"types":"./dist/plugin-sdk/mattermost-policy.d.ts","default":"./dist/plugin-sdk/mattermost-policy.js"},"./plugin-sdk/provider-env-vars":{"types":"./dist/plugin-sdk/provider-env-vars.d.ts","default":"./dist/plugin-sdk/provider-env-vars.js"},"./plugin-sdk/provider-moonshot":{"types":"./dist/plugin-sdk/provider-moonshot.d.ts","default":"./dist/plugin-sdk/provider-moonshot.js"},"./plugin-sdk/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.js"},"./plugin-sdk/bluebubbles-policy":{"types":"./dist/plugin-sdk/bluebubbles-policy.d.ts","default":"./dist/plugin-sdk/bluebubbles-policy.js"},"./plugin-sdk/collection-runtime":{"types":"./dist/plugin-sdk/collection-runtime.d.ts","default":"./dist/plugin-sdk/collection-runtime.js"},"./plugin-sdk/diagnostic-runtime":{"types":"./dist/plugin-sdk/diagnostic-runtime.d.ts","default":"./dist/plugin-sdk/diagnostic-runtime.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/command-auth-native":{"types":"./dist/plugin-sdk/command-auth-native.d.ts","default":"./dist/plugin-sdk/command-auth-native.js"},"./plugin-sdk/discord-session-key":{"types":"./dist/plugin-sdk/discord-session-key.d.ts","default":"./dist/plugin-sdk/discord-session-key.js"},"./plugin-sdk/feishu-conversation":{"types":"./dist/plugin-sdk/feishu-conversation.d.ts","default":"./dist/plugin-sdk/feishu-conversation.js"},"./plugin-sdk/interactive-runtime":{"types":"./dist/plugin-sdk/interactive-runtime.d.ts","default":"./dist/plugin-sdk/interactive-runtime.js"},"./plugin-sdk/media-understanding":{"types":"./dist/plugin-sdk/media-understanding.d.ts","default":"./dist/plugin-sdk/media-understanding.js"},"./plugin-sdk/provider-auth-login":{"types":"./dist/plugin-sdk/provider-auth-login.d.ts","default":"./dist/plugin-sdk/provider-auth-login.js"},"./plugin-sdk/provider-web-search":{"types":"./dist/plugin-sdk/provider-web-search.d.ts","default":"./dist/plugin-sdk/provider-web-search.js"},"./plugin-sdk/slack-target-parser":{"types":"./dist/plugin-sdk/slack-target-parser.d.ts","default":"./dist/plugin-sdk/slack-target-parser.js"},"./plugin-sdk/telegram-allow-from":{"types":"./dist/plugin-sdk/telegram-allow-from.d.ts","default":"./dist/plugin-sdk/telegram-allow-from.js"},"./plugin-sdk/conversation-runtime":{"types":"./dist/plugin-sdk/conversation-runtime.d.ts","default":"./dist/plugin-sdk/conversation-runtime.js"},"./plugin-sdk/github-copilot-login":{"types":"./dist/plugin-sdk/github-copilot-login.d.ts","default":"./dist/plugin-sdk/github-copilot-login.js"},"./plugin-sdk/github-copilot-token":{"types":"./dist/plugin-sdk/github-copilot-token.d.ts","default":"./dist/plugin-sdk/github-copilot-token.js"},"./plugin-sdk/matrix-runtime-heavy":{"types":"./dist/plugin-sdk/matrix-runtime-heavy.d.ts","default":"./dist/plugin-sdk/matrix-runtime-heavy.js"},"./plugin-sdk/provider-auth-result":{"types":"./dist/plugin-sdk/provider-auth-result.d.ts","default":"./dist/plugin-sdk/provider-auth-result.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/channel-config-schema":{"types":"./dist/plugin-sdk/channel-config-schema.d.ts","default":"./dist/plugin-sdk/channel-config-schema.js"},"./plugin-sdk/channel-config-writes":{"types":"./dist/plugin-sdk/channel-config-writes.d.ts","default":"./dist/plugin-sdk/channel-config-writes.js"},"./plugin-sdk/cloudflare-ai-gateway":{"types":"./dist/plugin-sdk/cloudflare-ai-gateway.d.ts","default":"./dist/plugin-sdk/cloudflare-ai-gateway.js"},"./plugin-sdk/image-generation-core":{"types":"./dist/plugin-sdk/image-generation-core.d.ts","default":"./dist/plugin-sdk/image-generation-core.js"},"./plugin-sdk/matrix-runtime-shared":{"types":"./dist/plugin-sdk/matrix-runtime-shared.d.ts","default":"./dist/plugin-sdk/matrix-runtime-shared.js"},"./plugin-sdk/provider-auth-api-key":{"types":"./dist/plugin-sdk/provider-auth-api-key.d.ts","default":"./dist/plugin-sdk/provider-auth-api-key.js"},"./plugin-sdk/provider-auth-runtime":{"types":"./dist/plugin-sdk/provider-auth-runtime.d.ts","default":"./dist/plugin-sdk/provider-auth-runtime.js"},"./plugin-sdk/provider-model-shared":{"types":"./dist/plugin-sdk/provider-model-shared.d.ts","default":"./dist/plugin-sdk/provider-model-shared.js"},"./plugin-sdk/provider-zai-endpoint":{"types":"./dist/plugin-sdk/provider-zai-endpoint.d.ts","default":"./dist/plugin-sdk/provider-zai-endpoint.js"},"./plugin-sdk/setup-adapter-runtime":{"types":"./dist/plugin-sdk/setup-adapter-runtime.d.ts","default":"./dist/plugin-sdk/setup-adapter-runtime.js"},"./plugin-sdk/slack-runtime-surface":{"types":"./dist/plugin-sdk/slack-runtime-surface.d.ts","default":"./dist/plugin-sdk/slack-runtime-surface.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-reply-pipeline":{"types":"./dist/plugin-sdk/channel-reply-pipeline.d.ts","default":"./dist/plugin-sdk/channel-reply-pipeline.js"},"./plugin-sdk/matrix-runtime-surface":{"types":"./dist/plugin-sdk/matrix-runtime-surface.d.ts","default":"./dist/plugin-sdk/matrix-runtime-surface.js"},"./plugin-sdk/matrix-thread-bindings":{"types":"./dist/plugin-sdk/matrix-thread-bindings.d.ts","default":"./dist/plugin-sdk/matrix-thread-bindings.js"},"./plugin-sdk/memory-core-host-query":{"types":"./dist/plugin-sdk/memory-core-host-query.d.ts","default":"./dist/plugin-sdk/memory-core-host-query.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/webhook-request-guards":{"types":"./dist/plugin-sdk/webhook-request-guards.d.ts","default":"./dist/plugin-sdk/webhook-request-guards.js"},"./plugin-sdk/whatsapp-auth-presence":{"types":"./dist/plugin-sdk/whatsapp-auth-presence.d.ts","default":"./dist/plugin-sdk/whatsapp-auth-presence.js"},"./plugin-sdk/agent-config-primitives":{"types":"./dist/plugin-sdk/agent-config-primitives.d.ts","default":"./dist/plugin-sdk/agent-config-primitives.js"},"./plugin-sdk/discord-runtime-surface":{"types":"./dist/plugin-sdk/discord-runtime-surface.d.ts","default":"./dist/plugin-sdk/discord-runtime-surface.js"},"./plugin-sdk/discord-thread-bindings":{"types":"./dist/plugin-sdk/discord-thread-bindings.d.ts","default":"./dist/plugin-sdk/discord-thread-bindings.js"},"./plugin-sdk/memory-core-host-secret":{"types":"./dist/plugin-sdk/memory-core-host-secret.d.ts","default":"./dist/plugin-sdk/memory-core-host-secret.js"},"./plugin-sdk/memory-core-host-status":{"types":"./dist/plugin-sdk/memory-core-host-status.d.ts","default":"./dist/plugin-sdk/memory-core-host-status.js"},"./plugin-sdk/modelstudio-definitions":{"types":"./dist/plugin-sdk/modelstudio-definitions.d.ts","default":"./dist/plugin-sdk/modelstudio-definitions.js"},"./plugin-sdk/provider-catalog-shared":{"types":"./dist/plugin-sdk/provider-catalog-shared.d.ts","default":"./dist/plugin-sdk/provider-catalog-shared.js"},"./plugin-sdk/thread-bindings-runtime":{"types":"./dist/plugin-sdk/thread-bindings-runtime.d.ts","default":"./dist/plugin-sdk/thread-bindings-runtime.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/memory-core-engine-runtime":{"types":"./dist/plugin-sdk/memory-core-engine-runtime.d.ts","default":"./dist/plugin-sdk/memory-core-engine-runtime.js"},"./plugin-sdk/self-hosted-provider-setup":{"types":"./dist/plugin-sdk/self-hosted-provider-setup.d.ts","default":"./dist/plugin-sdk/self-hosted-provider-setup.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/memory-core-host-engine-qmd":{"types":"./dist/plugin-sdk/memory-core-host-engine-qmd.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-qmd.js"},"./plugin-sdk/memory-core-host-multimodal":{"types":"./dist/plugin-sdk/memory-core-host-multimodal.d.ts","default":"./dist/plugin-sdk/memory-core-host-multimodal.js"},"./plugin-sdk/memory-core-host-runtime-cli":{"types":"./dist/plugin-sdk/memory-core-host-runtime-cli.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-cli.js"},"./plugin-sdk/memory-core-host-runtime-core":{"types":"./dist/plugin-sdk/memory-core-host-runtime-core.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-core.js"},"./plugin-sdk/memory-core-host-runtime-files":{"types":"./dist/plugin-sdk/memory-core-host-runtime-files.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-files.js"},"./plugin-sdk/memory-core-host-engine-storage":{"types":"./dist/plugin-sdk/memory-core-host-engine-storage.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-storage.js"},"./plugin-sdk/memory-core-host-engine-embeddings":{"types":"./dist/plugin-sdk/memory-core-host-engine-embeddings.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-embeddings.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"}},"gitHead":"ffa2143d201ddad57bb2e32dc8232c288a6e377a","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"node scripts/run-oxlint.mjs","test":"node scripts/test-parallel.mjs","tsgo":"node scripts/run-tsgo.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node scripts/check-plugin-sdk-exports.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:no-conflict-markers && pnpm check:host-env-policy:swift && pnpm tsgo && pnpm lint && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"node scripts/run-oxlint.mjs --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","test:max":"node scripts/test-parallel.mjs --profile max","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"node scripts/test-live.mjs","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-i18n-glossary && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity","audit:seams":"node scripts/audit-seams.mjs","canon:check":"node scripts/canon.mjs check","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall-bundled-plugins.mjs","test:serial":"node scripts/test-parallel.mjs --profile serial","ts-topology":"node --import tsx scripts/ts-topology.ts","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testPlayDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:changed":"pnpm test -- --changed origin/main","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","canon:enforce":"node scripts/canon.mjs enforce --json","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"pnpm check:base-config-schema && pnpm check:bundled-channel-config-metadata && pnpm check:bundled-provider-auth-env-vars && pnpm config:docs:check && pnpm plugin-sdk:check-exports && pnpm plugin-sdk:facades:check && pnpm plugin-sdk:api:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && pnpm ui:build && node --import tsx scripts/release-check.ts","test:channels":"node scripts/test-parallel.mjs --surface channels","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:contracts":"pnpm test:contracts:channels && pnpm test:contracts:plugins","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:extension":"node scripts/test-extension.mjs","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installPlayDebug","config:docs:gen":"node --import tsx scripts/generate-config-doc-baseline.ts --write","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:openwebui && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:mcp-channels && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"node scripts/test-parallel.mjs --surface extensions","android:assemble":"cd apps/android && ./gradlew :app:assemblePlayDebug","canon:check:json":"node scripts/canon.mjs check --json","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","plugin-sdk:usage":"node --import tsx scripts/analyze-plugin-sdk-usage.ts","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:changed:max":"node scripts/test-parallel.mjs --profile max --changed origin/main","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","config:docs:check":"node --import tsx scripts/generate-config-doc-baseline.ts --check","config:schema:gen":"node --import tsx scripts/generate-base-config-schema.ts --write","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","test:perf:imports":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node scripts/check-plugin-sdk-exports.mjs","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","plugin-sdk:api:gen":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:e2e:openshell":"OPENCLAW_E2E_OPENSHELL=1 vitest run --config vitest.e2e.config.ts test/openshell-sandbox.e2e.test.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","test:startup:bench":"node --import tsx scripts/bench-cli-startup.ts","config:channels:gen":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --write","config:schema:check":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:startup:memory":"node scripts/check-cli-startup-memory.mjs","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","plugin-sdk:api:check":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check","test:build:singleton":"node scripts/test-built-plugin-singleton.mjs","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","config:channels:check":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check","test:coverage:changed":"vitest run --config vitest.unit.config.ts --coverage --changed origin/main","test:docker:openwebui":"bash scripts/e2e/openwebui-docker.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","plugin-sdk:facades:gen":"node scripts/generate-plugin-sdk-facades.mjs --write","test:contracts:plugins":"OPENCLAW_TEST_PROFILE=serial pnpm exec vitest run --config vitest.contracts.config.ts src/plugins/contracts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","test:perf:profile:main":"node scripts/run-vitest-profile.mjs main","android:run:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","plugin-sdk:sync-exports":"node scripts/sync-plugin-sdk-exports.mjs","test:contracts:channels":"OPENCLAW_TEST_PROFILE=serial pnpm exec vitest run --config vitest.contracts.config.ts src/channels/plugins/contracts","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:startup:bench:save":"node --import tsx scripts/bench-cli-startup.ts --preset all --runs 5 --warmup 1 --output .artifacts/cli-startup-bench-all.json","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","android:test:third-party":"cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:check-i18n-glossary":"node scripts/check-docs-i18n-glossary.mjs","docs:check-links:anchors":"node scripts/docs-link-audit.mjs --anchors","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","plugin-sdk:check-exports":"node scripts/sync-plugin-sdk-exports.mjs --check","plugin-sdk:facades:check":"node scripts/generate-plugin-sdk-facades.mjs --check","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:mcp-channels":"bash scripts/e2e/mcp-channels-docker.sh","test:perf:profile:runner":"node scripts/run-vitest-profile.mjs runner","test:perf:update-timings":"node scripts/test-update-timings.mjs","test:startup:bench:check":"node scripts/test-cli-startup-bench-budget.mjs","test:startup:bench:smoke":"node --import tsx scripts/bench-cli-startup.ts --preset real --case gatewayStatusJson --runs 1 --warmup 0 --output .artifacts/cli-startup-bench-smoke.json","check:no-conflict-markers":"node scripts/check-no-conflict-markers.mjs","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","release:plugins:npm:check":"node --import tsx scripts/plugin-npm-release-check.ts","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:docker:live-acp-bind":"bash scripts/test-live-acp-bind-docker.sh","test:parallels:npm-update":"bash scripts/e2e/parallels-npm-update-smoke.sh","test:perf:imports:changed":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test -- --changed origin/main","test:startup:bench:update":"node scripts/test-update-cli-startup-bench.mjs","test:voicecall:closedloop":"node scripts/test-voicecall-closedloop.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","android:install:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","android:assemble:third-party":"cd apps/android && ./gradlew :app:assembleThirdPartyDebug","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","test:docker:live-cli-backend":"bash scripts/test-live-cli-backend-docker.sh","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","test:gateway:watch-regression":"node scripts/check-gateway-watch-regression.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","test:perf:update-memory-hotspots":"node scripts/test-update-memory-hotspots.mjs","lint:plugins:no-extension-imports":"node scripts/check-plugin-extension-import-boundary.mjs","stage:bundled-plugin-runtime-deps":"node scripts/stage-bundled-plugin-runtime-deps.mjs","lint:web-search-provider-boundaries":"node scripts/check-web-search-provider-boundaries.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","test:perf:update-timings:extensions":"node scripts/test-update-timings.mjs --config vitest.extensions.config.ts","check:bundled-provider-auth-env-vars":"node scripts/generate-bundled-provider-auth-env-vars.mjs --check","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","check:bundled-channel-config-metadata":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check","lint:plugins:no-extension-src-imports":"node --import tsx scripts/check-no-extension-src-imports.ts","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","release:openclaw:npm:verify-published":"node --import tsx scripts/openclaw-npm-postpublish-verify.ts","lint:extensions:no-plugin-sdk-internal":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal","lint:extensions:no-src-outside-plugin-sdk":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk","lint:plugins:plugin-sdk-subpaths-exported":"node scripts/check-plugin-sdk-subpath-exports.mjs","lint:extensions:no-relative-outside-package":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package","lint:plugins:no-extension-test-core-imports":"node --import tsx scripts/check-no-extension-test-core-imports.ts","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2bccb063-cd01-4335-8b61-f7859f1dd4e2"}},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.20.0","ajv":"^8.18.0","tar":"7.5.13","zod":"^4.3.6","hono":"4.12.9","jiti":"^2.6.1","long":"^5.3.2","uuid":"^13.0.0","yaml":"^2.8.3","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.4","undici":"^7.24.6","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"22.0.0","ipaddr.js":"^2.3.0","pdfjs-dist":"^5.6.205","sqlite-vec":"0.1.9","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","matrix-js-sdk":"41.3.0-rc.0","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@homebridge/ciao":"^1.3.6","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.49","@mariozechner/pi-ai":"0.64.0","@mariozechner/pi-tui":"0.64.0","@mozilla/readability":"^0.6.0","@agentclientprotocol/sdk":"0.17.1","@anthropic-ai/vertex-sdk":"^0.14.4","@modelcontextprotocol/sdk":"1.29.0","@mariozechner/pi-agent-core":"0.64.0","@mariozechner/pi-coding-agent":"0.64.0","@matrix-org/matrix-sdk-crypto-wasm":"18.0.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^29.0.1","oxfmt":"0.43.0","oxlint":"^1.58.0","tsdown":"0.21.7","vitest":"^4.1.2","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.18.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.2","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260331.1"},"peerDependencies":{"node-llama-cpp":"3.18.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.31-beta.1_1774987964795_0.5014170453637199","host":"s3://npm-registry-packages-npm-production"}},"2026.3.31":{"name":"openclaw","version":"2026.3.31","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.3.31","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"a7437ddd64bd05e1d20284a2f65d653585c5deaf","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.3.31.tgz","fileCount":21037,"integrity":"sha512-+8SIp5dTPftir1s513tT0FumpBgNvhgX+B0tyGUF94Vx9yL8qK6RTwIyiQADgPPUzIH2NVAlgTYFRSz6lxLj4w==","signatures":[{"sig":"MEQCIFJx/SeIBOP9vapsMokK16vQLwz31cU19GKHIguslslMAiA8IqOT/G7QZrB2DZsmA+0pReuAqAob2HzpEcFSZ97sSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openclaw@2026.3.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":182617026},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.13","hono":"4.12.9","axios":"1.13.6","yauzl":"3.2.1","request":"npm:@cypress/request@3.0.10","file-type":"22.0.0","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","path-to-regexp":"8.4.0","fast-xml-parser":"5.5.7","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.49","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@tloncorp/tlon-skill","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"],"ignoredBuiltDependencies":["@discordjs/opus","koffi"]},"type":"module","engines":{"node":">=22.14.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./extension-api":"./dist/extensionAPI.js","./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/xai":{"types":"./dist/plugin-sdk/xai.d.ts","default":"./dist/plugin-sdk/xai.js"},"./plugin-sdk/zod":{"types":"./dist/plugin-sdk/zod.d.ts","default":"./dist/plugin-sdk/zod.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/vllm":{"types":"./dist/plugin-sdk/vllm.d.ts","default":"./dist/plugin-sdk/vllm.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/setup":{"types":"./dist/plugin-sdk/setup.d.ts","default":"./dist/plugin-sdk/setup.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/chutes":{"types":"./dist/plugin-sdk/chutes.d.ts","default":"./dist/plugin-sdk/chutes.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/google":{"types":"./dist/plugin-sdk/google.d.ts","default":"./dist/plugin-sdk/google.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/nvidia":{"types":"./dist/plugin-sdk/nvidia.d.ts","default":"./dist/plugin-sdk/nvidia.js"},"./plugin-sdk/ollama":{"types":"./dist/plugin-sdk/ollama.d.ts","default":"./dist/plugin-sdk/ollama.js"},"./plugin-sdk/openai":{"types":"./dist/plugin-sdk/openai.d.ts","default":"./dist/plugin-sdk/openai.js"},"./plugin-sdk/sglang":{"types":"./dist/plugin-sdk/sglang.d.ts","default":"./dist/plugin-sdk/sglang.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/speech":{"types":"./dist/plugin-sdk/speech.d.ts","default":"./dist/plugin-sdk/speech.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/venice":{"types":"./dist/plugin-sdk/venice.d.ts","default":"./dist/plugin-sdk/venice.js"},"./plugin-sdk/browser":{"types":"./dist/plugin-sdk/browser.d.ts","default":"./dist/plugin-sdk/browser.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/minimax":{"types":"./dist/plugin-sdk/minimax.d.ts","default":"./dist/plugin-sdk/minimax.js"},"./plugin-sdk/mistral":{"types":"./dist/plugin-sdk/mistral.d.ts","default":"./dist/plugin-sdk/mistral.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/qianfan":{"types":"./dist/plugin-sdk/qianfan.d.ts","default":"./dist/plugin-sdk/qianfan.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/sandbox":{"types":"./dist/plugin-sdk/sandbox.d.ts","default":"./dist/plugin-sdk/sandbox.js"},"./plugin-sdk/testing":{"types":"./dist/plugin-sdk/testing.d.ts","default":"./dist/plugin-sdk/testing.js"},"./plugin-sdk/byteplus":{"types":"./dist/plugin-sdk/byteplus.d.ts","default":"./dist/plugin-sdk/byteplus.js"},"./plugin-sdk/deepseek":{"types":"./dist/plugin-sdk/deepseek.d.ts","default":"./dist/plugin-sdk/deepseek.js"},"./plugin-sdk/kilocode":{"types":"./dist/plugin-sdk/kilocode.d.ts","default":"./dist/plugin-sdk/kilocode.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/moonshot":{"types":"./dist/plugin-sdk/moonshot.d.ts","default":"./dist/plugin-sdk/moonshot.js"},"./plugin-sdk/opencode":{"types":"./dist/plugin-sdk/opencode.d.ts","default":"./dist/plugin-sdk/opencode.js"},"./plugin-sdk/together":{"types":"./dist/plugin-sdk/together.d.ts","default":"./dist/plugin-sdk/together.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/direct-dm":{"types":"./dist/plugin-sdk/direct-dm.d.ts","default":"./dist/plugin-sdk/direct-dm.js"},"./plugin-sdk/file-lock":{"types":"./dist/plugin-sdk/file-lock.d.ts","default":"./dist/plugin-sdk/file-lock.js"},"./plugin-sdk/line-core":{"types":"./dist/plugin-sdk/line-core.d.ts","default":"./dist/plugin-sdk/line-core.js"},"./plugin-sdk/synthetic":{"types":"./dist/plugin-sdk/synthetic.d.ts","default":"./dist/plugin-sdk/synthetic.js"},"./plugin-sdk/temp-path":{"types":"./dist/plugin-sdk/temp-path.d.ts","default":"./dist/plugin-sdk/temp-path.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/web-media":{"types":"./dist/plugin-sdk/web-media.d.ts","default":"./dist/plugin-sdk/web-media.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/allow-from":{"types":"./dist/plugin-sdk/allow-from.d.ts","default":"./dist/plugin-sdk/allow-from.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/json-store":{"types":"./dist/plugin-sdk/json-store.d.ts","default":"./dist/plugin-sdk/json-store.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/slack-core":{"types":"./dist/plugin-sdk/slack-core.d.ts","default":"./dist/plugin-sdk/slack-core.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/volcengine":{"types":"./dist/plugin-sdk/volcengine.d.ts","default":"./dist/plugin-sdk/volcengine.js"},"./plugin-sdk/zalo-setup":{"types":"./dist/plugin-sdk/zalo-setup.d.ts","default":"./dist/plugin-sdk/zalo-setup.js"},"./plugin-sdk/acp-runtime":{"types":"./dist/plugin-sdk/acp-runtime.d.ts","default":"./dist/plugin-sdk/acp-runtime.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/cli-backend":{"types":"./dist/plugin-sdk/cli-backend.d.ts","default":"./dist/plugin-sdk/cli-backend.js"},"./plugin-sdk/cli-runtime":{"types":"./dist/plugin-sdk/cli-runtime.d.ts","default":"./dist/plugin-sdk/cli-runtime.js"},"./plugin-sdk/huggingface":{"types":"./dist/plugin-sdk/huggingface.d.ts","default":"./dist/plugin-sdk/huggingface.js"},"./plugin-sdk/irc-surface":{"types":"./dist/plugin-sdk/irc-surface.d.ts","default":"./dist/plugin-sdk/irc-surface.js"},"./plugin-sdk/kimi-coding":{"types":"./dist/plugin-sdk/kimi-coding.d.ts","default":"./dist/plugin-sdk/kimi-coding.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/modelstudio":{"types":"./dist/plugin-sdk/modelstudio.d.ts","default":"./dist/plugin-sdk/modelstudio.js"},"./plugin-sdk/opencode-go":{"types":"./dist/plugin-sdk/opencode-go.d.ts","default":"./dist/plugin-sdk/opencode-go.js"},"./plugin-sdk/request-url":{"types":"./dist/plugin-sdk/request-url.d.ts","default":"./dist/plugin-sdk/request-url.js"},"./plugin-sdk/runtime-env":{"types":"./dist/plugin-sdk/runtime-env.d.ts","default":"./dist/plugin-sdk/runtime-env.js"},"./plugin-sdk/setup-tools":{"types":"./dist/plugin-sdk/setup-tools.d.ts","default":"./dist/plugin-sdk/setup-tools.js"},"./plugin-sdk/speech-core":{"types":"./dist/plugin-sdk/speech-core.d.ts","default":"./dist/plugin-sdk/speech-core.js"},"./plugin-sdk/state-paths":{"types":"./dist/plugin-sdk/state-paths.d.ts","default":"./dist/plugin-sdk/state-paths.js"},"./plugin-sdk/account-core":{"types":"./dist/plugin-sdk/account-core.d.ts","default":"./dist/plugin-sdk/account-core.js"},"./plugin-sdk/command-auth":{"types":"./dist/plugin-sdk/command-auth.d.ts","default":"./dist/plugin-sdk/command-auth.js"},"./plugin-sdk/discord-core":{"types":"./dist/plugin-sdk/discord-core.d.ts","default":"./dist/plugin-sdk/discord-core.js"},"./plugin-sdk/feishu-setup":{"types":"./dist/plugin-sdk/feishu-setup.d.ts","default":"./dist/plugin-sdk/feishu-setup.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/hook-runtime":{"types":"./dist/plugin-sdk/hook-runtime.d.ts","default":"./dist/plugin-sdk/hook-runtime.js"},"./plugin-sdk/host-runtime":{"types":"./dist/plugin-sdk/host-runtime.d.ts","default":"./dist/plugin-sdk/host-runtime.js"},"./plugin-sdk/lazy-runtime":{"types":"./dist/plugin-sdk/lazy-runtime.d.ts","default":"./dist/plugin-sdk/lazy-runtime.js"},"./plugin-sdk/line-runtime":{"types":"./dist/plugin-sdk/line-runtime.d.ts","default":"./dist/plugin-sdk/line-runtime.js"},"./plugin-sdk/line-surface":{"types":"./dist/plugin-sdk/line-surface.d.ts","default":"./dist/plugin-sdk/line-surface.js"},"./plugin-sdk/logging-core":{"types":"./dist/plugin-sdk/logging-core.d.ts","default":"./dist/plugin-sdk/logging-core.js"},"./plugin-sdk/plugin-entry":{"types":"./dist/plugin-sdk/plugin-entry.d.ts","default":"./dist/plugin-sdk/plugin-entry.js"},"./plugin-sdk/secret-input":{"types":"./dist/plugin-sdk/secret-input.d.ts","default":"./dist/plugin-sdk/secret-input.js"},"./plugin-sdk/ssrf-runtime":{"types":"./dist/plugin-sdk/ssrf-runtime.d.ts","default":"./dist/plugin-sdk/ssrf-runtime.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/webhook-path":{"types":"./dist/plugin-sdk/webhook-path.d.ts","default":"./dist/plugin-sdk/webhook-path.js"},"./plugin-sdk/agent-runtime":{"types":"./dist/plugin-sdk/agent-runtime.d.ts","default":"./dist/plugin-sdk/agent-runtime.js"},"./plugin-sdk/boolean-param":{"types":"./dist/plugin-sdk/boolean-param.d.ts","default":"./dist/plugin-sdk/boolean-param.js"},"./plugin-sdk/channel-setup":{"types":"./dist/plugin-sdk/channel-setup.d.ts","default":"./dist/plugin-sdk/channel-setup.js"},"./plugin-sdk/error-runtime":{"types":"./dist/plugin-sdk/error-runtime.d.ts","default":"./dist/plugin-sdk/error-runtime.js"},"./plugin-sdk/fetch-runtime":{"types":"./dist/plugin-sdk/fetch-runtime.d.ts","default":"./dist/plugin-sdk/fetch-runtime.js"},"./plugin-sdk/infra-runtime":{"types":"./dist/plugin-sdk/infra-runtime.d.ts","default":"./dist/plugin-sdk/infra-runtime.js"},"./plugin-sdk/matrix-helper":{"types":"./dist/plugin-sdk/matrix-helper.d.ts","default":"./dist/plugin-sdk/matrix-helper.js"},"./plugin-sdk/media-runtime":{"types":"./dist/plugin-sdk/media-runtime.d.ts","default":"./dist/plugin-sdk/media-runtime.js"},"./plugin-sdk/param-readers":{"types":"./dist/plugin-sdk/param-readers.d.ts","default":"./dist/plugin-sdk/param-readers.js"},"./plugin-sdk/provider-auth":{"types":"./dist/plugin-sdk/provider-auth.d.ts","default":"./dist/plugin-sdk/provider-auth.js"},"./plugin-sdk/provider-http":{"types":"./dist/plugin-sdk/provider-http.d.ts","default":"./dist/plugin-sdk/provider-http.js"},"./plugin-sdk/reply-history":{"types":"./dist/plugin-sdk/reply-history.d.ts","default":"./dist/plugin-sdk/reply-history.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/reply-runtime":{"types":"./dist/plugin-sdk/reply-runtime.d.ts","default":"./dist/plugin-sdk/reply-runtime.js"},"./plugin-sdk/retry-runtime":{"types":"./dist/plugin-sdk/retry-runtime.d.ts","default":"./dist/plugin-sdk/retry-runtime.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/setup-runtime":{"types":"./dist/plugin-sdk/setup-runtime.d.ts","default":"./dist/plugin-sdk/setup-runtime.js"},"./plugin-sdk/slack-account":{"types":"./dist/plugin-sdk/slack-account.d.ts","default":"./dist/plugin-sdk/slack-account.js"},"./plugin-sdk/slack-surface":{"types":"./dist/plugin-sdk/slack-surface.d.ts","default":"./dist/plugin-sdk/slack-surface.js"},"./plugin-sdk/slack-targets":{"types":"./dist/plugin-sdk/slack-targets.d.ts","default":"./dist/plugin-sdk/slack-targets.js"},"./plugin-sdk/telegram-core":{"types":"./dist/plugin-sdk/telegram-core.d.ts","default":"./dist/plugin-sdk/telegram-core.js"},"./plugin-sdk/whatsapp-core":{"types":"./dist/plugin-sdk/whatsapp-core.d.ts","default":"./dist/plugin-sdk/whatsapp-core.js"},"./plugin-sdk/windows-spawn":{"types":"./dist/plugin-sdk/windows-spawn.d.ts","default":"./dist/plugin-sdk/windows-spawn.js"},"./plugin-sdk/amazon-bedrock":{"types":"./dist/plugin-sdk/amazon-bedrock.d.ts","default":"./dist/plugin-sdk/amazon-bedrock.js"},"./plugin-sdk/channel-policy":{"types":"./dist/plugin-sdk/channel-policy.d.ts","default":"./dist/plugin-sdk/channel-policy.js"},"./plugin-sdk/channel-status":{"types":"./dist/plugin-sdk/channel-status.d.ts","default":"./dist/plugin-sdk/channel-status.js"},"./plugin-sdk/config-runtime":{"types":"./dist/plugin-sdk/config-runtime.d.ts","default":"./dist/plugin-sdk/config-runtime.js"},"./plugin-sdk/matrix-surface":{"types":"./dist/plugin-sdk/matrix-surface.d.ts","default":"./dist/plugin-sdk/matrix-surface.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/ollama-surface":{"types":"./dist/plugin-sdk/ollama-surface.d.ts","default":"./dist/plugin-sdk/ollama-surface.js"},"./plugin-sdk/plugin-runtime":{"types":"./dist/plugin-sdk/plugin-runtime.d.ts","default":"./dist/plugin-sdk/plugin-runtime.js"},"./plugin-sdk/provider-entry":{"types":"./dist/plugin-sdk/provider-entry.d.ts","default":"./dist/plugin-sdk/provider-entry.js"},"./plugin-sdk/provider-setup":{"types":"./dist/plugin-sdk/provider-setup.d.ts","default":"./dist/plugin-sdk/provider-setup.js"},"./plugin-sdk/provider-tools":{"types":"./dist/plugin-sdk/provider-tools.d.ts","default":"./dist/plugin-sdk/provider-tools.js"},"./plugin-sdk/provider-usage":{"types":"./dist/plugin-sdk/provider-usage.d.ts","default":"./dist/plugin-sdk/provider-usage.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/signal-account":{"types":"./dist/plugin-sdk/signal-account.d.ts","default":"./dist/plugin-sdk/signal-account.js"},"./plugin-sdk/signal-surface":{"types":"./dist/plugin-sdk/signal-surface.d.ts","default":"./dist/plugin-sdk/signal-surface.js"},"./plugin-sdk/speech-runtime":{"types":"./dist/plugin-sdk/speech-runtime.d.ts","default":"./dist/plugin-sdk/speech-runtime.js"},"./plugin-sdk/status-helpers":{"types":"./dist/plugin-sdk/status-helpers.d.ts","default":"./dist/plugin-sdk/status-helpers.js"},"./plugin-sdk/account-helpers":{"types":"./dist/plugin-sdk/account-helpers.d.ts","default":"./dist/plugin-sdk/account-helpers.js"},"./plugin-sdk/browser-runtime":{"types":"./dist/plugin-sdk/browser-runtime.d.ts","default":"./dist/plugin-sdk/browser-runtime.js"},"./plugin-sdk/browser-support":{"types":"./dist/plugin-sdk/browser-support.d.ts","default":"./dist/plugin-sdk/browser-support.js"},"./plugin-sdk/channel-actions":{"types":"./dist/plugin-sdk/channel-actions.d.ts","default":"./dist/plugin-sdk/channel-actions.js"},"./plugin-sdk/channel-inbound":{"types":"./dist/plugin-sdk/channel-inbound.d.ts","default":"./dist/plugin-sdk/channel-inbound.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.js"},"./plugin-sdk/channel-runtime":{"types":"./dist/plugin-sdk/channel-runtime.d.ts","default":"./dist/plugin-sdk/channel-runtime.js"},"./plugin-sdk/channel-targets":{"types":"./dist/plugin-sdk/channel-targets.d.ts","default":"./dist/plugin-sdk/channel-targets.js"},"./plugin-sdk/discord-account":{"types":"./dist/plugin-sdk/discord-account.d.ts","default":"./dist/plugin-sdk/discord-account.js"},"./plugin-sdk/discord-surface":{"types":"./dist/plugin-sdk/discord-surface.d.ts","default":"./dist/plugin-sdk/discord-surface.js"},"./plugin-sdk/gateway-runtime":{"types":"./dist/plugin-sdk/gateway-runtime.d.ts","default":"./dist/plugin-sdk/gateway-runtime.js"},"./plugin-sdk/process-runtime":{"types":"./dist/plugin-sdk/process-runtime.d.ts","default":"./dist/plugin-sdk/process-runtime.js"},"./plugin-sdk/provider-stream":{"types":"./dist/plugin-sdk/provider-stream.d.ts","default":"./dist/plugin-sdk/provider-stream.js"},"./plugin-sdk/webhook-ingress":{"types":"./dist/plugin-sdk/webhook-ingress.d.ts","default":"./dist/plugin-sdk/webhook-ingress.js"},"./plugin-sdk/whatsapp-shared":{"types":"./dist/plugin-sdk/whatsapp-shared.d.ts","default":"./dist/plugin-sdk/whatsapp-shared.js"},"./plugin-sdk/anthropic-vertex":{"types":"./dist/plugin-sdk/anthropic-vertex.d.ts","default":"./dist/plugin-sdk/anthropic-vertex.js"},"./plugin-sdk/approval-runtime":{"types":"./dist/plugin-sdk/approval-runtime.d.ts","default":"./dist/plugin-sdk/approval-runtime.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/device-bootstrap":{"types":"./dist/plugin-sdk/device-bootstrap.d.ts","default":"./dist/plugin-sdk/device-bootstrap.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/discord-timeouts":{"types":"./dist/plugin-sdk/discord-timeouts.d.ts","default":"./dist/plugin-sdk/discord-timeouts.js"},"./plugin-sdk/extension-shared":{"types":"./dist/plugin-sdk/extension-shared.d.ts","default":"./dist/plugin-sdk/extension-shared.js"},"./plugin-sdk/global-singleton":{"types":"./dist/plugin-sdk/global-singleton.d.ts","default":"./dist/plugin-sdk/global-singleton.js"},"./plugin-sdk/image-generation":{"types":"./dist/plugin-sdk/image-generation.d.ts","default":"./dist/plugin-sdk/image-generation.js"},"./plugin-sdk/outbound-runtime":{"types":"./dist/plugin-sdk/outbound-runtime.d.ts","default":"./dist/plugin-sdk/outbound-runtime.js"},"./plugin-sdk/provider-onboard":{"types":"./dist/plugin-sdk/provider-onboard.d.ts","default":"./dist/plugin-sdk/provider-onboard.js"},"./plugin-sdk/security-runtime":{"types":"./dist/plugin-sdk/security-runtime.d.ts","default":"./dist/plugin-sdk/security-runtime.js"},"./plugin-sdk/telegram-account":{"types":"./dist/plugin-sdk/telegram-account.d.ts","default":"./dist/plugin-sdk/telegram-account.js"},"./plugin-sdk/telegram-surface":{"types":"./dist/plugin-sdk/telegram-surface.d.ts","default":"./dist/plugin-sdk/telegram-surface.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/whatsapp-surface":{"types":"./dist/plugin-sdk/whatsapp-surface.d.ts","default":"./dist/plugin-sdk/whatsapp-surface.js"},"./plugin-sdk/whatsapp-targets":{"types":"./dist/plugin-sdk/whatsapp-targets.d.ts","default":"./dist/plugin-sdk/whatsapp-targets.js"},"./plugin-sdk/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.js"},"./plugin-sdk/directory-runtime":{"types":"./dist/plugin-sdk/directory-runtime.d.ts","default":"./dist/plugin-sdk/directory-runtime.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/mattermost-policy":{"types":"./dist/plugin-sdk/mattermost-policy.d.ts","default":"./dist/plugin-sdk/mattermost-policy.js"},"./plugin-sdk/provider-env-vars":{"types":"./dist/plugin-sdk/provider-env-vars.d.ts","default":"./dist/plugin-sdk/provider-env-vars.js"},"./plugin-sdk/provider-moonshot":{"types":"./dist/plugin-sdk/provider-moonshot.d.ts","default":"./dist/plugin-sdk/provider-moonshot.js"},"./plugin-sdk/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.js"},"./plugin-sdk/bluebubbles-policy":{"types":"./dist/plugin-sdk/bluebubbles-policy.d.ts","default":"./dist/plugin-sdk/bluebubbles-policy.js"},"./plugin-sdk/collection-runtime":{"types":"./dist/plugin-sdk/collection-runtime.d.ts","default":"./dist/plugin-sdk/collection-runtime.js"},"./plugin-sdk/diagnostic-runtime":{"types":"./dist/plugin-sdk/diagnostic-runtime.d.ts","default":"./dist/plugin-sdk/diagnostic-runtime.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/command-auth-native":{"types":"./dist/plugin-sdk/command-auth-native.d.ts","default":"./dist/plugin-sdk/command-auth-native.js"},"./plugin-sdk/discord-session-key":{"types":"./dist/plugin-sdk/discord-session-key.d.ts","default":"./dist/plugin-sdk/discord-session-key.js"},"./plugin-sdk/feishu-conversation":{"types":"./dist/plugin-sdk/feishu-conversation.d.ts","default":"./dist/plugin-sdk/feishu-conversation.js"},"./plugin-sdk/interactive-runtime":{"types":"./dist/plugin-sdk/interactive-runtime.d.ts","default":"./dist/plugin-sdk/interactive-runtime.js"},"./plugin-sdk/media-understanding":{"types":"./dist/plugin-sdk/media-understanding.d.ts","default":"./dist/plugin-sdk/media-understanding.js"},"./plugin-sdk/provider-auth-login":{"types":"./dist/plugin-sdk/provider-auth-login.d.ts","default":"./dist/plugin-sdk/provider-auth-login.js"},"./plugin-sdk/provider-web-search":{"types":"./dist/plugin-sdk/provider-web-search.d.ts","default":"./dist/plugin-sdk/provider-web-search.js"},"./plugin-sdk/slack-target-parser":{"types":"./dist/plugin-sdk/slack-target-parser.d.ts","default":"./dist/plugin-sdk/slack-target-parser.js"},"./plugin-sdk/telegram-allow-from":{"types":"./dist/plugin-sdk/telegram-allow-from.d.ts","default":"./dist/plugin-sdk/telegram-allow-from.js"},"./plugin-sdk/conversation-runtime":{"types":"./dist/plugin-sdk/conversation-runtime.d.ts","default":"./dist/plugin-sdk/conversation-runtime.js"},"./plugin-sdk/github-copilot-login":{"types":"./dist/plugin-sdk/github-copilot-login.d.ts","default":"./dist/plugin-sdk/github-copilot-login.js"},"./plugin-sdk/github-copilot-token":{"types":"./dist/plugin-sdk/github-copilot-token.d.ts","default":"./dist/plugin-sdk/github-copilot-token.js"},"./plugin-sdk/matrix-runtime-heavy":{"types":"./dist/plugin-sdk/matrix-runtime-heavy.d.ts","default":"./dist/plugin-sdk/matrix-runtime-heavy.js"},"./plugin-sdk/provider-auth-result":{"types":"./dist/plugin-sdk/provider-auth-result.d.ts","default":"./dist/plugin-sdk/provider-auth-result.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/channel-config-schema":{"types":"./dist/plugin-sdk/channel-config-schema.d.ts","default":"./dist/plugin-sdk/channel-config-schema.js"},"./plugin-sdk/channel-config-writes":{"types":"./dist/plugin-sdk/channel-config-writes.d.ts","default":"./dist/plugin-sdk/channel-config-writes.js"},"./plugin-sdk/cloudflare-ai-gateway":{"types":"./dist/plugin-sdk/cloudflare-ai-gateway.d.ts","default":"./dist/plugin-sdk/cloudflare-ai-gateway.js"},"./plugin-sdk/image-generation-core":{"types":"./dist/plugin-sdk/image-generation-core.d.ts","default":"./dist/plugin-sdk/image-generation-core.js"},"./plugin-sdk/matrix-runtime-shared":{"types":"./dist/plugin-sdk/matrix-runtime-shared.d.ts","default":"./dist/plugin-sdk/matrix-runtime-shared.js"},"./plugin-sdk/provider-auth-api-key":{"types":"./dist/plugin-sdk/provider-auth-api-key.d.ts","default":"./dist/plugin-sdk/provider-auth-api-key.js"},"./plugin-sdk/provider-auth-runtime":{"types":"./dist/plugin-sdk/provider-auth-runtime.d.ts","default":"./dist/plugin-sdk/provider-auth-runtime.js"},"./plugin-sdk/provider-model-shared":{"types":"./dist/plugin-sdk/provider-model-shared.d.ts","default":"./dist/plugin-sdk/provider-model-shared.js"},"./plugin-sdk/provider-zai-endpoint":{"types":"./dist/plugin-sdk/provider-zai-endpoint.d.ts","default":"./dist/plugin-sdk/provider-zai-endpoint.js"},"./plugin-sdk/setup-adapter-runtime":{"types":"./dist/plugin-sdk/setup-adapter-runtime.d.ts","default":"./dist/plugin-sdk/setup-adapter-runtime.js"},"./plugin-sdk/slack-runtime-surface":{"types":"./dist/plugin-sdk/slack-runtime-surface.d.ts","default":"./dist/plugin-sdk/slack-runtime-surface.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-reply-pipeline":{"types":"./dist/plugin-sdk/channel-reply-pipeline.d.ts","default":"./dist/plugin-sdk/channel-reply-pipeline.js"},"./plugin-sdk/matrix-runtime-surface":{"types":"./dist/plugin-sdk/matrix-runtime-surface.d.ts","default":"./dist/plugin-sdk/matrix-runtime-surface.js"},"./plugin-sdk/matrix-thread-bindings":{"types":"./dist/plugin-sdk/matrix-thread-bindings.d.ts","default":"./dist/plugin-sdk/matrix-thread-bindings.js"},"./plugin-sdk/memory-core-host-query":{"types":"./dist/plugin-sdk/memory-core-host-query.d.ts","default":"./dist/plugin-sdk/memory-core-host-query.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/webhook-request-guards":{"types":"./dist/plugin-sdk/webhook-request-guards.d.ts","default":"./dist/plugin-sdk/webhook-request-guards.js"},"./plugin-sdk/whatsapp-auth-presence":{"types":"./dist/plugin-sdk/whatsapp-auth-presence.d.ts","default":"./dist/plugin-sdk/whatsapp-auth-presence.js"},"./plugin-sdk/agent-config-primitives":{"types":"./dist/plugin-sdk/agent-config-primitives.d.ts","default":"./dist/plugin-sdk/agent-config-primitives.js"},"./plugin-sdk/discord-runtime-surface":{"types":"./dist/plugin-sdk/discord-runtime-surface.d.ts","default":"./dist/plugin-sdk/discord-runtime-surface.js"},"./plugin-sdk/discord-thread-bindings":{"types":"./dist/plugin-sdk/discord-thread-bindings.d.ts","default":"./dist/plugin-sdk/discord-thread-bindings.js"},"./plugin-sdk/memory-core-host-secret":{"types":"./dist/plugin-sdk/memory-core-host-secret.d.ts","default":"./dist/plugin-sdk/memory-core-host-secret.js"},"./plugin-sdk/memory-core-host-status":{"types":"./dist/plugin-sdk/memory-core-host-status.d.ts","default":"./dist/plugin-sdk/memory-core-host-status.js"},"./plugin-sdk/modelstudio-definitions":{"types":"./dist/plugin-sdk/modelstudio-definitions.d.ts","default":"./dist/plugin-sdk/modelstudio-definitions.js"},"./plugin-sdk/provider-catalog-shared":{"types":"./dist/plugin-sdk/provider-catalog-shared.d.ts","default":"./dist/plugin-sdk/provider-catalog-shared.js"},"./plugin-sdk/thread-bindings-runtime":{"types":"./dist/plugin-sdk/thread-bindings-runtime.d.ts","default":"./dist/plugin-sdk/thread-bindings-runtime.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/memory-core-engine-runtime":{"types":"./dist/plugin-sdk/memory-core-engine-runtime.d.ts","default":"./dist/plugin-sdk/memory-core-engine-runtime.js"},"./plugin-sdk/self-hosted-provider-setup":{"types":"./dist/plugin-sdk/self-hosted-provider-setup.d.ts","default":"./dist/plugin-sdk/self-hosted-provider-setup.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/memory-core-host-engine-qmd":{"types":"./dist/plugin-sdk/memory-core-host-engine-qmd.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-qmd.js"},"./plugin-sdk/memory-core-host-multimodal":{"types":"./dist/plugin-sdk/memory-core-host-multimodal.d.ts","default":"./dist/plugin-sdk/memory-core-host-multimodal.js"},"./plugin-sdk/memory-core-host-runtime-cli":{"types":"./dist/plugin-sdk/memory-core-host-runtime-cli.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-cli.js"},"./plugin-sdk/memory-core-host-runtime-core":{"types":"./dist/plugin-sdk/memory-core-host-runtime-core.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-core.js"},"./plugin-sdk/memory-core-host-runtime-files":{"types":"./dist/plugin-sdk/memory-core-host-runtime-files.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-files.js"},"./plugin-sdk/memory-core-host-engine-storage":{"types":"./dist/plugin-sdk/memory-core-host-engine-storage.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-storage.js"},"./plugin-sdk/memory-core-host-engine-embeddings":{"types":"./dist/plugin-sdk/memory-core-host-engine-embeddings.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-embeddings.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"}},"gitHead":"213a704b71f4996dc82a583288ee53785215f627","scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"node scripts/run-oxlint.mjs","test":"node scripts/test-parallel.mjs","tsgo":"node scripts/run-tsgo.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node scripts/check-plugin-sdk-exports.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:no-conflict-markers && pnpm check:host-env-policy:swift && pnpm tsgo && pnpm lint && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"pnpm build && pnpm ui:build","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"node scripts/run-oxlint.mjs --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","test:max":"node scripts/test-parallel.mjs --profile max","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"node scripts/test-live.mjs","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-i18n-glossary && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity","audit:seams":"node scripts/audit-seams.mjs","canon:check":"node scripts/canon.mjs check","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall-bundled-plugins.mjs","test:serial":"node scripts/test-parallel.mjs --profile serial","ts-topology":"node --import tsx scripts/ts-topology.ts","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testPlayDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:changed":"pnpm test -- --changed origin/main","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","canon:enforce":"node scripts/canon.mjs enforce --json","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"pnpm check:base-config-schema && pnpm check:bundled-channel-config-metadata && pnpm check:bundled-provider-auth-env-vars && pnpm config:docs:check && pnpm plugin-sdk:check-exports && pnpm plugin-sdk:facades:check && pnpm plugin-sdk:api:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && pnpm ui:build && node --import tsx scripts/release-check.ts","test:channels":"node scripts/test-parallel.mjs --surface channels","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:contracts":"pnpm test:contracts:channels && pnpm test:contracts:plugins","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:extension":"node scripts/test-extension.mjs","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installPlayDebug","config:docs:gen":"node --import tsx scripts/generate-config-doc-baseline.ts --write","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:openwebui && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:mcp-channels && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"node scripts/test-parallel.mjs --surface extensions","android:assemble":"cd apps/android && ./gradlew :app:assemblePlayDebug","canon:check:json":"node scripts/canon.mjs check --json","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","plugin-sdk:usage":"node --import tsx scripts/analyze-plugin-sdk-usage.ts","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:changed:max":"node scripts/test-parallel.mjs --profile max --changed origin/main","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","config:docs:check":"node --import tsx scripts/generate-config-doc-baseline.ts --check","config:schema:gen":"node --import tsx scripts/generate-base-config-schema.ts --write","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","test:perf:imports":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node scripts/check-plugin-sdk-exports.mjs","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","plugin-sdk:api:gen":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:e2e:openshell":"OPENCLAW_E2E_OPENSHELL=1 vitest run --config vitest.e2e.config.ts test/openshell-sandbox.e2e.test.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","test:startup:bench":"node --import tsx scripts/bench-cli-startup.ts","config:channels:gen":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --write","config:schema:check":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:startup:memory":"node scripts/check-cli-startup-memory.mjs","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","plugin-sdk:api:check":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check","test:build:singleton":"node scripts/test-built-plugin-singleton.mjs","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","config:channels:check":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check","test:coverage:changed":"vitest run --config vitest.unit.config.ts --coverage --changed origin/main","test:docker:openwebui":"bash scripts/e2e/openwebui-docker.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","plugin-sdk:facades:gen":"node scripts/generate-plugin-sdk-facades.mjs --write","test:contracts:plugins":"OPENCLAW_TEST_PROFILE=serial pnpm exec vitest run --config vitest.contracts.config.ts src/plugins/contracts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","test:perf:profile:main":"node scripts/run-vitest-profile.mjs main","android:run:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","plugin-sdk:sync-exports":"node scripts/sync-plugin-sdk-exports.mjs","test:contracts:channels":"OPENCLAW_TEST_PROFILE=serial pnpm exec vitest run --config vitest.contracts.config.ts src/channels/plugins/contracts","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:startup:bench:save":"node --import tsx scripts/bench-cli-startup.ts --preset all --runs 5 --warmup 1 --output .artifacts/cli-startup-bench-all.json","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","android:test:third-party":"cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:check-i18n-glossary":"node scripts/check-docs-i18n-glossary.mjs","docs:check-links:anchors":"node scripts/docs-link-audit.mjs --anchors","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","plugin-sdk:check-exports":"node scripts/sync-plugin-sdk-exports.mjs --check","plugin-sdk:facades:check":"node scripts/generate-plugin-sdk-facades.mjs --check","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:mcp-channels":"bash scripts/e2e/mcp-channels-docker.sh","test:perf:profile:runner":"node scripts/run-vitest-profile.mjs runner","test:perf:update-timings":"node scripts/test-update-timings.mjs","test:startup:bench:check":"node scripts/test-cli-startup-bench-budget.mjs","test:startup:bench:smoke":"node --import tsx scripts/bench-cli-startup.ts --preset real --case gatewayStatusJson --runs 1 --warmup 0 --output .artifacts/cli-startup-bench-smoke.json","check:no-conflict-markers":"node scripts/check-no-conflict-markers.mjs","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","release:plugins:npm:check":"node --import tsx scripts/plugin-npm-release-check.ts","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:docker:live-acp-bind":"bash scripts/test-live-acp-bind-docker.sh","test:parallels:npm-update":"bash scripts/e2e/parallels-npm-update-smoke.sh","test:perf:imports:changed":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test -- --changed origin/main","test:startup:bench:update":"node scripts/test-update-cli-startup-bench.mjs","test:voicecall:closedloop":"node scripts/test-voicecall-closedloop.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","android:install:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","android:assemble:third-party":"cd apps/android && ./gradlew :app:assembleThirdPartyDebug","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","test:docker:live-cli-backend":"bash scripts/test-live-cli-backend-docker.sh","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","test:gateway:watch-regression":"node scripts/check-gateway-watch-regression.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","test:perf:update-memory-hotspots":"node scripts/test-update-memory-hotspots.mjs","lint:plugins:no-extension-imports":"node scripts/check-plugin-extension-import-boundary.mjs","stage:bundled-plugin-runtime-deps":"node scripts/stage-bundled-plugin-runtime-deps.mjs","lint:web-search-provider-boundaries":"node scripts/check-web-search-provider-boundaries.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","test:perf:update-timings:extensions":"node scripts/test-update-timings.mjs --config vitest.extensions.config.ts","check:bundled-provider-auth-env-vars":"node scripts/generate-bundled-provider-auth-env-vars.mjs --check","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","check:bundled-channel-config-metadata":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check","lint:plugins:no-extension-src-imports":"node --import tsx scripts/check-no-extension-src-imports.ts","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","release:openclaw:npm:verify-published":"node --import tsx scripts/openclaw-npm-postpublish-verify.ts","lint:extensions:no-plugin-sdk-internal":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal","lint:extensions:no-src-outside-plugin-sdk":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk","lint:plugins:plugin-sdk-subpaths-exported":"node scripts/check-plugin-sdk-subpath-exports.mjs","lint:extensions:no-relative-outside-package":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package","lint:plugins:no-extension-test-core-imports":"node --import tsx scripts/check-no-extension-test-core-imports.ts","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2bccb063-cd01-4335-8b61-f7859f1dd4e2"}},"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.20.0","ajv":"^8.18.0","tar":"7.5.13","zod":"^4.3.6","hono":"4.12.9","jiti":"^2.6.1","long":"^5.3.2","uuid":"^13.0.0","yaml":"^2.8.3","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.4","undici":"^7.24.6","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"22.0.0","ipaddr.js":"^2.3.0","pdfjs-dist":"^5.6.205","sqlite-vec":"0.1.9","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","matrix-js-sdk":"41.3.0-rc.0","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@homebridge/ciao":"^1.3.6","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.49","@mariozechner/pi-ai":"0.64.0","@mariozechner/pi-tui":"0.64.0","@mozilla/readability":"^0.6.0","@agentclientprotocol/sdk":"0.17.1","@anthropic-ai/vertex-sdk":"^0.14.4","@modelcontextprotocol/sdk":"1.29.0","@mariozechner/pi-agent-core":"0.64.0","@mariozechner/pi-coding-agent":"0.64.0","@matrix-org/matrix-sdk-crypto-wasm":"18.0.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^29.0.1","oxfmt":"0.43.0","oxlint":"^1.58.0","tsdown":"0.21.7","vitest":"^4.1.2","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.18.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.2","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260331.1"},"peerDependencies":{"node-llama-cpp":"3.18.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.3.31_1774992515726_0.6425306933060793","host":"s3://npm-registry-packages-npm-production"}},"2026.4.1-beta.1":{"name":"openclaw","version":"2026.4.1-beta.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.4.1-beta.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"afd0a0f31f2187229c76301c1b0703fc3e7fdd7b","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.4.1-beta.1.tgz","fileCount":21106,"integrity":"sha512-tZ5MZ2ARZ8aBh/BnE85woCNJJUaTNX796pFxB/HZml/CrizWrv6R/+p7F2XVmjkClNyBEJgNLFZ2O7sC0s19JA==","signatures":[{"sig":"MEUCIC3fsnQOxs4EKboQONiMGBLLJff/SYyHeOWKe1XM6fayAiEA17EYm3+qVTTzC/qWVjd6fxo5hqmLWoCrjXvtp6JAK4o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openclaw@2026.4.1-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":192738720},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.13","hono":"4.12.9","axios":"1.13.6","yauzl":"3.2.1","request":"npm:@cypress/request@3.0.10","file-type":"22.0.0","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","path-to-regexp":"8.4.0","fast-xml-parser":"5.5.7","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.49","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@tloncorp/tlon-skill","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"],"ignoredBuiltDependencies":["@discordjs/opus","koffi"]},"type":"module","_from":"file:preflight-tarball/openclaw-2026.4.1-beta.1.tgz","engines":{"node":">=22.14.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./extension-api":"./dist/extensionAPI.js","./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/xai":{"types":"./dist/plugin-sdk/xai.d.ts","default":"./dist/plugin-sdk/xai.js"},"./plugin-sdk/zod":{"types":"./dist/plugin-sdk/zod.d.ts","default":"./dist/plugin-sdk/zod.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/vllm":{"types":"./dist/plugin-sdk/vllm.d.ts","default":"./dist/plugin-sdk/vllm.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/setup":{"types":"./dist/plugin-sdk/setup.d.ts","default":"./dist/plugin-sdk/setup.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/chutes":{"types":"./dist/plugin-sdk/chutes.d.ts","default":"./dist/plugin-sdk/chutes.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/google":{"types":"./dist/plugin-sdk/google.d.ts","default":"./dist/plugin-sdk/google.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/nvidia":{"types":"./dist/plugin-sdk/nvidia.d.ts","default":"./dist/plugin-sdk/nvidia.js"},"./plugin-sdk/ollama":{"types":"./dist/plugin-sdk/ollama.d.ts","default":"./dist/plugin-sdk/ollama.js"},"./plugin-sdk/openai":{"types":"./dist/plugin-sdk/openai.d.ts","default":"./dist/plugin-sdk/openai.js"},"./plugin-sdk/sglang":{"types":"./dist/plugin-sdk/sglang.d.ts","default":"./dist/plugin-sdk/sglang.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/speech":{"types":"./dist/plugin-sdk/speech.d.ts","default":"./dist/plugin-sdk/speech.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/venice":{"types":"./dist/plugin-sdk/venice.d.ts","default":"./dist/plugin-sdk/venice.js"},"./plugin-sdk/browser":{"types":"./dist/plugin-sdk/browser.d.ts","default":"./dist/plugin-sdk/browser.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/minimax":{"types":"./dist/plugin-sdk/minimax.d.ts","default":"./dist/plugin-sdk/minimax.js"},"./plugin-sdk/mistral":{"types":"./dist/plugin-sdk/mistral.d.ts","default":"./dist/plugin-sdk/mistral.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/qianfan":{"types":"./dist/plugin-sdk/qianfan.d.ts","default":"./dist/plugin-sdk/qianfan.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/sandbox":{"types":"./dist/plugin-sdk/sandbox.d.ts","default":"./dist/plugin-sdk/sandbox.js"},"./plugin-sdk/testing":{"types":"./dist/plugin-sdk/testing.d.ts","default":"./dist/plugin-sdk/testing.js"},"./plugin-sdk/byteplus":{"types":"./dist/plugin-sdk/byteplus.d.ts","default":"./dist/plugin-sdk/byteplus.js"},"./plugin-sdk/deepseek":{"types":"./dist/plugin-sdk/deepseek.d.ts","default":"./dist/plugin-sdk/deepseek.js"},"./plugin-sdk/kilocode":{"types":"./dist/plugin-sdk/kilocode.d.ts","default":"./dist/plugin-sdk/kilocode.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/moonshot":{"types":"./dist/plugin-sdk/moonshot.d.ts","default":"./dist/plugin-sdk/moonshot.js"},"./plugin-sdk/opencode":{"types":"./dist/plugin-sdk/opencode.d.ts","default":"./dist/plugin-sdk/opencode.js"},"./plugin-sdk/together":{"types":"./dist/plugin-sdk/together.d.ts","default":"./dist/plugin-sdk/together.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/direct-dm":{"types":"./dist/plugin-sdk/direct-dm.d.ts","default":"./dist/plugin-sdk/direct-dm.js"},"./plugin-sdk/file-lock":{"types":"./dist/plugin-sdk/file-lock.d.ts","default":"./dist/plugin-sdk/file-lock.js"},"./plugin-sdk/line-core":{"types":"./dist/plugin-sdk/line-core.d.ts","default":"./dist/plugin-sdk/line-core.js"},"./plugin-sdk/synthetic":{"types":"./dist/plugin-sdk/synthetic.d.ts","default":"./dist/plugin-sdk/synthetic.js"},"./plugin-sdk/temp-path":{"types":"./dist/plugin-sdk/temp-path.d.ts","default":"./dist/plugin-sdk/temp-path.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/web-media":{"types":"./dist/plugin-sdk/web-media.d.ts","default":"./dist/plugin-sdk/web-media.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/allow-from":{"types":"./dist/plugin-sdk/allow-from.d.ts","default":"./dist/plugin-sdk/allow-from.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/json-store":{"types":"./dist/plugin-sdk/json-store.d.ts","default":"./dist/plugin-sdk/json-store.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/slack-core":{"types":"./dist/plugin-sdk/slack-core.d.ts","default":"./dist/plugin-sdk/slack-core.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/volcengine":{"types":"./dist/plugin-sdk/volcengine.d.ts","default":"./dist/plugin-sdk/volcengine.js"},"./plugin-sdk/zalo-setup":{"types":"./dist/plugin-sdk/zalo-setup.d.ts","default":"./dist/plugin-sdk/zalo-setup.js"},"./plugin-sdk/acp-runtime":{"types":"./dist/plugin-sdk/acp-runtime.d.ts","default":"./dist/plugin-sdk/acp-runtime.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/cli-backend":{"types":"./dist/plugin-sdk/cli-backend.d.ts","default":"./dist/plugin-sdk/cli-backend.js"},"./plugin-sdk/cli-runtime":{"types":"./dist/plugin-sdk/cli-runtime.d.ts","default":"./dist/plugin-sdk/cli-runtime.js"},"./plugin-sdk/huggingface":{"types":"./dist/plugin-sdk/huggingface.d.ts","default":"./dist/plugin-sdk/huggingface.js"},"./plugin-sdk/irc-surface":{"types":"./dist/plugin-sdk/irc-surface.d.ts","default":"./dist/plugin-sdk/irc-surface.js"},"./plugin-sdk/kimi-coding":{"types":"./dist/plugin-sdk/kimi-coding.d.ts","default":"./dist/plugin-sdk/kimi-coding.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/modelstudio":{"types":"./dist/plugin-sdk/modelstudio.d.ts","default":"./dist/plugin-sdk/modelstudio.js"},"./plugin-sdk/opencode-go":{"types":"./dist/plugin-sdk/opencode-go.d.ts","default":"./dist/plugin-sdk/opencode-go.js"},"./plugin-sdk/request-url":{"types":"./dist/plugin-sdk/request-url.d.ts","default":"./dist/plugin-sdk/request-url.js"},"./plugin-sdk/runtime-env":{"types":"./dist/plugin-sdk/runtime-env.d.ts","default":"./dist/plugin-sdk/runtime-env.js"},"./plugin-sdk/setup-tools":{"types":"./dist/plugin-sdk/setup-tools.d.ts","default":"./dist/plugin-sdk/setup-tools.js"},"./plugin-sdk/speech-core":{"types":"./dist/plugin-sdk/speech-core.d.ts","default":"./dist/plugin-sdk/speech-core.js"},"./plugin-sdk/state-paths":{"types":"./dist/plugin-sdk/state-paths.d.ts","default":"./dist/plugin-sdk/state-paths.js"},"./plugin-sdk/account-core":{"types":"./dist/plugin-sdk/account-core.d.ts","default":"./dist/plugin-sdk/account-core.js"},"./plugin-sdk/command-auth":{"types":"./dist/plugin-sdk/command-auth.d.ts","default":"./dist/plugin-sdk/command-auth.js"},"./plugin-sdk/discord-core":{"types":"./dist/plugin-sdk/discord-core.d.ts","default":"./dist/plugin-sdk/discord-core.js"},"./plugin-sdk/feishu-setup":{"types":"./dist/plugin-sdk/feishu-setup.d.ts","default":"./dist/plugin-sdk/feishu-setup.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/hook-runtime":{"types":"./dist/plugin-sdk/hook-runtime.d.ts","default":"./dist/plugin-sdk/hook-runtime.js"},"./plugin-sdk/host-runtime":{"types":"./dist/plugin-sdk/host-runtime.d.ts","default":"./dist/plugin-sdk/host-runtime.js"},"./plugin-sdk/lazy-runtime":{"types":"./dist/plugin-sdk/lazy-runtime.d.ts","default":"./dist/plugin-sdk/lazy-runtime.js"},"./plugin-sdk/line-runtime":{"types":"./dist/plugin-sdk/line-runtime.d.ts","default":"./dist/plugin-sdk/line-runtime.js"},"./plugin-sdk/line-surface":{"types":"./dist/plugin-sdk/line-surface.d.ts","default":"./dist/plugin-sdk/line-surface.js"},"./plugin-sdk/logging-core":{"types":"./dist/plugin-sdk/logging-core.d.ts","default":"./dist/plugin-sdk/logging-core.js"},"./plugin-sdk/plugin-entry":{"types":"./dist/plugin-sdk/plugin-entry.d.ts","default":"./dist/plugin-sdk/plugin-entry.js"},"./plugin-sdk/secret-input":{"types":"./dist/plugin-sdk/secret-input.d.ts","default":"./dist/plugin-sdk/secret-input.js"},"./plugin-sdk/ssrf-runtime":{"types":"./dist/plugin-sdk/ssrf-runtime.d.ts","default":"./dist/plugin-sdk/ssrf-runtime.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/webhook-path":{"types":"./dist/plugin-sdk/webhook-path.d.ts","default":"./dist/plugin-sdk/webhook-path.js"},"./plugin-sdk/agent-runtime":{"types":"./dist/plugin-sdk/agent-runtime.d.ts","default":"./dist/plugin-sdk/agent-runtime.js"},"./plugin-sdk/boolean-param":{"types":"./dist/plugin-sdk/boolean-param.d.ts","default":"./dist/plugin-sdk/boolean-param.js"},"./plugin-sdk/channel-setup":{"types":"./dist/plugin-sdk/channel-setup.d.ts","default":"./dist/plugin-sdk/channel-setup.js"},"./plugin-sdk/error-runtime":{"types":"./dist/plugin-sdk/error-runtime.d.ts","default":"./dist/plugin-sdk/error-runtime.js"},"./plugin-sdk/fetch-runtime":{"types":"./dist/plugin-sdk/fetch-runtime.d.ts","default":"./dist/plugin-sdk/fetch-runtime.js"},"./plugin-sdk/infra-runtime":{"types":"./dist/plugin-sdk/infra-runtime.d.ts","default":"./dist/plugin-sdk/infra-runtime.js"},"./plugin-sdk/matrix-helper":{"types":"./dist/plugin-sdk/matrix-helper.d.ts","default":"./dist/plugin-sdk/matrix-helper.js"},"./plugin-sdk/media-runtime":{"types":"./dist/plugin-sdk/media-runtime.d.ts","default":"./dist/plugin-sdk/media-runtime.js"},"./plugin-sdk/param-readers":{"types":"./dist/plugin-sdk/param-readers.d.ts","default":"./dist/plugin-sdk/param-readers.js"},"./plugin-sdk/provider-auth":{"types":"./dist/plugin-sdk/provider-auth.d.ts","default":"./dist/plugin-sdk/provider-auth.js"},"./plugin-sdk/provider-http":{"types":"./dist/plugin-sdk/provider-http.d.ts","default":"./dist/plugin-sdk/provider-http.js"},"./plugin-sdk/reply-history":{"types":"./dist/plugin-sdk/reply-history.d.ts","default":"./dist/plugin-sdk/reply-history.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/reply-runtime":{"types":"./dist/plugin-sdk/reply-runtime.d.ts","default":"./dist/plugin-sdk/reply-runtime.js"},"./plugin-sdk/retry-runtime":{"types":"./dist/plugin-sdk/retry-runtime.d.ts","default":"./dist/plugin-sdk/retry-runtime.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/setup-runtime":{"types":"./dist/plugin-sdk/setup-runtime.d.ts","default":"./dist/plugin-sdk/setup-runtime.js"},"./plugin-sdk/slack-account":{"types":"./dist/plugin-sdk/slack-account.d.ts","default":"./dist/plugin-sdk/slack-account.js"},"./plugin-sdk/slack-surface":{"types":"./dist/plugin-sdk/slack-surface.d.ts","default":"./dist/plugin-sdk/slack-surface.js"},"./plugin-sdk/slack-targets":{"types":"./dist/plugin-sdk/slack-targets.d.ts","default":"./dist/plugin-sdk/slack-targets.js"},"./plugin-sdk/telegram-core":{"types":"./dist/plugin-sdk/telegram-core.d.ts","default":"./dist/plugin-sdk/telegram-core.js"},"./plugin-sdk/whatsapp-core":{"types":"./dist/plugin-sdk/whatsapp-core.d.ts","default":"./dist/plugin-sdk/whatsapp-core.js"},"./plugin-sdk/windows-spawn":{"types":"./dist/plugin-sdk/windows-spawn.d.ts","default":"./dist/plugin-sdk/windows-spawn.js"},"./plugin-sdk/amazon-bedrock":{"types":"./dist/plugin-sdk/amazon-bedrock.d.ts","default":"./dist/plugin-sdk/amazon-bedrock.js"},"./plugin-sdk/channel-policy":{"types":"./dist/plugin-sdk/channel-policy.d.ts","default":"./dist/plugin-sdk/channel-policy.js"},"./plugin-sdk/channel-status":{"types":"./dist/plugin-sdk/channel-status.d.ts","default":"./dist/plugin-sdk/channel-status.js"},"./plugin-sdk/config-runtime":{"types":"./dist/plugin-sdk/config-runtime.d.ts","default":"./dist/plugin-sdk/config-runtime.js"},"./plugin-sdk/matrix-surface":{"types":"./dist/plugin-sdk/matrix-surface.d.ts","default":"./dist/plugin-sdk/matrix-surface.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/ollama-surface":{"types":"./dist/plugin-sdk/ollama-surface.d.ts","default":"./dist/plugin-sdk/ollama-surface.js"},"./plugin-sdk/plugin-runtime":{"types":"./dist/plugin-sdk/plugin-runtime.d.ts","default":"./dist/plugin-sdk/plugin-runtime.js"},"./plugin-sdk/provider-entry":{"types":"./dist/plugin-sdk/provider-entry.d.ts","default":"./dist/plugin-sdk/provider-entry.js"},"./plugin-sdk/provider-setup":{"types":"./dist/plugin-sdk/provider-setup.d.ts","default":"./dist/plugin-sdk/provider-setup.js"},"./plugin-sdk/provider-tools":{"types":"./dist/plugin-sdk/provider-tools.d.ts","default":"./dist/plugin-sdk/provider-tools.js"},"./plugin-sdk/provider-usage":{"types":"./dist/plugin-sdk/provider-usage.d.ts","default":"./dist/plugin-sdk/provider-usage.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/signal-account":{"types":"./dist/plugin-sdk/signal-account.d.ts","default":"./dist/plugin-sdk/signal-account.js"},"./plugin-sdk/signal-surface":{"types":"./dist/plugin-sdk/signal-surface.d.ts","default":"./dist/plugin-sdk/signal-surface.js"},"./plugin-sdk/speech-runtime":{"types":"./dist/plugin-sdk/speech-runtime.d.ts","default":"./dist/plugin-sdk/speech-runtime.js"},"./plugin-sdk/status-helpers":{"types":"./dist/plugin-sdk/status-helpers.d.ts","default":"./dist/plugin-sdk/status-helpers.js"},"./plugin-sdk/account-helpers":{"types":"./dist/plugin-sdk/account-helpers.d.ts","default":"./dist/plugin-sdk/account-helpers.js"},"./plugin-sdk/browser-runtime":{"types":"./dist/plugin-sdk/browser-runtime.d.ts","default":"./dist/plugin-sdk/browser-runtime.js"},"./plugin-sdk/browser-support":{"types":"./dist/plugin-sdk/browser-support.d.ts","default":"./dist/plugin-sdk/browser-support.js"},"./plugin-sdk/channel-actions":{"types":"./dist/plugin-sdk/channel-actions.d.ts","default":"./dist/plugin-sdk/channel-actions.js"},"./plugin-sdk/channel-inbound":{"types":"./dist/plugin-sdk/channel-inbound.d.ts","default":"./dist/plugin-sdk/channel-inbound.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.js"},"./plugin-sdk/channel-runtime":{"types":"./dist/plugin-sdk/channel-runtime.d.ts","default":"./dist/plugin-sdk/channel-runtime.js"},"./plugin-sdk/channel-targets":{"types":"./dist/plugin-sdk/channel-targets.d.ts","default":"./dist/plugin-sdk/channel-targets.js"},"./plugin-sdk/command-surface":{"types":"./dist/plugin-sdk/command-surface.d.ts","default":"./dist/plugin-sdk/command-surface.js"},"./plugin-sdk/discord-account":{"types":"./dist/plugin-sdk/discord-account.d.ts","default":"./dist/plugin-sdk/discord-account.js"},"./plugin-sdk/discord-surface":{"types":"./dist/plugin-sdk/discord-surface.d.ts","default":"./dist/plugin-sdk/discord-surface.js"},"./plugin-sdk/gateway-runtime":{"types":"./dist/plugin-sdk/gateway-runtime.d.ts","default":"./dist/plugin-sdk/gateway-runtime.js"},"./plugin-sdk/process-runtime":{"types":"./dist/plugin-sdk/process-runtime.d.ts","default":"./dist/plugin-sdk/process-runtime.js"},"./plugin-sdk/provider-stream":{"types":"./dist/plugin-sdk/provider-stream.d.ts","default":"./dist/plugin-sdk/provider-stream.js"},"./plugin-sdk/webhook-ingress":{"types":"./dist/plugin-sdk/webhook-ingress.d.ts","default":"./dist/plugin-sdk/webhook-ingress.js"},"./plugin-sdk/whatsapp-shared":{"types":"./dist/plugin-sdk/whatsapp-shared.d.ts","default":"./dist/plugin-sdk/whatsapp-shared.js"},"./plugin-sdk/anthropic-vertex":{"types":"./dist/plugin-sdk/anthropic-vertex.d.ts","default":"./dist/plugin-sdk/anthropic-vertex.js"},"./plugin-sdk/approval-runtime":{"types":"./dist/plugin-sdk/approval-runtime.d.ts","default":"./dist/plugin-sdk/approval-runtime.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/device-bootstrap":{"types":"./dist/plugin-sdk/device-bootstrap.d.ts","default":"./dist/plugin-sdk/device-bootstrap.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/discord-timeouts":{"types":"./dist/plugin-sdk/discord-timeouts.d.ts","default":"./dist/plugin-sdk/discord-timeouts.js"},"./plugin-sdk/extension-shared":{"types":"./dist/plugin-sdk/extension-shared.d.ts","default":"./dist/plugin-sdk/extension-shared.js"},"./plugin-sdk/global-singleton":{"types":"./dist/plugin-sdk/global-singleton.d.ts","default":"./dist/plugin-sdk/global-singleton.js"},"./plugin-sdk/image-generation":{"types":"./dist/plugin-sdk/image-generation.d.ts","default":"./dist/plugin-sdk/image-generation.js"},"./plugin-sdk/outbound-runtime":{"types":"./dist/plugin-sdk/outbound-runtime.d.ts","default":"./dist/plugin-sdk/outbound-runtime.js"},"./plugin-sdk/provider-onboard":{"types":"./dist/plugin-sdk/provider-onboard.d.ts","default":"./dist/plugin-sdk/provider-onboard.js"},"./plugin-sdk/security-runtime":{"types":"./dist/plugin-sdk/security-runtime.d.ts","default":"./dist/plugin-sdk/security-runtime.js"},"./plugin-sdk/telegram-account":{"types":"./dist/plugin-sdk/telegram-account.d.ts","default":"./dist/plugin-sdk/telegram-account.js"},"./plugin-sdk/telegram-surface":{"types":"./dist/plugin-sdk/telegram-surface.d.ts","default":"./dist/plugin-sdk/telegram-surface.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/whatsapp-surface":{"types":"./dist/plugin-sdk/whatsapp-surface.d.ts","default":"./dist/plugin-sdk/whatsapp-surface.js"},"./plugin-sdk/whatsapp-targets":{"types":"./dist/plugin-sdk/whatsapp-targets.d.ts","default":"./dist/plugin-sdk/whatsapp-targets.js"},"./plugin-sdk/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.js"},"./plugin-sdk/command-detection":{"types":"./dist/plugin-sdk/command-detection.d.ts","default":"./dist/plugin-sdk/command-detection.js"},"./plugin-sdk/directory-runtime":{"types":"./dist/plugin-sdk/directory-runtime.d.ts","default":"./dist/plugin-sdk/directory-runtime.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/mattermost-policy":{"types":"./dist/plugin-sdk/mattermost-policy.d.ts","default":"./dist/plugin-sdk/mattermost-policy.js"},"./plugin-sdk/provider-env-vars":{"types":"./dist/plugin-sdk/provider-env-vars.d.ts","default":"./dist/plugin-sdk/provider-env-vars.js"},"./plugin-sdk/provider-moonshot":{"types":"./dist/plugin-sdk/provider-moonshot.d.ts","default":"./dist/plugin-sdk/provider-moonshot.js"},"./plugin-sdk/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.js"},"./plugin-sdk/bluebubbles-policy":{"types":"./dist/plugin-sdk/bluebubbles-policy.d.ts","default":"./dist/plugin-sdk/bluebubbles-policy.js"},"./plugin-sdk/collection-runtime":{"types":"./dist/plugin-sdk/collection-runtime.d.ts","default":"./dist/plugin-sdk/collection-runtime.js"},"./plugin-sdk/diagnostic-runtime":{"types":"./dist/plugin-sdk/diagnostic-runtime.d.ts","default":"./dist/plugin-sdk/diagnostic-runtime.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/command-auth-native":{"types":"./dist/plugin-sdk/command-auth-native.d.ts","default":"./dist/plugin-sdk/command-auth-native.js"},"./plugin-sdk/discord-session-key":{"types":"./dist/plugin-sdk/discord-session-key.d.ts","default":"./dist/plugin-sdk/discord-session-key.js"},"./plugin-sdk/feishu-conversation":{"types":"./dist/plugin-sdk/feishu-conversation.d.ts","default":"./dist/plugin-sdk/feishu-conversation.js"},"./plugin-sdk/interactive-runtime":{"types":"./dist/plugin-sdk/interactive-runtime.d.ts","default":"./dist/plugin-sdk/interactive-runtime.js"},"./plugin-sdk/media-understanding":{"types":"./dist/plugin-sdk/media-understanding.d.ts","default":"./dist/plugin-sdk/media-understanding.js"},"./plugin-sdk/provider-auth-login":{"types":"./dist/plugin-sdk/provider-auth-login.d.ts","default":"./dist/plugin-sdk/provider-auth-login.js"},"./plugin-sdk/provider-web-search":{"types":"./dist/plugin-sdk/provider-web-search.d.ts","default":"./dist/plugin-sdk/provider-web-search.js"},"./plugin-sdk/slack-target-parser":{"types":"./dist/plugin-sdk/slack-target-parser.d.ts","default":"./dist/plugin-sdk/slack-target-parser.js"},"./plugin-sdk/telegram-allow-from":{"types":"./dist/plugin-sdk/telegram-allow-from.d.ts","default":"./dist/plugin-sdk/telegram-allow-from.js"},"./plugin-sdk/conversation-runtime":{"types":"./dist/plugin-sdk/conversation-runtime.d.ts","default":"./dist/plugin-sdk/conversation-runtime.js"},"./plugin-sdk/github-copilot-login":{"types":"./dist/plugin-sdk/github-copilot-login.d.ts","default":"./dist/plugin-sdk/github-copilot-login.js"},"./plugin-sdk/github-copilot-token":{"types":"./dist/plugin-sdk/github-copilot-token.d.ts","default":"./dist/plugin-sdk/github-copilot-token.js"},"./plugin-sdk/matrix-runtime-heavy":{"types":"./dist/plugin-sdk/matrix-runtime-heavy.d.ts","default":"./dist/plugin-sdk/matrix-runtime-heavy.js"},"./plugin-sdk/provider-auth-result":{"types":"./dist/plugin-sdk/provider-auth-result.d.ts","default":"./dist/plugin-sdk/provider-auth-result.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/channel-config-schema":{"types":"./dist/plugin-sdk/channel-config-schema.d.ts","default":"./dist/plugin-sdk/channel-config-schema.js"},"./plugin-sdk/channel-config-writes":{"types":"./dist/plugin-sdk/channel-config-writes.d.ts","default":"./dist/plugin-sdk/channel-config-writes.js"},"./plugin-sdk/cloudflare-ai-gateway":{"types":"./dist/plugin-sdk/cloudflare-ai-gateway.d.ts","default":"./dist/plugin-sdk/cloudflare-ai-gateway.js"},"./plugin-sdk/image-generation-core":{"types":"./dist/plugin-sdk/image-generation-core.d.ts","default":"./dist/plugin-sdk/image-generation-core.js"},"./plugin-sdk/matrix-runtime-shared":{"types":"./dist/plugin-sdk/matrix-runtime-shared.d.ts","default":"./dist/plugin-sdk/matrix-runtime-shared.js"},"./plugin-sdk/provider-auth-api-key":{"types":"./dist/plugin-sdk/provider-auth-api-key.d.ts","default":"./dist/plugin-sdk/provider-auth-api-key.js"},"./plugin-sdk/provider-auth-runtime":{"types":"./dist/plugin-sdk/provider-auth-runtime.d.ts","default":"./dist/plugin-sdk/provider-auth-runtime.js"},"./plugin-sdk/provider-model-shared":{"types":"./dist/plugin-sdk/provider-model-shared.d.ts","default":"./dist/plugin-sdk/provider-model-shared.js"},"./plugin-sdk/provider-zai-endpoint":{"types":"./dist/plugin-sdk/provider-zai-endpoint.d.ts","default":"./dist/plugin-sdk/provider-zai-endpoint.js"},"./plugin-sdk/setup-adapter-runtime":{"types":"./dist/plugin-sdk/setup-adapter-runtime.d.ts","default":"./dist/plugin-sdk/setup-adapter-runtime.js"},"./plugin-sdk/slack-runtime-surface":{"types":"./dist/plugin-sdk/slack-runtime-surface.d.ts","default":"./dist/plugin-sdk/slack-runtime-surface.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-reply-pipeline":{"types":"./dist/plugin-sdk/channel-reply-pipeline.d.ts","default":"./dist/plugin-sdk/channel-reply-pipeline.js"},"./plugin-sdk/markdown-table-runtime":{"types":"./dist/plugin-sdk/markdown-table-runtime.d.ts","default":"./dist/plugin-sdk/markdown-table-runtime.js"},"./plugin-sdk/matrix-runtime-surface":{"types":"./dist/plugin-sdk/matrix-runtime-surface.d.ts","default":"./dist/plugin-sdk/matrix-runtime-surface.js"},"./plugin-sdk/matrix-thread-bindings":{"types":"./dist/plugin-sdk/matrix-thread-bindings.d.ts","default":"./dist/plugin-sdk/matrix-thread-bindings.js"},"./plugin-sdk/memory-core-host-query":{"types":"./dist/plugin-sdk/memory-core-host-query.d.ts","default":"./dist/plugin-sdk/memory-core-host-query.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/webhook-request-guards":{"types":"./dist/plugin-sdk/webhook-request-guards.d.ts","default":"./dist/plugin-sdk/webhook-request-guards.js"},"./plugin-sdk/whatsapp-auth-presence":{"types":"./dist/plugin-sdk/whatsapp-auth-presence.d.ts","default":"./dist/plugin-sdk/whatsapp-auth-presence.js"},"./plugin-sdk/agent-config-primitives":{"types":"./dist/plugin-sdk/agent-config-primitives.d.ts","default":"./dist/plugin-sdk/agent-config-primitives.js"},"./plugin-sdk/discord-runtime-surface":{"types":"./dist/plugin-sdk/discord-runtime-surface.d.ts","default":"./dist/plugin-sdk/discord-runtime-surface.js"},"./plugin-sdk/discord-thread-bindings":{"types":"./dist/plugin-sdk/discord-thread-bindings.d.ts","default":"./dist/plugin-sdk/discord-thread-bindings.js"},"./plugin-sdk/memory-core-host-secret":{"types":"./dist/plugin-sdk/memory-core-host-secret.d.ts","default":"./dist/plugin-sdk/memory-core-host-secret.js"},"./plugin-sdk/memory-core-host-status":{"types":"./dist/plugin-sdk/memory-core-host-status.d.ts","default":"./dist/plugin-sdk/memory-core-host-status.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/modelstudio-definitions":{"types":"./dist/plugin-sdk/modelstudio-definitions.d.ts","default":"./dist/plugin-sdk/modelstudio-definitions.js"},"./plugin-sdk/provider-catalog-shared":{"types":"./dist/plugin-sdk/provider-catalog-shared.d.ts","default":"./dist/plugin-sdk/provider-catalog-shared.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/telegram-command-config":{"types":"./dist/plugin-sdk/telegram-command-config.d.ts","default":"./dist/plugin-sdk/telegram-command-config.js"},"./plugin-sdk/thread-bindings-runtime":{"types":"./dist/plugin-sdk/thread-bindings-runtime.d.ts","default":"./dist/plugin-sdk/thread-bindings-runtime.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/memory-core-engine-runtime":{"types":"./dist/plugin-sdk/memory-core-engine-runtime.d.ts","default":"./dist/plugin-sdk/memory-core-engine-runtime.js"},"./plugin-sdk/self-hosted-provider-setup":{"types":"./dist/plugin-sdk/self-hosted-provider-setup.d.ts","default":"./dist/plugin-sdk/self-hosted-provider-setup.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/memory-core-host-engine-qmd":{"types":"./dist/plugin-sdk/memory-core-host-engine-qmd.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-qmd.js"},"./plugin-sdk/memory-core-host-multimodal":{"types":"./dist/plugin-sdk/memory-core-host-multimodal.d.ts","default":"./dist/plugin-sdk/memory-core-host-multimodal.js"},"./plugin-sdk/memory-core-host-runtime-cli":{"types":"./dist/plugin-sdk/memory-core-host-runtime-cli.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-cli.js"},"./plugin-sdk/memory-core-host-runtime-core":{"types":"./dist/plugin-sdk/memory-core-host-runtime-core.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-core.js"},"./plugin-sdk/memory-core-host-runtime-files":{"types":"./dist/plugin-sdk/memory-core-host-runtime-files.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-files.js"},"./plugin-sdk/memory-core-host-engine-storage":{"types":"./dist/plugin-sdk/memory-core-host-engine-storage.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-storage.js"},"./plugin-sdk/memory-core-host-engine-embeddings":{"types":"./dist/plugin-sdk/memory-core-host-engine-embeddings.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-embeddings.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"}},"scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"node scripts/run-oxlint.mjs","test":"node scripts/test-parallel.mjs","tsgo":"node scripts/run-tsgo.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node scripts/check-plugin-sdk-exports.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:no-conflict-markers && pnpm check:host-env-policy:swift && pnpm tsgo && pnpm lint && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"node --import tsx scripts/openclaw-prepack.ts","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"node scripts/run-oxlint.mjs --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","test:max":"node scripts/test-parallel.mjs --profile max","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"node scripts/test-live.mjs","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-i18n-glossary && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","prepush:ci":"bash scripts/prepush-ci.sh","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity","audit:seams":"node scripts/audit-seams.mjs","canon:check":"node scripts/canon.mjs check","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall-bundled-plugins.mjs","test:serial":"node scripts/test-parallel.mjs --profile serial","ts-topology":"node --import tsx scripts/ts-topology.ts","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testPlayDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:changed":"pnpm test -- --changed origin/main","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","canon:enforce":"node scripts/canon.mjs enforce --json","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"pnpm check:base-config-schema && pnpm check:bundled-channel-config-metadata && pnpm check:bundled-provider-auth-env-vars && pnpm config:docs:check && pnpm plugin-sdk:check-exports && pnpm plugin-sdk:facades:check && pnpm plugin-sdk:api:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && node --import tsx scripts/release-check.ts","test:channels":"node scripts/test-parallel.mjs --surface channels","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:contracts":"pnpm test:contracts:channels && pnpm test:contracts:plugins","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:extension":"node scripts/test-extension.mjs","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installPlayDebug","config:docs:gen":"node --import tsx scripts/generate-config-doc-baseline.ts --write","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:openwebui && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:mcp-channels && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"node scripts/test-parallel.mjs --surface extensions","android:assemble":"cd apps/android && ./gradlew :app:assemblePlayDebug","canon:check:json":"node scripts/canon.mjs check --json","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","plugin-sdk:usage":"node --import tsx scripts/analyze-plugin-sdk-usage.ts","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:changed:max":"node scripts/test-parallel.mjs --profile max --changed origin/main","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","config:docs:check":"node --import tsx scripts/generate-config-doc-baseline.ts --check","config:schema:gen":"node --import tsx scripts/generate-base-config-schema.ts --write","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","test:perf:imports":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node scripts/check-plugin-sdk-exports.mjs","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","plugin-sdk:api:gen":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:e2e:openshell":"OPENCLAW_E2E_OPENSHELL=1 vitest run --config vitest.e2e.config.ts test/openshell-sandbox.e2e.test.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","test:startup:bench":"node --import tsx scripts/bench-cli-startup.ts","config:channels:gen":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --write","config:schema:check":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:startup:memory":"node scripts/check-cli-startup-memory.mjs","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","plugin-sdk:api:check":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check","test:build:singleton":"node scripts/test-built-plugin-singleton.mjs","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","config:channels:check":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check","test:coverage:changed":"vitest run --config vitest.unit.config.ts --coverage --changed origin/main","test:docker:openwebui":"bash scripts/e2e/openwebui-docker.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","plugin-sdk:facades:gen":"node scripts/generate-plugin-sdk-facades.mjs --write","test:contracts:plugins":"OPENCLAW_TEST_PROFILE=serial pnpm exec vitest run --config vitest.contracts.config.ts src/plugins/contracts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","test:perf:profile:main":"node scripts/run-vitest-profile.mjs main","android:run:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","plugin-sdk:sync-exports":"node scripts/sync-plugin-sdk-exports.mjs","test:contracts:channels":"OPENCLAW_TEST_PROFILE=serial pnpm exec vitest run --config vitest.contracts.config.ts src/channels/plugins/contracts","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:startup:bench:save":"node --import tsx scripts/bench-cli-startup.ts --preset all --runs 5 --warmup 1 --output .artifacts/cli-startup-bench-all.json","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","android:test:third-party":"cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:check-i18n-glossary":"node scripts/check-docs-i18n-glossary.mjs","docs:check-links:anchors":"node scripts/docs-link-audit.mjs --anchors","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","plugin-sdk:check-exports":"node scripts/sync-plugin-sdk-exports.mjs --check","plugin-sdk:facades:check":"node scripts/generate-plugin-sdk-facades.mjs --check","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:mcp-channels":"bash scripts/e2e/mcp-channels-docker.sh","test:perf:profile:runner":"node scripts/run-vitest-profile.mjs runner","test:perf:update-timings":"node scripts/test-update-timings.mjs","test:startup:bench:check":"node scripts/test-cli-startup-bench-budget.mjs","test:startup:bench:smoke":"node --import tsx scripts/bench-cli-startup.ts --preset real --case gatewayStatusJson --runs 1 --warmup 0 --output .artifacts/cli-startup-bench-smoke.json","check:no-conflict-markers":"node scripts/check-no-conflict-markers.mjs","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","release:plugins:npm:check":"node --import tsx scripts/plugin-npm-release-check.ts","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:docker:live-acp-bind":"bash scripts/test-live-acp-bind-docker.sh","test:parallels:npm-update":"bash scripts/e2e/parallels-npm-update-smoke.sh","test:perf:imports:changed":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test -- --changed origin/main","test:startup:bench:update":"node scripts/test-update-cli-startup-bench.mjs","test:voicecall:closedloop":"node scripts/test-voicecall-closedloop.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","android:install:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","android:assemble:third-party":"cd apps/android && ./gradlew :app:assembleThirdPartyDebug","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","test:docker:live-cli-backend":"bash scripts/test-live-cli-backend-docker.sh","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","test:gateway:watch-regression":"node scripts/check-gateway-watch-regression.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","test:perf:update-memory-hotspots":"node scripts/test-update-memory-hotspots.mjs","lint:plugins:no-extension-imports":"node scripts/check-plugin-extension-import-boundary.mjs","stage:bundled-plugin-runtime-deps":"node scripts/stage-bundled-plugin-runtime-deps.mjs","lint:web-search-provider-boundaries":"node scripts/check-web-search-provider-boundaries.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","test:perf:update-timings:extensions":"node scripts/test-update-timings.mjs --config vitest.extensions.config.ts","check:bundled-provider-auth-env-vars":"node scripts/generate-bundled-provider-auth-env-vars.mjs --check","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","check:bundled-channel-config-metadata":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check","lint:plugins:no-extension-src-imports":"node --import tsx scripts/check-no-extension-src-imports.ts","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","release:openclaw:npm:verify-published":"node --import tsx scripts/openclaw-npm-postpublish-verify.ts","lint:extensions:no-plugin-sdk-internal":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal","lint:extensions:no-src-outside-plugin-sdk":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk","lint:plugins:plugin-sdk-subpaths-exported":"node scripts/check-plugin-sdk-subpath-exports.mjs","lint:extensions:no-relative-outside-package":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package","lint:plugins:no-extension-test-core-imports":"node --import tsx scripts/check-no-extension-test-core-imports.ts","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2bccb063-cd01-4335-8b61-f7859f1dd4e2"}},"_resolved":"/home/runner/work/openclaw/openclaw/preflight-tarball/openclaw-2026.4.1-beta.1.tgz","_integrity":"sha512-tZ5MZ2ARZ8aBh/BnE85woCNJJUaTNX796pFxB/HZml/CrizWrv6R/+p7F2XVmjkClNyBEJgNLFZ2O7sC0s19JA==","repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.20.0","ajv":"^8.18.0","tar":"7.5.13","zod":"^4.3.6","hono":"4.12.9","jiti":"^2.6.1","long":"^5.3.2","uuid":"^13.0.0","yaml":"^2.8.3","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.4","undici":"^7.24.6","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"22.0.0","ipaddr.js":"^2.3.0","pdfjs-dist":"^5.6.205","sqlite-vec":"0.1.9","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","matrix-js-sdk":"41.3.0-rc.0","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@homebridge/ciao":"^1.3.6","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.49","@mariozechner/pi-ai":"0.64.0","@mariozechner/pi-tui":"0.64.0","@mozilla/readability":"^0.6.0","@agentclientprotocol/sdk":"0.17.1","@anthropic-ai/vertex-sdk":"^0.14.4","@modelcontextprotocol/sdk":"1.29.0","@mariozechner/pi-agent-core":"0.64.0","@mariozechner/pi-coding-agent":"0.64.0","@matrix-org/matrix-sdk-crypto-wasm":"18.0.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^29.0.1","oxfmt":"0.43.0","oxlint":"^1.58.0","semver":"7.7.4","tsdown":"0.21.7","vitest":"^4.1.2","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.18.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.2","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260331.1"},"peerDependencies":{"node-llama-cpp":"3.18.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.4.1-beta.1_1775058750384_0.28688634939344326","host":"s3://npm-registry-packages-npm-production"}},"2026.4.1":{"name":"openclaw","version":"2026.4.1","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.4.1","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"ce846c472403d9271e7dc9b6208d855760753a17","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.4.1.tgz","fileCount":21148,"integrity":"sha512-+1KF+Fp3WjILT0OqnoIYncQif0HmrVDUOzn7Ir1vS6nulYiVw0GKhcizWFWlCbR1wiDZjB6BTaoj7JRnWPd3LQ==","signatures":[{"sig":"MEUCIQCJd58Y1uk5QP0Jm16DLcqL2RTwKXtGAyPLerreWB8+SgIgOiNOr7lLfVOkwVmdCr6bL9NIH+qoYzJIt+xAZyC5GDI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openclaw@2026.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":192759347},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.13","hono":"4.12.9","axios":"1.13.6","yauzl":"3.2.1","request":"npm:@cypress/request@3.0.10","file-type":"22.0.0","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","path-to-regexp":"8.4.0","fast-xml-parser":"5.5.7","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.49","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@tloncorp/tlon-skill","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"],"ignoredBuiltDependencies":["@discordjs/opus","koffi"]},"type":"module","_from":"file:preflight-tarball/openclaw-2026.4.1.tgz","engines":{"node":">=22.14.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./extension-api":"./dist/extensionAPI.js","./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/xai":{"types":"./dist/plugin-sdk/xai.d.ts","default":"./dist/plugin-sdk/xai.js"},"./plugin-sdk/zod":{"types":"./dist/plugin-sdk/zod.d.ts","default":"./dist/plugin-sdk/zod.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/vllm":{"types":"./dist/plugin-sdk/vllm.d.ts","default":"./dist/plugin-sdk/vllm.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/setup":{"types":"./dist/plugin-sdk/setup.d.ts","default":"./dist/plugin-sdk/setup.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/chutes":{"types":"./dist/plugin-sdk/chutes.d.ts","default":"./dist/plugin-sdk/chutes.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/google":{"types":"./dist/plugin-sdk/google.d.ts","default":"./dist/plugin-sdk/google.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/nvidia":{"types":"./dist/plugin-sdk/nvidia.d.ts","default":"./dist/plugin-sdk/nvidia.js"},"./plugin-sdk/ollama":{"types":"./dist/plugin-sdk/ollama.d.ts","default":"./dist/plugin-sdk/ollama.js"},"./plugin-sdk/openai":{"types":"./dist/plugin-sdk/openai.d.ts","default":"./dist/plugin-sdk/openai.js"},"./plugin-sdk/sglang":{"types":"./dist/plugin-sdk/sglang.d.ts","default":"./dist/plugin-sdk/sglang.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/speech":{"types":"./dist/plugin-sdk/speech.d.ts","default":"./dist/plugin-sdk/speech.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/venice":{"types":"./dist/plugin-sdk/venice.d.ts","default":"./dist/plugin-sdk/venice.js"},"./plugin-sdk/browser":{"types":"./dist/plugin-sdk/browser.d.ts","default":"./dist/plugin-sdk/browser.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/minimax":{"types":"./dist/plugin-sdk/minimax.d.ts","default":"./dist/plugin-sdk/minimax.js"},"./plugin-sdk/mistral":{"types":"./dist/plugin-sdk/mistral.d.ts","default":"./dist/plugin-sdk/mistral.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/qianfan":{"types":"./dist/plugin-sdk/qianfan.d.ts","default":"./dist/plugin-sdk/qianfan.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/sandbox":{"types":"./dist/plugin-sdk/sandbox.d.ts","default":"./dist/plugin-sdk/sandbox.js"},"./plugin-sdk/testing":{"types":"./dist/plugin-sdk/testing.d.ts","default":"./dist/plugin-sdk/testing.js"},"./plugin-sdk/byteplus":{"types":"./dist/plugin-sdk/byteplus.d.ts","default":"./dist/plugin-sdk/byteplus.js"},"./plugin-sdk/deepseek":{"types":"./dist/plugin-sdk/deepseek.d.ts","default":"./dist/plugin-sdk/deepseek.js"},"./plugin-sdk/kilocode":{"types":"./dist/plugin-sdk/kilocode.d.ts","default":"./dist/plugin-sdk/kilocode.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/moonshot":{"types":"./dist/plugin-sdk/moonshot.d.ts","default":"./dist/plugin-sdk/moonshot.js"},"./plugin-sdk/opencode":{"types":"./dist/plugin-sdk/opencode.d.ts","default":"./dist/plugin-sdk/opencode.js"},"./plugin-sdk/together":{"types":"./dist/plugin-sdk/together.d.ts","default":"./dist/plugin-sdk/together.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/direct-dm":{"types":"./dist/plugin-sdk/direct-dm.d.ts","default":"./dist/plugin-sdk/direct-dm.js"},"./plugin-sdk/file-lock":{"types":"./dist/plugin-sdk/file-lock.d.ts","default":"./dist/plugin-sdk/file-lock.js"},"./plugin-sdk/line-core":{"types":"./dist/plugin-sdk/line-core.d.ts","default":"./dist/plugin-sdk/line-core.js"},"./plugin-sdk/synthetic":{"types":"./dist/plugin-sdk/synthetic.d.ts","default":"./dist/plugin-sdk/synthetic.js"},"./plugin-sdk/temp-path":{"types":"./dist/plugin-sdk/temp-path.d.ts","default":"./dist/plugin-sdk/temp-path.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/web-media":{"types":"./dist/plugin-sdk/web-media.d.ts","default":"./dist/plugin-sdk/web-media.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/allow-from":{"types":"./dist/plugin-sdk/allow-from.d.ts","default":"./dist/plugin-sdk/allow-from.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/json-store":{"types":"./dist/plugin-sdk/json-store.d.ts","default":"./dist/plugin-sdk/json-store.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/slack-core":{"types":"./dist/plugin-sdk/slack-core.d.ts","default":"./dist/plugin-sdk/slack-core.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/volcengine":{"types":"./dist/plugin-sdk/volcengine.d.ts","default":"./dist/plugin-sdk/volcengine.js"},"./plugin-sdk/zalo-setup":{"types":"./dist/plugin-sdk/zalo-setup.d.ts","default":"./dist/plugin-sdk/zalo-setup.js"},"./plugin-sdk/acp-runtime":{"types":"./dist/plugin-sdk/acp-runtime.d.ts","default":"./dist/plugin-sdk/acp-runtime.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/cli-backend":{"types":"./dist/plugin-sdk/cli-backend.d.ts","default":"./dist/plugin-sdk/cli-backend.js"},"./plugin-sdk/cli-runtime":{"types":"./dist/plugin-sdk/cli-runtime.d.ts","default":"./dist/plugin-sdk/cli-runtime.js"},"./plugin-sdk/huggingface":{"types":"./dist/plugin-sdk/huggingface.d.ts","default":"./dist/plugin-sdk/huggingface.js"},"./plugin-sdk/irc-surface":{"types":"./dist/plugin-sdk/irc-surface.d.ts","default":"./dist/plugin-sdk/irc-surface.js"},"./plugin-sdk/kimi-coding":{"types":"./dist/plugin-sdk/kimi-coding.d.ts","default":"./dist/plugin-sdk/kimi-coding.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/modelstudio":{"types":"./dist/plugin-sdk/modelstudio.d.ts","default":"./dist/plugin-sdk/modelstudio.js"},"./plugin-sdk/opencode-go":{"types":"./dist/plugin-sdk/opencode-go.d.ts","default":"./dist/plugin-sdk/opencode-go.js"},"./plugin-sdk/request-url":{"types":"./dist/plugin-sdk/request-url.d.ts","default":"./dist/plugin-sdk/request-url.js"},"./plugin-sdk/runtime-env":{"types":"./dist/plugin-sdk/runtime-env.d.ts","default":"./dist/plugin-sdk/runtime-env.js"},"./plugin-sdk/setup-tools":{"types":"./dist/plugin-sdk/setup-tools.d.ts","default":"./dist/plugin-sdk/setup-tools.js"},"./plugin-sdk/speech-core":{"types":"./dist/plugin-sdk/speech-core.d.ts","default":"./dist/plugin-sdk/speech-core.js"},"./plugin-sdk/state-paths":{"types":"./dist/plugin-sdk/state-paths.d.ts","default":"./dist/plugin-sdk/state-paths.js"},"./plugin-sdk/account-core":{"types":"./dist/plugin-sdk/account-core.d.ts","default":"./dist/plugin-sdk/account-core.js"},"./plugin-sdk/command-auth":{"types":"./dist/plugin-sdk/command-auth.d.ts","default":"./dist/plugin-sdk/command-auth.js"},"./plugin-sdk/discord-core":{"types":"./dist/plugin-sdk/discord-core.d.ts","default":"./dist/plugin-sdk/discord-core.js"},"./plugin-sdk/feishu-setup":{"types":"./dist/plugin-sdk/feishu-setup.d.ts","default":"./dist/plugin-sdk/feishu-setup.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/hook-runtime":{"types":"./dist/plugin-sdk/hook-runtime.d.ts","default":"./dist/plugin-sdk/hook-runtime.js"},"./plugin-sdk/host-runtime":{"types":"./dist/plugin-sdk/host-runtime.d.ts","default":"./dist/plugin-sdk/host-runtime.js"},"./plugin-sdk/lazy-runtime":{"types":"./dist/plugin-sdk/lazy-runtime.d.ts","default":"./dist/plugin-sdk/lazy-runtime.js"},"./plugin-sdk/line-runtime":{"types":"./dist/plugin-sdk/line-runtime.d.ts","default":"./dist/plugin-sdk/line-runtime.js"},"./plugin-sdk/line-surface":{"types":"./dist/plugin-sdk/line-surface.d.ts","default":"./dist/plugin-sdk/line-surface.js"},"./plugin-sdk/logging-core":{"types":"./dist/plugin-sdk/logging-core.d.ts","default":"./dist/plugin-sdk/logging-core.js"},"./plugin-sdk/plugin-entry":{"types":"./dist/plugin-sdk/plugin-entry.d.ts","default":"./dist/plugin-sdk/plugin-entry.js"},"./plugin-sdk/secret-input":{"types":"./dist/plugin-sdk/secret-input.d.ts","default":"./dist/plugin-sdk/secret-input.js"},"./plugin-sdk/ssrf-runtime":{"types":"./dist/plugin-sdk/ssrf-runtime.d.ts","default":"./dist/plugin-sdk/ssrf-runtime.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/webhook-path":{"types":"./dist/plugin-sdk/webhook-path.d.ts","default":"./dist/plugin-sdk/webhook-path.js"},"./plugin-sdk/agent-runtime":{"types":"./dist/plugin-sdk/agent-runtime.d.ts","default":"./dist/plugin-sdk/agent-runtime.js"},"./plugin-sdk/boolean-param":{"types":"./dist/plugin-sdk/boolean-param.d.ts","default":"./dist/plugin-sdk/boolean-param.js"},"./plugin-sdk/channel-setup":{"types":"./dist/plugin-sdk/channel-setup.d.ts","default":"./dist/plugin-sdk/channel-setup.js"},"./plugin-sdk/error-runtime":{"types":"./dist/plugin-sdk/error-runtime.d.ts","default":"./dist/plugin-sdk/error-runtime.js"},"./plugin-sdk/fetch-runtime":{"types":"./dist/plugin-sdk/fetch-runtime.d.ts","default":"./dist/plugin-sdk/fetch-runtime.js"},"./plugin-sdk/infra-runtime":{"types":"./dist/plugin-sdk/infra-runtime.d.ts","default":"./dist/plugin-sdk/infra-runtime.js"},"./plugin-sdk/matrix-helper":{"types":"./dist/plugin-sdk/matrix-helper.d.ts","default":"./dist/plugin-sdk/matrix-helper.js"},"./plugin-sdk/media-runtime":{"types":"./dist/plugin-sdk/media-runtime.d.ts","default":"./dist/plugin-sdk/media-runtime.js"},"./plugin-sdk/param-readers":{"types":"./dist/plugin-sdk/param-readers.d.ts","default":"./dist/plugin-sdk/param-readers.js"},"./plugin-sdk/provider-auth":{"types":"./dist/plugin-sdk/provider-auth.d.ts","default":"./dist/plugin-sdk/provider-auth.js"},"./plugin-sdk/provider-http":{"types":"./dist/plugin-sdk/provider-http.d.ts","default":"./dist/plugin-sdk/provider-http.js"},"./plugin-sdk/reply-history":{"types":"./dist/plugin-sdk/reply-history.d.ts","default":"./dist/plugin-sdk/reply-history.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/reply-runtime":{"types":"./dist/plugin-sdk/reply-runtime.d.ts","default":"./dist/plugin-sdk/reply-runtime.js"},"./plugin-sdk/retry-runtime":{"types":"./dist/plugin-sdk/retry-runtime.d.ts","default":"./dist/plugin-sdk/retry-runtime.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/setup-runtime":{"types":"./dist/plugin-sdk/setup-runtime.d.ts","default":"./dist/plugin-sdk/setup-runtime.js"},"./plugin-sdk/slack-account":{"types":"./dist/plugin-sdk/slack-account.d.ts","default":"./dist/plugin-sdk/slack-account.js"},"./plugin-sdk/slack-surface":{"types":"./dist/plugin-sdk/slack-surface.d.ts","default":"./dist/plugin-sdk/slack-surface.js"},"./plugin-sdk/slack-targets":{"types":"./dist/plugin-sdk/slack-targets.d.ts","default":"./dist/plugin-sdk/slack-targets.js"},"./plugin-sdk/telegram-core":{"types":"./dist/plugin-sdk/telegram-core.d.ts","default":"./dist/plugin-sdk/telegram-core.js"},"./plugin-sdk/whatsapp-core":{"types":"./dist/plugin-sdk/whatsapp-core.d.ts","default":"./dist/plugin-sdk/whatsapp-core.js"},"./plugin-sdk/windows-spawn":{"types":"./dist/plugin-sdk/windows-spawn.d.ts","default":"./dist/plugin-sdk/windows-spawn.js"},"./plugin-sdk/amazon-bedrock":{"types":"./dist/plugin-sdk/amazon-bedrock.d.ts","default":"./dist/plugin-sdk/amazon-bedrock.js"},"./plugin-sdk/channel-policy":{"types":"./dist/plugin-sdk/channel-policy.d.ts","default":"./dist/plugin-sdk/channel-policy.js"},"./plugin-sdk/channel-status":{"types":"./dist/plugin-sdk/channel-status.d.ts","default":"./dist/plugin-sdk/channel-status.js"},"./plugin-sdk/config-runtime":{"types":"./dist/plugin-sdk/config-runtime.d.ts","default":"./dist/plugin-sdk/config-runtime.js"},"./plugin-sdk/matrix-surface":{"types":"./dist/plugin-sdk/matrix-surface.d.ts","default":"./dist/plugin-sdk/matrix-surface.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/ollama-surface":{"types":"./dist/plugin-sdk/ollama-surface.d.ts","default":"./dist/plugin-sdk/ollama-surface.js"},"./plugin-sdk/plugin-runtime":{"types":"./dist/plugin-sdk/plugin-runtime.d.ts","default":"./dist/plugin-sdk/plugin-runtime.js"},"./plugin-sdk/provider-entry":{"types":"./dist/plugin-sdk/provider-entry.d.ts","default":"./dist/plugin-sdk/provider-entry.js"},"./plugin-sdk/provider-setup":{"types":"./dist/plugin-sdk/provider-setup.d.ts","default":"./dist/plugin-sdk/provider-setup.js"},"./plugin-sdk/provider-tools":{"types":"./dist/plugin-sdk/provider-tools.d.ts","default":"./dist/plugin-sdk/provider-tools.js"},"./plugin-sdk/provider-usage":{"types":"./dist/plugin-sdk/provider-usage.d.ts","default":"./dist/plugin-sdk/provider-usage.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/signal-account":{"types":"./dist/plugin-sdk/signal-account.d.ts","default":"./dist/plugin-sdk/signal-account.js"},"./plugin-sdk/signal-surface":{"types":"./dist/plugin-sdk/signal-surface.d.ts","default":"./dist/plugin-sdk/signal-surface.js"},"./plugin-sdk/speech-runtime":{"types":"./dist/plugin-sdk/speech-runtime.d.ts","default":"./dist/plugin-sdk/speech-runtime.js"},"./plugin-sdk/status-helpers":{"types":"./dist/plugin-sdk/status-helpers.d.ts","default":"./dist/plugin-sdk/status-helpers.js"},"./plugin-sdk/account-helpers":{"types":"./dist/plugin-sdk/account-helpers.d.ts","default":"./dist/plugin-sdk/account-helpers.js"},"./plugin-sdk/browser-runtime":{"types":"./dist/plugin-sdk/browser-runtime.d.ts","default":"./dist/plugin-sdk/browser-runtime.js"},"./plugin-sdk/browser-support":{"types":"./dist/plugin-sdk/browser-support.d.ts","default":"./dist/plugin-sdk/browser-support.js"},"./plugin-sdk/channel-actions":{"types":"./dist/plugin-sdk/channel-actions.d.ts","default":"./dist/plugin-sdk/channel-actions.js"},"./plugin-sdk/channel-inbound":{"types":"./dist/plugin-sdk/channel-inbound.d.ts","default":"./dist/plugin-sdk/channel-inbound.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.js"},"./plugin-sdk/channel-runtime":{"types":"./dist/plugin-sdk/channel-runtime.d.ts","default":"./dist/plugin-sdk/channel-runtime.js"},"./plugin-sdk/channel-targets":{"types":"./dist/plugin-sdk/channel-targets.d.ts","default":"./dist/plugin-sdk/channel-targets.js"},"./plugin-sdk/command-surface":{"types":"./dist/plugin-sdk/command-surface.d.ts","default":"./dist/plugin-sdk/command-surface.js"},"./plugin-sdk/discord-account":{"types":"./dist/plugin-sdk/discord-account.d.ts","default":"./dist/plugin-sdk/discord-account.js"},"./plugin-sdk/discord-surface":{"types":"./dist/plugin-sdk/discord-surface.d.ts","default":"./dist/plugin-sdk/discord-surface.js"},"./plugin-sdk/gateway-runtime":{"types":"./dist/plugin-sdk/gateway-runtime.d.ts","default":"./dist/plugin-sdk/gateway-runtime.js"},"./plugin-sdk/process-runtime":{"types":"./dist/plugin-sdk/process-runtime.d.ts","default":"./dist/plugin-sdk/process-runtime.js"},"./plugin-sdk/provider-stream":{"types":"./dist/plugin-sdk/provider-stream.d.ts","default":"./dist/plugin-sdk/provider-stream.js"},"./plugin-sdk/webhook-ingress":{"types":"./dist/plugin-sdk/webhook-ingress.d.ts","default":"./dist/plugin-sdk/webhook-ingress.js"},"./plugin-sdk/whatsapp-shared":{"types":"./dist/plugin-sdk/whatsapp-shared.d.ts","default":"./dist/plugin-sdk/whatsapp-shared.js"},"./plugin-sdk/anthropic-vertex":{"types":"./dist/plugin-sdk/anthropic-vertex.d.ts","default":"./dist/plugin-sdk/anthropic-vertex.js"},"./plugin-sdk/approval-runtime":{"types":"./dist/plugin-sdk/approval-runtime.d.ts","default":"./dist/plugin-sdk/approval-runtime.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/device-bootstrap":{"types":"./dist/plugin-sdk/device-bootstrap.d.ts","default":"./dist/plugin-sdk/device-bootstrap.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/discord-timeouts":{"types":"./dist/plugin-sdk/discord-timeouts.d.ts","default":"./dist/plugin-sdk/discord-timeouts.js"},"./plugin-sdk/extension-shared":{"types":"./dist/plugin-sdk/extension-shared.d.ts","default":"./dist/plugin-sdk/extension-shared.js"},"./plugin-sdk/global-singleton":{"types":"./dist/plugin-sdk/global-singleton.d.ts","default":"./dist/plugin-sdk/global-singleton.js"},"./plugin-sdk/image-generation":{"types":"./dist/plugin-sdk/image-generation.d.ts","default":"./dist/plugin-sdk/image-generation.js"},"./plugin-sdk/outbound-runtime":{"types":"./dist/plugin-sdk/outbound-runtime.d.ts","default":"./dist/plugin-sdk/outbound-runtime.js"},"./plugin-sdk/provider-onboard":{"types":"./dist/plugin-sdk/provider-onboard.d.ts","default":"./dist/plugin-sdk/provider-onboard.js"},"./plugin-sdk/security-runtime":{"types":"./dist/plugin-sdk/security-runtime.d.ts","default":"./dist/plugin-sdk/security-runtime.js"},"./plugin-sdk/telegram-account":{"types":"./dist/plugin-sdk/telegram-account.d.ts","default":"./dist/plugin-sdk/telegram-account.js"},"./plugin-sdk/telegram-surface":{"types":"./dist/plugin-sdk/telegram-surface.d.ts","default":"./dist/plugin-sdk/telegram-surface.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/whatsapp-surface":{"types":"./dist/plugin-sdk/whatsapp-surface.d.ts","default":"./dist/plugin-sdk/whatsapp-surface.js"},"./plugin-sdk/whatsapp-targets":{"types":"./dist/plugin-sdk/whatsapp-targets.d.ts","default":"./dist/plugin-sdk/whatsapp-targets.js"},"./plugin-sdk/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.js"},"./plugin-sdk/command-detection":{"types":"./dist/plugin-sdk/command-detection.d.ts","default":"./dist/plugin-sdk/command-detection.js"},"./plugin-sdk/directory-runtime":{"types":"./dist/plugin-sdk/directory-runtime.d.ts","default":"./dist/plugin-sdk/directory-runtime.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/mattermost-policy":{"types":"./dist/plugin-sdk/mattermost-policy.d.ts","default":"./dist/plugin-sdk/mattermost-policy.js"},"./plugin-sdk/provider-env-vars":{"types":"./dist/plugin-sdk/provider-env-vars.d.ts","default":"./dist/plugin-sdk/provider-env-vars.js"},"./plugin-sdk/provider-moonshot":{"types":"./dist/plugin-sdk/provider-moonshot.d.ts","default":"./dist/plugin-sdk/provider-moonshot.js"},"./plugin-sdk/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.js"},"./plugin-sdk/bluebubbles-policy":{"types":"./dist/plugin-sdk/bluebubbles-policy.d.ts","default":"./dist/plugin-sdk/bluebubbles-policy.js"},"./plugin-sdk/collection-runtime":{"types":"./dist/plugin-sdk/collection-runtime.d.ts","default":"./dist/plugin-sdk/collection-runtime.js"},"./plugin-sdk/diagnostic-runtime":{"types":"./dist/plugin-sdk/diagnostic-runtime.d.ts","default":"./dist/plugin-sdk/diagnostic-runtime.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/command-auth-native":{"types":"./dist/plugin-sdk/command-auth-native.d.ts","default":"./dist/plugin-sdk/command-auth-native.js"},"./plugin-sdk/discord-session-key":{"types":"./dist/plugin-sdk/discord-session-key.d.ts","default":"./dist/plugin-sdk/discord-session-key.js"},"./plugin-sdk/feishu-conversation":{"types":"./dist/plugin-sdk/feishu-conversation.d.ts","default":"./dist/plugin-sdk/feishu-conversation.js"},"./plugin-sdk/interactive-runtime":{"types":"./dist/plugin-sdk/interactive-runtime.d.ts","default":"./dist/plugin-sdk/interactive-runtime.js"},"./plugin-sdk/media-understanding":{"types":"./dist/plugin-sdk/media-understanding.d.ts","default":"./dist/plugin-sdk/media-understanding.js"},"./plugin-sdk/provider-auth-login":{"types":"./dist/plugin-sdk/provider-auth-login.d.ts","default":"./dist/plugin-sdk/provider-auth-login.js"},"./plugin-sdk/provider-web-search":{"types":"./dist/plugin-sdk/provider-web-search.d.ts","default":"./dist/plugin-sdk/provider-web-search.js"},"./plugin-sdk/slack-target-parser":{"types":"./dist/plugin-sdk/slack-target-parser.d.ts","default":"./dist/plugin-sdk/slack-target-parser.js"},"./plugin-sdk/telegram-allow-from":{"types":"./dist/plugin-sdk/telegram-allow-from.d.ts","default":"./dist/plugin-sdk/telegram-allow-from.js"},"./plugin-sdk/conversation-runtime":{"types":"./dist/plugin-sdk/conversation-runtime.d.ts","default":"./dist/plugin-sdk/conversation-runtime.js"},"./plugin-sdk/github-copilot-login":{"types":"./dist/plugin-sdk/github-copilot-login.d.ts","default":"./dist/plugin-sdk/github-copilot-login.js"},"./plugin-sdk/github-copilot-token":{"types":"./dist/plugin-sdk/github-copilot-token.d.ts","default":"./dist/plugin-sdk/github-copilot-token.js"},"./plugin-sdk/matrix-runtime-heavy":{"types":"./dist/plugin-sdk/matrix-runtime-heavy.d.ts","default":"./dist/plugin-sdk/matrix-runtime-heavy.js"},"./plugin-sdk/provider-auth-result":{"types":"./dist/plugin-sdk/provider-auth-result.d.ts","default":"./dist/plugin-sdk/provider-auth-result.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/allowlist-config-edit":{"types":"./dist/plugin-sdk/allowlist-config-edit.d.ts","default":"./dist/plugin-sdk/allowlist-config-edit.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/channel-config-writes":{"types":"./dist/plugin-sdk/channel-config-writes.d.ts","default":"./dist/plugin-sdk/channel-config-writes.js"},"./plugin-sdk/cloudflare-ai-gateway":{"types":"./dist/plugin-sdk/cloudflare-ai-gateway.d.ts","default":"./dist/plugin-sdk/cloudflare-ai-gateway.js"},"./plugin-sdk/image-generation-core":{"types":"./dist/plugin-sdk/image-generation-core.d.ts","default":"./dist/plugin-sdk/image-generation-core.js"},"./plugin-sdk/matrix-runtime-shared":{"types":"./dist/plugin-sdk/matrix-runtime-shared.d.ts","default":"./dist/plugin-sdk/matrix-runtime-shared.js"},"./plugin-sdk/provider-auth-api-key":{"types":"./dist/plugin-sdk/provider-auth-api-key.d.ts","default":"./dist/plugin-sdk/provider-auth-api-key.js"},"./plugin-sdk/provider-auth-runtime":{"types":"./dist/plugin-sdk/provider-auth-runtime.d.ts","default":"./dist/plugin-sdk/provider-auth-runtime.js"},"./plugin-sdk/provider-model-shared":{"types":"./dist/plugin-sdk/provider-model-shared.d.ts","default":"./dist/plugin-sdk/provider-model-shared.js"},"./plugin-sdk/provider-zai-endpoint":{"types":"./dist/plugin-sdk/provider-zai-endpoint.d.ts","default":"./dist/plugin-sdk/provider-zai-endpoint.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/setup-adapter-runtime":{"types":"./dist/plugin-sdk/setup-adapter-runtime.d.ts","default":"./dist/plugin-sdk/setup-adapter-runtime.js"},"./plugin-sdk/slack-runtime-surface":{"types":"./dist/plugin-sdk/slack-runtime-surface.d.ts","default":"./dist/plugin-sdk/slack-runtime-surface.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-reply-pipeline":{"types":"./dist/plugin-sdk/channel-reply-pipeline.d.ts","default":"./dist/plugin-sdk/channel-reply-pipeline.js"},"./plugin-sdk/dangerous-name-runtime":{"types":"./dist/plugin-sdk/dangerous-name-runtime.d.ts","default":"./dist/plugin-sdk/dangerous-name-runtime.js"},"./plugin-sdk/markdown-table-runtime":{"types":"./dist/plugin-sdk/markdown-table-runtime.d.ts","default":"./dist/plugin-sdk/markdown-table-runtime.js"},"./plugin-sdk/matrix-runtime-surface":{"types":"./dist/plugin-sdk/matrix-runtime-surface.d.ts","default":"./dist/plugin-sdk/matrix-runtime-surface.js"},"./plugin-sdk/matrix-thread-bindings":{"types":"./dist/plugin-sdk/matrix-thread-bindings.d.ts","default":"./dist/plugin-sdk/matrix-thread-bindings.js"},"./plugin-sdk/memory-core-host-query":{"types":"./dist/plugin-sdk/memory-core-host-query.d.ts","default":"./dist/plugin-sdk/memory-core-host-query.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/webhook-request-guards":{"types":"./dist/plugin-sdk/webhook-request-guards.d.ts","default":"./dist/plugin-sdk/webhook-request-guards.js"},"./plugin-sdk/whatsapp-auth-presence":{"types":"./dist/plugin-sdk/whatsapp-auth-presence.d.ts","default":"./dist/plugin-sdk/whatsapp-auth-presence.js"},"./plugin-sdk/agent-config-primitives":{"types":"./dist/plugin-sdk/agent-config-primitives.d.ts","default":"./dist/plugin-sdk/agent-config-primitives.js"},"./plugin-sdk/discord-runtime-surface":{"types":"./dist/plugin-sdk/discord-runtime-surface.d.ts","default":"./dist/plugin-sdk/discord-runtime-surface.js"},"./plugin-sdk/discord-thread-bindings":{"types":"./dist/plugin-sdk/discord-thread-bindings.d.ts","default":"./dist/plugin-sdk/discord-thread-bindings.js"},"./plugin-sdk/memory-core-host-secret":{"types":"./dist/plugin-sdk/memory-core-host-secret.d.ts","default":"./dist/plugin-sdk/memory-core-host-secret.js"},"./plugin-sdk/memory-core-host-status":{"types":"./dist/plugin-sdk/memory-core-host-status.d.ts","default":"./dist/plugin-sdk/memory-core-host-status.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/modelstudio-definitions":{"types":"./dist/plugin-sdk/modelstudio-definitions.d.ts","default":"./dist/plugin-sdk/modelstudio-definitions.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-catalog-shared":{"types":"./dist/plugin-sdk/provider-catalog-shared.d.ts","default":"./dist/plugin-sdk/provider-catalog-shared.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/telegram-command-config":{"types":"./dist/plugin-sdk/telegram-command-config.d.ts","default":"./dist/plugin-sdk/telegram-command-config.js"},"./plugin-sdk/thread-bindings-runtime":{"types":"./dist/plugin-sdk/thread-bindings-runtime.d.ts","default":"./dist/plugin-sdk/thread-bindings-runtime.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/memory-core-engine-runtime":{"types":"./dist/plugin-sdk/memory-core-engine-runtime.d.ts","default":"./dist/plugin-sdk/memory-core-engine-runtime.js"},"./plugin-sdk/self-hosted-provider-setup":{"types":"./dist/plugin-sdk/self-hosted-provider-setup.d.ts","default":"./dist/plugin-sdk/self-hosted-provider-setup.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/memory-core-host-engine-qmd":{"types":"./dist/plugin-sdk/memory-core-host-engine-qmd.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-qmd.js"},"./plugin-sdk/memory-core-host-multimodal":{"types":"./dist/plugin-sdk/memory-core-host-multimodal.d.ts","default":"./dist/plugin-sdk/memory-core-host-multimodal.js"},"./plugin-sdk/memory-core-host-runtime-cli":{"types":"./dist/plugin-sdk/memory-core-host-runtime-cli.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-cli.js"},"./plugin-sdk/string-normalization-runtime":{"types":"./dist/plugin-sdk/string-normalization-runtime.d.ts","default":"./dist/plugin-sdk/string-normalization-runtime.js"},"./plugin-sdk/memory-core-host-runtime-core":{"types":"./dist/plugin-sdk/memory-core-host-runtime-core.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-core.js"},"./plugin-sdk/memory-core-host-runtime-files":{"types":"./dist/plugin-sdk/memory-core-host-runtime-files.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-files.js"},"./plugin-sdk/memory-core-host-engine-storage":{"types":"./dist/plugin-sdk/memory-core-host-engine-storage.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-storage.js"},"./plugin-sdk/memory-core-host-engine-embeddings":{"types":"./dist/plugin-sdk/memory-core-host-engine-embeddings.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-embeddings.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"}},"scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"node scripts/run-oxlint.mjs","test":"node scripts/test-parallel.mjs","tsgo":"node scripts/run-tsgo.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node scripts/check-plugin-sdk-exports.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:no-conflict-markers && pnpm check:host-env-policy:swift && pnpm tsgo && pnpm lint && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"node --import tsx scripts/openclaw-prepack.ts","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"node scripts/run-oxlint.mjs --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","test:max":"node scripts/test-parallel.mjs --profile max","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"node scripts/test-live.mjs","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-i18n-glossary && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","prepush:ci":"bash scripts/prepush-ci.sh","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity","audit:seams":"node scripts/audit-seams.mjs","canon:check":"node scripts/canon.mjs check","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall-bundled-plugins.mjs","test:serial":"node scripts/test-parallel.mjs --profile serial","ts-topology":"node --import tsx scripts/ts-topology.ts","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testPlayDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:changed":"pnpm test -- --changed origin/main","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","canon:enforce":"node scripts/canon.mjs enforce --json","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"pnpm check:base-config-schema && pnpm check:bundled-channel-config-metadata && pnpm check:bundled-provider-auth-env-vars && pnpm config:docs:check && pnpm plugin-sdk:check-exports && pnpm plugin-sdk:facades:check && pnpm plugin-sdk:api:check && node scripts/stage-bundled-plugin-runtime-deps.mjs && node --import tsx scripts/release-check.ts","test:channels":"node scripts/test-parallel.mjs --surface channels","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:contracts":"pnpm test:contracts:channels && pnpm test:contracts:plugins","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:extension":"node scripts/test-extension.mjs","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installPlayDebug","config:docs:gen":"node --import tsx scripts/generate-config-doc-baseline.ts --write","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-models && pnpm test:docker:live-gateway && pnpm test:docker:openwebui && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:mcp-channels && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"node scripts/test-parallel.mjs --surface extensions","android:assemble":"cd apps/android && ./gradlew :app:assemblePlayDebug","canon:check:json":"node scripts/canon.mjs check --json","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","plugin-sdk:usage":"node --import tsx scripts/analyze-plugin-sdk-usage.ts","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:changed:max":"node scripts/test-parallel.mjs --profile max --changed origin/main","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","config:docs:check":"node --import tsx scripts/generate-config-doc-baseline.ts --check","config:schema:gen":"node --import tsx scripts/generate-base-config-schema.ts --write","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","test:perf:imports":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node scripts/check-plugin-sdk-exports.mjs","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","plugin-sdk:api:gen":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:e2e:openshell":"OPENCLAW_E2E_OPENSHELL=1 vitest run --config vitest.e2e.config.ts test/openshell-sandbox.e2e.test.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","test:startup:bench":"node --import tsx scripts/bench-cli-startup.ts","config:channels:gen":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --write","config:schema:check":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:startup:memory":"node scripts/check-cli-startup-memory.mjs","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","plugin-sdk:api:check":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check","test:build:singleton":"node scripts/test-built-plugin-singleton.mjs","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","config:channels:check":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check","test:coverage:changed":"vitest run --config vitest.unit.config.ts --coverage --changed origin/main","test:docker:openwebui":"bash scripts/e2e/openwebui-docker.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","plugin-sdk:facades:gen":"node scripts/generate-plugin-sdk-facades.mjs --write","test:contracts:plugins":"OPENCLAW_TEST_PROFILE=serial pnpm exec vitest run --config vitest.contracts.config.ts src/plugins/contracts","test:extensions:memory":"node scripts/profile-extension-memory.mjs","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","test:perf:profile:main":"node scripts/run-vitest-profile.mjs main","android:run:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","plugin-sdk:sync-exports":"node scripts/sync-plugin-sdk-exports.mjs","test:contracts:channels":"OPENCLAW_TEST_PROFILE=serial pnpm exec vitest run --config vitest.contracts.config.ts src/channels/plugins/contracts","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:startup:bench:save":"node --import tsx scripts/bench-cli-startup.ts --preset all --runs 5 --warmup 1 --output .artifacts/cli-startup-bench-all.json","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","android:test:third-party":"cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:check-i18n-glossary":"node scripts/check-docs-i18n-glossary.mjs","docs:check-links:anchors":"node scripts/docs-link-audit.mjs --anchors","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","plugin-sdk:check-exports":"node scripts/sync-plugin-sdk-exports.mjs --check","plugin-sdk:facades:check":"node scripts/generate-plugin-sdk-facades.mjs --check","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:mcp-channels":"bash scripts/e2e/mcp-channels-docker.sh","test:perf:profile:runner":"node scripts/run-vitest-profile.mjs runner","test:perf:update-timings":"node scripts/test-update-timings.mjs","test:startup:bench:check":"node scripts/test-cli-startup-bench-budget.mjs","test:startup:bench:smoke":"node --import tsx scripts/bench-cli-startup.ts --preset real --case gatewayStatusJson --runs 1 --warmup 0 --output .artifacts/cli-startup-bench-smoke.json","check:no-conflict-markers":"node scripts/check-no-conflict-markers.mjs","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","release:plugins:npm:check":"node --import tsx scripts/plugin-npm-release-check.ts","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:docker:live-acp-bind":"bash scripts/test-live-acp-bind-docker.sh","test:parallels:npm-update":"bash scripts/e2e/parallels-npm-update-smoke.sh","test:perf:imports:changed":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test -- --changed origin/main","test:startup:bench:update":"node scripts/test-update-cli-startup-bench.mjs","test:voicecall:closedloop":"node scripts/test-voicecall-closedloop.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","android:install:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","android:assemble:third-party":"cd apps/android && ./gradlew :app:assembleThirdPartyDebug","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","test:docker:live-cli-backend":"bash scripts/test-live-cli-backend-docker.sh","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","test:gateway:watch-regression":"node scripts/check-gateway-watch-regression.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","test:perf:update-memory-hotspots":"node scripts/test-update-memory-hotspots.mjs","lint:plugins:no-extension-imports":"node scripts/check-plugin-extension-import-boundary.mjs","stage:bundled-plugin-runtime-deps":"node scripts/stage-bundled-plugin-runtime-deps.mjs","lint:web-search-provider-boundaries":"node scripts/check-web-search-provider-boundaries.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","test:perf:update-timings:extensions":"node scripts/test-update-timings.mjs --config vitest.extensions.config.ts","check:bundled-provider-auth-env-vars":"node scripts/generate-bundled-provider-auth-env-vars.mjs --check","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","check:bundled-channel-config-metadata":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check","lint:plugins:no-extension-src-imports":"node --import tsx scripts/check-no-extension-src-imports.ts","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","release:openclaw:npm:verify-published":"node --import tsx scripts/openclaw-npm-postpublish-verify.ts","lint:extensions:no-plugin-sdk-internal":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal","lint:extensions:no-src-outside-plugin-sdk":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk","lint:plugins:plugin-sdk-subpaths-exported":"node scripts/check-plugin-sdk-subpath-exports.mjs","lint:extensions:no-relative-outside-package":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package","lint:plugins:no-extension-test-core-imports":"node --import tsx scripts/check-no-extension-test-core-imports.ts","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2bccb063-cd01-4335-8b61-f7859f1dd4e2"}},"_resolved":"/home/runner/work/openclaw/openclaw/preflight-tarball/openclaw-2026.4.1.tgz","_integrity":"sha512-+1KF+Fp3WjILT0OqnoIYncQif0HmrVDUOzn7Ir1vS6nulYiVw0GKhcizWFWlCbR1wiDZjB6BTaoj7JRnWPd3LQ==","repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.9.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"24.14.0","dependencies":{"ws":"^8.20.0","ajv":"^8.18.0","tar":"7.5.13","zod":"^4.3.6","hono":"4.12.9","jiti":"^2.6.1","long":"^5.3.2","uuid":"^13.0.0","yaml":"^2.8.3","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.4","undici":"^7.24.6","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"22.0.0","ipaddr.js":"^2.3.0","pdfjs-dist":"^5.6.205","sqlite-vec":"0.1.9","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","matrix-js-sdk":"41.3.0-rc.0","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@homebridge/ciao":"^1.3.6","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.49","@mariozechner/pi-ai":"0.64.0","@mariozechner/pi-tui":"0.64.0","@mozilla/readability":"^0.6.0","@agentclientprotocol/sdk":"0.17.1","@anthropic-ai/vertex-sdk":"^0.14.4","@modelcontextprotocol/sdk":"1.29.0","@mariozechner/pi-agent-core":"0.64.0","@mariozechner/pi-coding-agent":"0.64.0","@matrix-org/matrix-sdk-crypto-wasm":"18.0.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^29.0.1","oxfmt":"0.43.0","oxlint":"^1.58.0","semver":"7.7.4","tsdown":"0.21.7","vitest":"^4.1.2","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.18.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.2","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260331.1"},"peerDependencies":{"node-llama-cpp":"3.18.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.4.1_1775064592389_0.5618765685639546","host":"s3://npm-registry-packages-npm-production"}},"2026.4.2":{"name":"openclaw","version":"2026.4.2","keywords":[],"author":"","license":"MIT","_id":"openclaw@2026.4.2","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"homepage":"https://github.com/openclaw/openclaw#readme","bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"bin":{"openclaw":"openclaw.mjs"},"dist":{"shasum":"aeee173134873184898624dea59b3eda603108d2","tarball":"https://registry.npmjs.org/openclaw/-/openclaw-2026.4.2.tgz","fileCount":21256,"integrity":"sha512-vtPmvWeGoLdtE17mgznxoP2Qi/lKC5yEwPv+BE5CmS15wJ4WbcbYUa01zI7EkyIq8+Ym84Xc2q6ToRq6UF7gPg==","signatures":[{"sig":"MEQCIAJfN7yiBAoBLkQCn2JrfwYi20ZoKry96TYk43bGg85WAiBJIpNSN+SUlISXAail7Krc2tAknYsfxeHbIJipsY+lNQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/openclaw@2026.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":193060614},"main":"dist/index.js","pnpm":{"overrides":{"qs":"6.14.2","tar":"7.5.13","hono":"4.12.9","axios":"1.13.6","yauzl":"3.2.1","request":"npm:@cypress/request@3.0.10","file-type":"22.0.0","form-data":"2.5.4","minimatch":"10.2.4","tough-cookie":"4.1.3","path-to-regexp":"8.4.0","fast-xml-parser":"5.5.7","request-promise":"npm:@cypress/request-promise@5.0.0","@hono/node-server":"1.19.10","@sinclair/typebox":"0.34.49","node-domexception":"npm:@nolyfill/domexception@^1.0.28"},"packageExtensions":{"@mariozechner/pi-coding-agent":{"dependencies":{"strip-ansi":"^7.2.0"}}},"onlyBuiltDependencies":["@lydell/node-pty","@matrix-org/matrix-sdk-crypto-nodejs","@napi-rs/canvas","@tloncorp/api","@tloncorp/tlon-skill","@whiskeysockets/baileys","authenticate-pam","esbuild","node-llama-cpp","protobufjs","sharp"],"ignoredBuiltDependencies":["@discordjs/opus","koffi"]},"type":"module","_from":"file:preflight-tarball/openclaw-2026.4.2.tgz","engines":{"node":">=22.14.0"},"exports":{".":"./dist/index.js","./cli-entry":"./openclaw.mjs","./plugin-sdk":{"types":"./dist/plugin-sdk/index.d.ts","default":"./dist/plugin-sdk/index.js"},"./extension-api":"./dist/extensionAPI.js","./plugin-sdk/irc":{"types":"./dist/plugin-sdk/irc.d.ts","default":"./dist/plugin-sdk/irc.js"},"./plugin-sdk/xai":{"types":"./dist/plugin-sdk/xai.d.ts","default":"./dist/plugin-sdk/xai.js"},"./plugin-sdk/zod":{"types":"./dist/plugin-sdk/zod.d.ts","default":"./dist/plugin-sdk/zod.js"},"./plugin-sdk/core":{"types":"./dist/plugin-sdk/core.d.ts","default":"./dist/plugin-sdk/core.js"},"./plugin-sdk/line":{"types":"./dist/plugin-sdk/line.d.ts","default":"./dist/plugin-sdk/line.js"},"./plugin-sdk/tlon":{"types":"./dist/plugin-sdk/tlon.d.ts","default":"./dist/plugin-sdk/tlon.js"},"./plugin-sdk/vllm":{"types":"./dist/plugin-sdk/vllm.d.ts","default":"./dist/plugin-sdk/vllm.js"},"./plugin-sdk/zalo":{"types":"./dist/plugin-sdk/zalo.d.ts","default":"./dist/plugin-sdk/zalo.js"},"./plugin-sdk/diffs":{"types":"./dist/plugin-sdk/diffs.d.ts","default":"./dist/plugin-sdk/diffs.js"},"./plugin-sdk/nostr":{"types":"./dist/plugin-sdk/nostr.d.ts","default":"./dist/plugin-sdk/nostr.js"},"./plugin-sdk/setup":{"types":"./dist/plugin-sdk/setup.d.ts","default":"./dist/plugin-sdk/setup.js"},"./plugin-sdk/slack":{"types":"./dist/plugin-sdk/slack.d.ts","default":"./dist/plugin-sdk/slack.js"},"./plugin-sdk/chutes":{"types":"./dist/plugin-sdk/chutes.d.ts","default":"./dist/plugin-sdk/chutes.js"},"./plugin-sdk/compat":{"types":"./dist/plugin-sdk/compat.d.ts","default":"./dist/plugin-sdk/compat.js"},"./plugin-sdk/feishu":{"types":"./dist/plugin-sdk/feishu.d.ts","default":"./dist/plugin-sdk/feishu.js"},"./plugin-sdk/google":{"types":"./dist/plugin-sdk/google.d.ts","default":"./dist/plugin-sdk/google.js"},"./plugin-sdk/matrix":{"types":"./dist/plugin-sdk/matrix.d.ts","default":"./dist/plugin-sdk/matrix.js"},"./plugin-sdk/nvidia":{"types":"./dist/plugin-sdk/nvidia.d.ts","default":"./dist/plugin-sdk/nvidia.js"},"./plugin-sdk/ollama":{"types":"./dist/plugin-sdk/ollama.d.ts","default":"./dist/plugin-sdk/ollama.js"},"./plugin-sdk/openai":{"types":"./dist/plugin-sdk/openai.d.ts","default":"./dist/plugin-sdk/openai.js"},"./plugin-sdk/sglang":{"types":"./dist/plugin-sdk/sglang.d.ts","default":"./dist/plugin-sdk/sglang.js"},"./plugin-sdk/signal":{"types":"./dist/plugin-sdk/signal.d.ts","default":"./dist/plugin-sdk/signal.js"},"./plugin-sdk/speech":{"types":"./dist/plugin-sdk/speech.d.ts","default":"./dist/plugin-sdk/speech.js"},"./plugin-sdk/twitch":{"types":"./dist/plugin-sdk/twitch.d.ts","default":"./dist/plugin-sdk/twitch.js"},"./plugin-sdk/venice":{"types":"./dist/plugin-sdk/venice.d.ts","default":"./dist/plugin-sdk/venice.js"},"./plugin-sdk/browser":{"types":"./dist/plugin-sdk/browser.d.ts","default":"./dist/plugin-sdk/browser.js"},"./plugin-sdk/discord":{"types":"./dist/plugin-sdk/discord.d.ts","default":"./dist/plugin-sdk/discord.js"},"./plugin-sdk/minimax":{"types":"./dist/plugin-sdk/minimax.d.ts","default":"./dist/plugin-sdk/minimax.js"},"./plugin-sdk/mistral":{"types":"./dist/plugin-sdk/mistral.d.ts","default":"./dist/plugin-sdk/mistral.js"},"./plugin-sdk/msteams":{"types":"./dist/plugin-sdk/msteams.d.ts","default":"./dist/plugin-sdk/msteams.js"},"./plugin-sdk/qianfan":{"types":"./dist/plugin-sdk/qianfan.d.ts","default":"./dist/plugin-sdk/qianfan.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/sandbox":{"types":"./dist/plugin-sdk/sandbox.d.ts","default":"./dist/plugin-sdk/sandbox.js"},"./plugin-sdk/testing":{"types":"./dist/plugin-sdk/testing.d.ts","default":"./dist/plugin-sdk/testing.js"},"./plugin-sdk/byteplus":{"types":"./dist/plugin-sdk/byteplus.d.ts","default":"./dist/plugin-sdk/byteplus.js"},"./plugin-sdk/deepseek":{"types":"./dist/plugin-sdk/deepseek.d.ts","default":"./dist/plugin-sdk/deepseek.js"},"./plugin-sdk/kilocode":{"types":"./dist/plugin-sdk/kilocode.d.ts","default":"./dist/plugin-sdk/kilocode.js"},"./plugin-sdk/llm-task":{"types":"./dist/plugin-sdk/llm-task.d.ts","default":"./dist/plugin-sdk/llm-task.js"},"./plugin-sdk/moonshot":{"types":"./dist/plugin-sdk/moonshot.d.ts","default":"./dist/plugin-sdk/moonshot.js"},"./plugin-sdk/opencode":{"types":"./dist/plugin-sdk/opencode.d.ts","default":"./dist/plugin-sdk/opencode.js"},"./plugin-sdk/together":{"types":"./dist/plugin-sdk/together.d.ts","default":"./dist/plugin-sdk/together.js"},"./plugin-sdk/zalouser":{"types":"./dist/plugin-sdk/zalouser.d.ts","default":"./dist/plugin-sdk/zalouser.js"},"./plugin-sdk/direct-dm":{"types":"./dist/plugin-sdk/direct-dm.d.ts","default":"./dist/plugin-sdk/direct-dm.js"},"./plugin-sdk/file-lock":{"types":"./dist/plugin-sdk/file-lock.d.ts","default":"./dist/plugin-sdk/file-lock.js"},"./plugin-sdk/line-core":{"types":"./dist/plugin-sdk/line-core.d.ts","default":"./dist/plugin-sdk/line-core.js"},"./plugin-sdk/synthetic":{"types":"./dist/plugin-sdk/synthetic.d.ts","default":"./dist/plugin-sdk/synthetic.js"},"./plugin-sdk/temp-path":{"types":"./dist/plugin-sdk/temp-path.d.ts","default":"./dist/plugin-sdk/temp-path.js"},"./plugin-sdk/tool-send":{"types":"./dist/plugin-sdk/tool-send.d.ts","default":"./dist/plugin-sdk/tool-send.js"},"./plugin-sdk/web-media":{"types":"./dist/plugin-sdk/web-media.d.ts","default":"./dist/plugin-sdk/web-media.js"},"./plugin-sdk/account-id":{"types":"./dist/plugin-sdk/account-id.d.ts","default":"./dist/plugin-sdk/account-id.js"},"./plugin-sdk/allow-from":{"types":"./dist/plugin-sdk/allow-from.d.ts","default":"./dist/plugin-sdk/allow-from.js"},"./plugin-sdk/googlechat":{"types":"./dist/plugin-sdk/googlechat.d.ts","default":"./dist/plugin-sdk/googlechat.js"},"./plugin-sdk/json-store":{"types":"./dist/plugin-sdk/json-store.d.ts","default":"./dist/plugin-sdk/json-store.js"},"./plugin-sdk/mattermost":{"types":"./dist/plugin-sdk/mattermost.d.ts","default":"./dist/plugin-sdk/mattermost.js"},"./plugin-sdk/slack-core":{"types":"./dist/plugin-sdk/slack-core.d.ts","default":"./dist/plugin-sdk/slack-core.js"},"./plugin-sdk/voice-call":{"types":"./dist/plugin-sdk/voice-call.d.ts","default":"./dist/plugin-sdk/voice-call.js"},"./plugin-sdk/volcengine":{"types":"./dist/plugin-sdk/volcengine.d.ts","default":"./dist/plugin-sdk/volcengine.js"},"./plugin-sdk/zalo-setup":{"types":"./dist/plugin-sdk/zalo-setup.d.ts","default":"./dist/plugin-sdk/zalo-setup.js"},"./plugin-sdk/acp-runtime":{"types":"./dist/plugin-sdk/acp-runtime.d.ts","default":"./dist/plugin-sdk/acp-runtime.js"},"./plugin-sdk/bluebubbles":{"types":"./dist/plugin-sdk/bluebubbles.d.ts","default":"./dist/plugin-sdk/bluebubbles.js"},"./plugin-sdk/cli-backend":{"types":"./dist/plugin-sdk/cli-backend.d.ts","default":"./dist/plugin-sdk/cli-backend.js"},"./plugin-sdk/cli-runtime":{"types":"./dist/plugin-sdk/cli-runtime.d.ts","default":"./dist/plugin-sdk/cli-runtime.js"},"./plugin-sdk/huggingface":{"types":"./dist/plugin-sdk/huggingface.d.ts","default":"./dist/plugin-sdk/huggingface.js"},"./plugin-sdk/irc-surface":{"types":"./dist/plugin-sdk/irc-surface.d.ts","default":"./dist/plugin-sdk/irc-surface.js"},"./plugin-sdk/kimi-coding":{"types":"./dist/plugin-sdk/kimi-coding.d.ts","default":"./dist/plugin-sdk/kimi-coding.js"},"./plugin-sdk/memory-core":{"types":"./dist/plugin-sdk/memory-core.d.ts","default":"./dist/plugin-sdk/memory-core.js"},"./plugin-sdk/modelstudio":{"types":"./dist/plugin-sdk/modelstudio.d.ts","default":"./dist/plugin-sdk/modelstudio.js"},"./plugin-sdk/opencode-go":{"types":"./dist/plugin-sdk/opencode-go.d.ts","default":"./dist/plugin-sdk/opencode-go.js"},"./plugin-sdk/request-url":{"types":"./dist/plugin-sdk/request-url.d.ts","default":"./dist/plugin-sdk/request-url.js"},"./plugin-sdk/runtime-env":{"types":"./dist/plugin-sdk/runtime-env.d.ts","default":"./dist/plugin-sdk/runtime-env.js"},"./plugin-sdk/setup-tools":{"types":"./dist/plugin-sdk/setup-tools.d.ts","default":"./dist/plugin-sdk/setup-tools.js"},"./plugin-sdk/speech-core":{"types":"./dist/plugin-sdk/speech-core.d.ts","default":"./dist/plugin-sdk/speech-core.js"},"./plugin-sdk/state-paths":{"types":"./dist/plugin-sdk/state-paths.d.ts","default":"./dist/plugin-sdk/state-paths.js"},"./plugin-sdk/account-core":{"types":"./dist/plugin-sdk/account-core.d.ts","default":"./dist/plugin-sdk/account-core.js"},"./plugin-sdk/command-auth":{"types":"./dist/plugin-sdk/command-auth.d.ts","default":"./dist/plugin-sdk/command-auth.js"},"./plugin-sdk/discord-core":{"types":"./dist/plugin-sdk/discord-core.d.ts","default":"./dist/plugin-sdk/discord-core.js"},"./plugin-sdk/feishu-setup":{"types":"./dist/plugin-sdk/feishu-setup.d.ts","default":"./dist/plugin-sdk/feishu-setup.js"},"./plugin-sdk/group-access":{"types":"./dist/plugin-sdk/group-access.d.ts","default":"./dist/plugin-sdk/group-access.js"},"./plugin-sdk/hook-runtime":{"types":"./dist/plugin-sdk/hook-runtime.d.ts","default":"./dist/plugin-sdk/hook-runtime.js"},"./plugin-sdk/host-runtime":{"types":"./dist/plugin-sdk/host-runtime.d.ts","default":"./dist/plugin-sdk/host-runtime.js"},"./plugin-sdk/lazy-runtime":{"types":"./dist/plugin-sdk/lazy-runtime.d.ts","default":"./dist/plugin-sdk/lazy-runtime.js"},"./plugin-sdk/line-runtime":{"types":"./dist/plugin-sdk/line-runtime.d.ts","default":"./dist/plugin-sdk/line-runtime.js"},"./plugin-sdk/line-surface":{"types":"./dist/plugin-sdk/line-surface.d.ts","default":"./dist/plugin-sdk/line-surface.js"},"./plugin-sdk/logging-core":{"types":"./dist/plugin-sdk/logging-core.d.ts","default":"./dist/plugin-sdk/logging-core.js"},"./plugin-sdk/plugin-entry":{"types":"./dist/plugin-sdk/plugin-entry.d.ts","default":"./dist/plugin-sdk/plugin-entry.js"},"./plugin-sdk/secret-input":{"types":"./dist/plugin-sdk/secret-input.d.ts","default":"./dist/plugin-sdk/secret-input.js"},"./plugin-sdk/ssrf-runtime":{"types":"./dist/plugin-sdk/ssrf-runtime.d.ts","default":"./dist/plugin-sdk/ssrf-runtime.js"},"./plugin-sdk/text-runtime":{"types":"./dist/plugin-sdk/text-runtime.d.ts","default":"./dist/plugin-sdk/text-runtime.js"},"./plugin-sdk/webhook-path":{"types":"./dist/plugin-sdk/webhook-path.d.ts","default":"./dist/plugin-sdk/webhook-path.js"},"./plugin-sdk/agent-runtime":{"types":"./dist/plugin-sdk/agent-runtime.d.ts","default":"./dist/plugin-sdk/agent-runtime.js"},"./plugin-sdk/boolean-param":{"types":"./dist/plugin-sdk/boolean-param.d.ts","default":"./dist/plugin-sdk/boolean-param.js"},"./plugin-sdk/channel-setup":{"types":"./dist/plugin-sdk/channel-setup.d.ts","default":"./dist/plugin-sdk/channel-setup.js"},"./plugin-sdk/error-runtime":{"types":"./dist/plugin-sdk/error-runtime.d.ts","default":"./dist/plugin-sdk/error-runtime.js"},"./plugin-sdk/fetch-runtime":{"types":"./dist/plugin-sdk/fetch-runtime.d.ts","default":"./dist/plugin-sdk/fetch-runtime.js"},"./plugin-sdk/infra-runtime":{"types":"./dist/plugin-sdk/infra-runtime.d.ts","default":"./dist/plugin-sdk/infra-runtime.js"},"./plugin-sdk/matrix-helper":{"types":"./dist/plugin-sdk/matrix-helper.d.ts","default":"./dist/plugin-sdk/matrix-helper.js"},"./plugin-sdk/media-runtime":{"types":"./dist/plugin-sdk/media-runtime.d.ts","default":"./dist/plugin-sdk/media-runtime.js"},"./plugin-sdk/param-readers":{"types":"./dist/plugin-sdk/param-readers.d.ts","default":"./dist/plugin-sdk/param-readers.js"},"./plugin-sdk/provider-auth":{"types":"./dist/plugin-sdk/provider-auth.d.ts","default":"./dist/plugin-sdk/provider-auth.js"},"./plugin-sdk/provider-http":{"types":"./dist/plugin-sdk/provider-http.d.ts","default":"./dist/plugin-sdk/provider-http.js"},"./plugin-sdk/reply-history":{"types":"./dist/plugin-sdk/reply-history.d.ts","default":"./dist/plugin-sdk/reply-history.js"},"./plugin-sdk/reply-payload":{"types":"./dist/plugin-sdk/reply-payload.d.ts","default":"./dist/plugin-sdk/reply-payload.js"},"./plugin-sdk/reply-runtime":{"types":"./dist/plugin-sdk/reply-runtime.d.ts","default":"./dist/plugin-sdk/reply-runtime.js"},"./plugin-sdk/retry-runtime":{"types":"./dist/plugin-sdk/retry-runtime.d.ts","default":"./dist/plugin-sdk/retry-runtime.js"},"./plugin-sdk/runtime-store":{"types":"./dist/plugin-sdk/runtime-store.d.ts","default":"./dist/plugin-sdk/runtime-store.js"},"./plugin-sdk/setup-runtime":{"types":"./dist/plugin-sdk/setup-runtime.d.ts","default":"./dist/plugin-sdk/setup-runtime.js"},"./plugin-sdk/slack-account":{"types":"./dist/plugin-sdk/slack-account.d.ts","default":"./dist/plugin-sdk/slack-account.js"},"./plugin-sdk/slack-surface":{"types":"./dist/plugin-sdk/slack-surface.d.ts","default":"./dist/plugin-sdk/slack-surface.js"},"./plugin-sdk/slack-targets":{"types":"./dist/plugin-sdk/slack-targets.d.ts","default":"./dist/plugin-sdk/slack-targets.js"},"./plugin-sdk/telegram-core":{"types":"./dist/plugin-sdk/telegram-core.d.ts","default":"./dist/plugin-sdk/telegram-core.js"},"./plugin-sdk/whatsapp-core":{"types":"./dist/plugin-sdk/whatsapp-core.d.ts","default":"./dist/plugin-sdk/whatsapp-core.js"},"./plugin-sdk/windows-spawn":{"types":"./dist/plugin-sdk/windows-spawn.d.ts","default":"./dist/plugin-sdk/windows-spawn.js"},"./plugin-sdk/amazon-bedrock":{"types":"./dist/plugin-sdk/amazon-bedrock.d.ts","default":"./dist/plugin-sdk/amazon-bedrock.js"},"./plugin-sdk/channel-policy":{"types":"./dist/plugin-sdk/channel-policy.d.ts","default":"./dist/plugin-sdk/channel-policy.js"},"./plugin-sdk/channel-status":{"types":"./dist/plugin-sdk/channel-status.d.ts","default":"./dist/plugin-sdk/channel-status.js"},"./plugin-sdk/config-runtime":{"types":"./dist/plugin-sdk/config-runtime.d.ts","default":"./dist/plugin-sdk/config-runtime.js"},"./plugin-sdk/matrix-surface":{"types":"./dist/plugin-sdk/matrix-surface.d.ts","default":"./dist/plugin-sdk/matrix-surface.js"},"./plugin-sdk/memory-lancedb":{"types":"./dist/plugin-sdk/memory-lancedb.d.ts","default":"./dist/plugin-sdk/memory-lancedb.js"},"./plugin-sdk/nextcloud-talk":{"types":"./dist/plugin-sdk/nextcloud-talk.d.ts","default":"./dist/plugin-sdk/nextcloud-talk.js"},"./plugin-sdk/ollama-surface":{"types":"./dist/plugin-sdk/ollama-surface.d.ts","default":"./dist/plugin-sdk/ollama-surface.js"},"./plugin-sdk/plugin-runtime":{"types":"./dist/plugin-sdk/plugin-runtime.d.ts","default":"./dist/plugin-sdk/plugin-runtime.js"},"./plugin-sdk/provider-entry":{"types":"./dist/plugin-sdk/provider-entry.d.ts","default":"./dist/plugin-sdk/provider-entry.js"},"./plugin-sdk/provider-setup":{"types":"./dist/plugin-sdk/provider-setup.d.ts","default":"./dist/plugin-sdk/provider-setup.js"},"./plugin-sdk/provider-tools":{"types":"./dist/plugin-sdk/provider-tools.d.ts","default":"./dist/plugin-sdk/provider-tools.js"},"./plugin-sdk/provider-usage":{"types":"./dist/plugin-sdk/provider-usage.d.ts","default":"./dist/plugin-sdk/provider-usage.js"},"./plugin-sdk/reply-chunking":{"types":"./dist/plugin-sdk/reply-chunking.d.ts","default":"./dist/plugin-sdk/reply-chunking.js"},"./plugin-sdk/signal-account":{"types":"./dist/plugin-sdk/signal-account.d.ts","default":"./dist/plugin-sdk/signal-account.js"},"./plugin-sdk/signal-surface":{"types":"./dist/plugin-sdk/signal-surface.d.ts","default":"./dist/plugin-sdk/signal-surface.js"},"./plugin-sdk/speech-runtime":{"types":"./dist/plugin-sdk/speech-runtime.d.ts","default":"./dist/plugin-sdk/speech-runtime.js"},"./plugin-sdk/status-helpers":{"types":"./dist/plugin-sdk/status-helpers.d.ts","default":"./dist/plugin-sdk/status-helpers.js"},"./plugin-sdk/account-helpers":{"types":"./dist/plugin-sdk/account-helpers.d.ts","default":"./dist/plugin-sdk/account-helpers.js"},"./plugin-sdk/browser-runtime":{"types":"./dist/plugin-sdk/browser-runtime.d.ts","default":"./dist/plugin-sdk/browser-runtime.js"},"./plugin-sdk/browser-support":{"types":"./dist/plugin-sdk/browser-support.d.ts","default":"./dist/plugin-sdk/browser-support.js"},"./plugin-sdk/channel-actions":{"types":"./dist/plugin-sdk/channel-actions.d.ts","default":"./dist/plugin-sdk/channel-actions.js"},"./plugin-sdk/channel-inbound":{"types":"./dist/plugin-sdk/channel-inbound.d.ts","default":"./dist/plugin-sdk/channel-inbound.js"},"./plugin-sdk/channel-pairing":{"types":"./dist/plugin-sdk/channel-pairing.d.ts","default":"./dist/plugin-sdk/channel-pairing.js"},"./plugin-sdk/channel-runtime":{"types":"./dist/plugin-sdk/channel-runtime.d.ts","default":"./dist/plugin-sdk/channel-runtime.js"},"./plugin-sdk/channel-targets":{"types":"./dist/plugin-sdk/channel-targets.d.ts","default":"./dist/plugin-sdk/channel-targets.js"},"./plugin-sdk/command-surface":{"types":"./dist/plugin-sdk/command-surface.d.ts","default":"./dist/plugin-sdk/command-surface.js"},"./plugin-sdk/discord-account":{"types":"./dist/plugin-sdk/discord-account.d.ts","default":"./dist/plugin-sdk/discord-account.js"},"./plugin-sdk/discord-surface":{"types":"./dist/plugin-sdk/discord-surface.d.ts","default":"./dist/plugin-sdk/discord-surface.js"},"./plugin-sdk/gateway-runtime":{"types":"./dist/plugin-sdk/gateway-runtime.d.ts","default":"./dist/plugin-sdk/gateway-runtime.js"},"./plugin-sdk/process-runtime":{"types":"./dist/plugin-sdk/process-runtime.d.ts","default":"./dist/plugin-sdk/process-runtime.js"},"./plugin-sdk/provider-stream":{"types":"./dist/plugin-sdk/provider-stream.d.ts","default":"./dist/plugin-sdk/provider-stream.js"},"./plugin-sdk/webhook-ingress":{"types":"./dist/plugin-sdk/webhook-ingress.d.ts","default":"./dist/plugin-sdk/webhook-ingress.js"},"./plugin-sdk/whatsapp-shared":{"types":"./dist/plugin-sdk/whatsapp-shared.d.ts","default":"./dist/plugin-sdk/whatsapp-shared.js"},"./plugin-sdk/anthropic-vertex":{"types":"./dist/plugin-sdk/anthropic-vertex.d.ts","default":"./dist/plugin-sdk/anthropic-vertex.js"},"./plugin-sdk/approval-runtime":{"types":"./dist/plugin-sdk/approval-runtime.d.ts","default":"./dist/plugin-sdk/approval-runtime.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/device-bootstrap":{"types":"./dist/plugin-sdk/device-bootstrap.d.ts","default":"./dist/plugin-sdk/device-bootstrap.js"},"./plugin-sdk/diagnostics-otel":{"types":"./dist/plugin-sdk/diagnostics-otel.d.ts","default":"./dist/plugin-sdk/diagnostics-otel.js"},"./plugin-sdk/discord-timeouts":{"types":"./dist/plugin-sdk/discord-timeouts.d.ts","default":"./dist/plugin-sdk/discord-timeouts.js"},"./plugin-sdk/extension-shared":{"types":"./dist/plugin-sdk/extension-shared.d.ts","default":"./dist/plugin-sdk/extension-shared.js"},"./plugin-sdk/global-singleton":{"types":"./dist/plugin-sdk/global-singleton.d.ts","default":"./dist/plugin-sdk/global-singleton.js"},"./plugin-sdk/image-generation":{"types":"./dist/plugin-sdk/image-generation.d.ts","default":"./dist/plugin-sdk/image-generation.js"},"./plugin-sdk/outbound-runtime":{"types":"./dist/plugin-sdk/outbound-runtime.d.ts","default":"./dist/plugin-sdk/outbound-runtime.js"},"./plugin-sdk/provider-onboard":{"types":"./dist/plugin-sdk/provider-onboard.d.ts","default":"./dist/plugin-sdk/provider-onboard.js"},"./plugin-sdk/security-runtime":{"types":"./dist/plugin-sdk/security-runtime.d.ts","default":"./dist/plugin-sdk/security-runtime.js"},"./plugin-sdk/telegram-account":{"types":"./dist/plugin-sdk/telegram-account.d.ts","default":"./dist/plugin-sdk/telegram-account.js"},"./plugin-sdk/telegram-surface":{"types":"./dist/plugin-sdk/telegram-surface.d.ts","default":"./dist/plugin-sdk/telegram-surface.js"},"./plugin-sdk/thread-ownership":{"types":"./dist/plugin-sdk/thread-ownership.d.ts","default":"./dist/plugin-sdk/thread-ownership.js"},"./plugin-sdk/whatsapp-surface":{"types":"./dist/plugin-sdk/whatsapp-surface.d.ts","default":"./dist/plugin-sdk/whatsapp-surface.js"},"./plugin-sdk/whatsapp-targets":{"types":"./dist/plugin-sdk/whatsapp-targets.d.ts","default":"./dist/plugin-sdk/whatsapp-targets.js"},"./plugin-sdk/channel-lifecycle":{"types":"./dist/plugin-sdk/channel-lifecycle.d.ts","default":"./dist/plugin-sdk/channel-lifecycle.js"},"./plugin-sdk/command-detection":{"types":"./dist/plugin-sdk/command-detection.d.ts","default":"./dist/plugin-sdk/command-detection.js"},"./plugin-sdk/directory-runtime":{"types":"./dist/plugin-sdk/directory-runtime.d.ts","default":"./dist/plugin-sdk/directory-runtime.js"},"./plugin-sdk/keyed-async-queue":{"types":"./dist/plugin-sdk/keyed-async-queue.d.ts","default":"./dist/plugin-sdk/keyed-async-queue.js"},"./plugin-sdk/mattermost-policy":{"types":"./dist/plugin-sdk/mattermost-policy.d.ts","default":"./dist/plugin-sdk/mattermost-policy.js"},"./plugin-sdk/provider-env-vars":{"types":"./dist/plugin-sdk/provider-env-vars.d.ts","default":"./dist/plugin-sdk/provider-env-vars.js"},"./plugin-sdk/provider-moonshot":{"types":"./dist/plugin-sdk/provider-moonshot.d.ts","default":"./dist/plugin-sdk/provider-moonshot.js"},"./plugin-sdk/account-resolution":{"types":"./dist/plugin-sdk/account-resolution.d.ts","default":"./dist/plugin-sdk/account-resolution.js"},"./plugin-sdk/bluebubbles-policy":{"types":"./dist/plugin-sdk/bluebubbles-policy.d.ts","default":"./dist/plugin-sdk/bluebubbles-policy.js"},"./plugin-sdk/collection-runtime":{"types":"./dist/plugin-sdk/collection-runtime.d.ts","default":"./dist/plugin-sdk/collection-runtime.js"},"./plugin-sdk/diagnostic-runtime":{"types":"./dist/plugin-sdk/diagnostic-runtime.d.ts","default":"./dist/plugin-sdk/diagnostic-runtime.js"},"./plugin-sdk/provider-web-fetch":{"types":"./dist/plugin-sdk/provider-web-fetch.d.ts","default":"./dist/plugin-sdk/provider-web-fetch.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/command-auth-native":{"types":"./dist/plugin-sdk/command-auth-native.d.ts","default":"./dist/plugin-sdk/command-auth-native.js"},"./plugin-sdk/discord-session-key":{"types":"./dist/plugin-sdk/discord-session-key.d.ts","default":"./dist/plugin-sdk/discord-session-key.js"},"./plugin-sdk/feishu-conversation":{"types":"./dist/plugin-sdk/feishu-conversation.d.ts","default":"./dist/plugin-sdk/feishu-conversation.js"},"./plugin-sdk/interactive-runtime":{"types":"./dist/plugin-sdk/interactive-runtime.d.ts","default":"./dist/plugin-sdk/interactive-runtime.js"},"./plugin-sdk/media-understanding":{"types":"./dist/plugin-sdk/media-understanding.d.ts","default":"./dist/plugin-sdk/media-understanding.js"},"./plugin-sdk/provider-auth-login":{"types":"./dist/plugin-sdk/provider-auth-login.d.ts","default":"./dist/plugin-sdk/provider-auth-login.js"},"./plugin-sdk/provider-web-search":{"types":"./dist/plugin-sdk/provider-web-search.d.ts","default":"./dist/plugin-sdk/provider-web-search.js"},"./plugin-sdk/slack-target-parser":{"types":"./dist/plugin-sdk/slack-target-parser.d.ts","default":"./dist/plugin-sdk/slack-target-parser.js"},"./plugin-sdk/telegram-allow-from":{"types":"./dist/plugin-sdk/telegram-allow-from.d.ts","default":"./dist/plugin-sdk/telegram-allow-from.js"},"./plugin-sdk/conversation-runtime":{"types":"./dist/plugin-sdk/conversation-runtime.d.ts","default":"./dist/plugin-sdk/conversation-runtime.js"},"./plugin-sdk/github-copilot-login":{"types":"./dist/plugin-sdk/github-copilot-login.d.ts","default":"./dist/plugin-sdk/github-copilot-login.js"},"./plugin-sdk/github-copilot-token":{"types":"./dist/plugin-sdk/github-copilot-token.d.ts","default":"./dist/plugin-sdk/github-copilot-token.js"},"./plugin-sdk/matrix-runtime-heavy":{"types":"./dist/plugin-sdk/matrix-runtime-heavy.d.ts","default":"./dist/plugin-sdk/matrix-runtime-heavy.js"},"./plugin-sdk/provider-auth-result":{"types":"./dist/plugin-sdk/provider-auth-result.d.ts","default":"./dist/plugin-sdk/provider-auth-result.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/allowlist-config-edit":{"types":"./dist/plugin-sdk/allowlist-config-edit.d.ts","default":"./dist/plugin-sdk/allowlist-config-edit.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/channel-config-writes":{"types":"./dist/plugin-sdk/channel-config-writes.d.ts","default":"./dist/plugin-sdk/channel-config-writes.js"},"./plugin-sdk/cloudflare-ai-gateway":{"types":"./dist/plugin-sdk/cloudflare-ai-gateway.d.ts","default":"./dist/plugin-sdk/cloudflare-ai-gateway.js"},"./plugin-sdk/image-generation-core":{"types":"./dist/plugin-sdk/image-generation-core.d.ts","default":"./dist/plugin-sdk/image-generation-core.js"},"./plugin-sdk/matrix-runtime-shared":{"types":"./dist/plugin-sdk/matrix-runtime-shared.d.ts","default":"./dist/plugin-sdk/matrix-runtime-shared.js"},"./plugin-sdk/provider-auth-api-key":{"types":"./dist/plugin-sdk/provider-auth-api-key.d.ts","default":"./dist/plugin-sdk/provider-auth-api-key.js"},"./plugin-sdk/provider-auth-runtime":{"types":"./dist/plugin-sdk/provider-auth-runtime.d.ts","default":"./dist/plugin-sdk/provider-auth-runtime.js"},"./plugin-sdk/provider-model-shared":{"types":"./dist/plugin-sdk/provider-model-shared.d.ts","default":"./dist/plugin-sdk/provider-model-shared.js"},"./plugin-sdk/provider-zai-endpoint":{"types":"./dist/plugin-sdk/provider-zai-endpoint.d.ts","default":"./dist/plugin-sdk/provider-zai-endpoint.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/setup-adapter-runtime":{"types":"./dist/plugin-sdk/setup-adapter-runtime.d.ts","default":"./dist/plugin-sdk/setup-adapter-runtime.js"},"./plugin-sdk/slack-runtime-surface":{"types":"./dist/plugin-sdk/slack-runtime-surface.d.ts","default":"./dist/plugin-sdk/slack-runtime-surface.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-reply-pipeline":{"types":"./dist/plugin-sdk/channel-reply-pipeline.d.ts","default":"./dist/plugin-sdk/channel-reply-pipeline.js"},"./plugin-sdk/dangerous-name-runtime":{"types":"./dist/plugin-sdk/dangerous-name-runtime.d.ts","default":"./dist/plugin-sdk/dangerous-name-runtime.js"},"./plugin-sdk/markdown-table-runtime":{"types":"./dist/plugin-sdk/markdown-table-runtime.d.ts","default":"./dist/plugin-sdk/markdown-table-runtime.js"},"./plugin-sdk/matrix-runtime-surface":{"types":"./dist/plugin-sdk/matrix-runtime-surface.d.ts","default":"./dist/plugin-sdk/matrix-runtime-surface.js"},"./plugin-sdk/matrix-thread-bindings":{"types":"./dist/plugin-sdk/matrix-thread-bindings.d.ts","default":"./dist/plugin-sdk/matrix-thread-bindings.js"},"./plugin-sdk/memory-core-host-query":{"types":"./dist/plugin-sdk/memory-core-host-query.d.ts","default":"./dist/plugin-sdk/memory-core-host-query.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/skill-commands-runtime":{"types":"./dist/plugin-sdk/skill-commands-runtime.d.ts","default":"./dist/plugin-sdk/skill-commands-runtime.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/whatsapp-auth-presence":{"types":"./dist/plugin-sdk/whatsapp-auth-presence.d.ts","default":"./dist/plugin-sdk/whatsapp-auth-presence.js"},"./plugin-sdk/agent-config-primitives":{"types":"./dist/plugin-sdk/agent-config-primitives.d.ts","default":"./dist/plugin-sdk/agent-config-primitives.js"},"./plugin-sdk/discord-runtime-surface":{"types":"./dist/plugin-sdk/discord-runtime-surface.d.ts","default":"./dist/plugin-sdk/discord-runtime-surface.js"},"./plugin-sdk/discord-thread-bindings":{"types":"./dist/plugin-sdk/discord-thread-bindings.d.ts","default":"./dist/plugin-sdk/discord-thread-bindings.js"},"./plugin-sdk/memory-core-host-secret":{"types":"./dist/plugin-sdk/memory-core-host-secret.d.ts","default":"./dist/plugin-sdk/memory-core-host-secret.js"},"./plugin-sdk/memory-core-host-status":{"types":"./dist/plugin-sdk/memory-core-host-status.d.ts","default":"./dist/plugin-sdk/memory-core-host-status.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/modelstudio-definitions":{"types":"./dist/plugin-sdk/modelstudio-definitions.d.ts","default":"./dist/plugin-sdk/modelstudio-definitions.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-catalog-shared":{"types":"./dist/plugin-sdk/provider-catalog-shared.d.ts","default":"./dist/plugin-sdk/provider-catalog-shared.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/telegram-command-config":{"types":"./dist/plugin-sdk/telegram-command-config.d.ts","default":"./dist/plugin-sdk/telegram-command-config.js"},"./plugin-sdk/thread-bindings-runtime":{"types":"./dist/plugin-sdk/thread-bindings-runtime.d.ts","default":"./dist/plugin-sdk/thread-bindings-runtime.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/memory-core-engine-runtime":{"types":"./dist/plugin-sdk/memory-core-engine-runtime.d.ts","default":"./dist/plugin-sdk/memory-core-engine-runtime.js"},"./plugin-sdk/self-hosted-provider-setup":{"types":"./dist/plugin-sdk/self-hosted-provider-setup.d.ts","default":"./dist/plugin-sdk/self-hosted-provider-setup.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/memory-core-host-engine-qmd":{"types":"./dist/plugin-sdk/memory-core-host-engine-qmd.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-qmd.js"},"./plugin-sdk/memory-core-host-multimodal":{"types":"./dist/plugin-sdk/memory-core-host-multimodal.d.ts","default":"./dist/plugin-sdk/memory-core-host-multimodal.js"},"./plugin-sdk/memory-core-host-runtime-cli":{"types":"./dist/plugin-sdk/memory-core-host-runtime-cli.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-cli.js"},"./plugin-sdk/string-normalization-runtime":{"types":"./dist/plugin-sdk/string-normalization-runtime.d.ts","default":"./dist/plugin-sdk/string-normalization-runtime.js"},"./plugin-sdk/memory-core-host-runtime-core":{"types":"./dist/plugin-sdk/memory-core-host-runtime-core.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-core.js"},"./plugin-sdk/memory-core-host-runtime-files":{"types":"./dist/plugin-sdk/memory-core-host-runtime-files.d.ts","default":"./dist/plugin-sdk/memory-core-host-runtime-files.js"},"./plugin-sdk/memory-core-host-engine-storage":{"types":"./dist/plugin-sdk/memory-core-host-engine-storage.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-storage.js"},"./plugin-sdk/memory-core-host-engine-embeddings":{"types":"./dist/plugin-sdk/memory-core-host-engine-embeddings.d.ts","default":"./dist/plugin-sdk/memory-core-host-engine-embeddings.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"}},"scripts":{"dev":"node scripts/run-node.mjs","tui":"node scripts/run-node.mjs tui","lint":"node scripts/run-oxlint.mjs","test":"node scripts/test-parallel.mjs","tsgo":"node scripts/run-tsgo.mjs","build":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node scripts/check-plugin-sdk-exports.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","check":"pnpm check:no-conflict-markers && pnpm check:host-env-policy:swift && pnpm tsgo && pnpm lint && pnpm lint:webhook:no-low-level-body-read && pnpm lint:auth:no-pairing-store-group && pnpm lint:auth:pairing-account-scope","start":"node scripts/run-node.mjs","format":"oxfmt --write","ui:dev":"node scripts/ui.js dev","ios:gen":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate'","ios:run":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build && xcrun simctl boot \"${IOS_SIM:-iPhone 17}\" || true && xcrun simctl launch booted ai.openclaw.ios'","prepack":"node --import tsx scripts/openclaw-prepack.ts","prepare":"command -v git >/dev/null 2>&1 && git rev-parse --is-inside-work-tree >/dev/null 2>&1 && git config core.hooksPath git-hooks || exit 0","test:ui":"pnpm lint:ui:no-raw-window-open && pnpm --dir ui test","tui:dev":"OPENCLAW_PROFILE=dev node scripts/run-node.mjs --dev tui","docs:bin":"node scripts/build-docs-list.mjs","docs:dev":"cd docs && mint dev","ios:beta":"bash scripts/ios-beta-release.sh","ios:open":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && open OpenClaw.xcodeproj'","lint:all":"pnpm lint && pnpm lint:swift","lint:fix":"node scripts/run-oxlint.mjs --fix && pnpm format","mac:open":"open dist/OpenClaw.app","openclaw":"node scripts/run-node.mjs","test:all":"pnpm lint && pnpm build && pnpm test && pnpm test:e2e && pnpm test:live && pnpm test:docker:all","test:e2e":"vitest run --config vitest.e2e.config.ts","test:max":"node scripts/test-parallel.mjs --profile max","ui:build":"node scripts/ui.js build","check:loc":"node --import tsx scripts/check-ts-max-loc.ts --max 500","docs:list":"node scripts/docs-list.js","dup:check":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters console","ios:build":"bash -lc './scripts/ios-configure-signing.sh && ./scripts/ios-write-version-xcconfig.sh && cd apps/ios && xcodegen generate && xcodebuild -project OpenClaw.xcodeproj -scheme OpenClaw -destination \"${IOS_DEST:-platform=iOS Simulator,name=iPhone 17}\" -configuration Debug build'","lint:docs":"pnpm dlx markdownlint-cli2","test:fast":"vitest run --config vitest.unit.config.ts","test:live":"node scripts/test-live.mjs","check:docs":"pnpm format:docs:check && pnpm lint:docs && pnpm docs:check-i18n-glossary && pnpm docs:check-links","format:all":"pnpm format && pnpm format:swift","format:fix":"oxfmt --write","ghsa:patch":"node scripts/ghsa-patch.mjs","lint:swift":"swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)","prepush:ci":"bash scripts/prepush-ci.sh","test:force":"node --import tsx scripts/test-force.ts","test:watch":"vitest","ui:install":"node scripts/ui.js install","android:run":"cd apps/android && ./gradlew :app:installPlayDebug && adb shell am start -n ai.openclaw.app/.MainActivity","audit:seams":"node scripts/audit-seams.mjs","canon:check":"node scripts/canon.mjs check","deadcode:ci":"pnpm deadcode:report:ci:knip","format:diff":"oxfmt --write && git --no-pager diff","format:docs":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --write","gateway:dev":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway","mac:package":"bash scripts/package-mac-app.sh","mac:restart":"bash scripts/restart-mac.sh","moltbot:rpc":"node scripts/run-node.mjs agent --mode rpc --json","postinstall":"node scripts/postinstall-bundled-plugins.mjs","test:serial":"node scripts/test-parallel.mjs --profile serial","ts-topology":"node --import tsx scripts/ts-topology.ts","android:lint":"cd apps/android && ./gradlew :app:ktlintCheck :benchmark:ktlintCheck","android:test":"cd apps/android && ./gradlew :app:testPlayDebugUnitTest","build:docker":"node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && node --import tsx scripts/canvas-a2ui-copy.ts && node --import tsx scripts/copy-hook-metadata.ts && node --import tsx scripts/copy-export-html-templates.ts && node --import tsx scripts/write-build-info.ts && node --import tsx scripts/write-cli-startup-metadata.ts && node --import tsx scripts/write-cli-compat.ts","format:check":"oxfmt --check --threads=1","format:swift":"swiftformat --lint --config .swiftformat apps/macos/Sources apps/ios/Sources apps/shared/OpenClawKit/Sources","openclaw:rpc":"node scripts/run-node.mjs agent --mode rpc --json","plugins:sync":"node --import tsx scripts/sync-plugin-versions.ts","protocol:gen":"node --import tsx scripts/protocol-gen.ts","test:changed":"pnpm test -- --changed origin/main","test:gateway":"vitest run --config vitest.gateway.config.ts --pool=forks","canon:enforce":"node scripts/canon.mjs enforce --json","deadcode:knip":"pnpm dlx knip --config knip.config.ts --isolate-workspaces --production --no-progress --reporter compact --files --dependencies","gateway:watch":"node scripts/watch-node.mjs gateway --force","lint:docs:fix":"pnpm dlx markdownlint-cli2 --fix","release:check":"pnpm check:base-config-schema && pnpm check:bundled-channel-config-metadata && pnpm check:bundled-provider-auth-env-vars && pnpm config:docs:check && pnpm plugin-sdk:check-exports && pnpm plugin-sdk:facades:check && pnpm plugin-sdk:api:check && node --import tsx scripts/release-check.ts","test:channels":"node scripts/test-parallel.mjs --surface channels","test:coverage":"vitest run --config vitest.unit.config.ts --coverage","android:format":"cd apps/android && ./gradlew :app:ktlintFormat :benchmark:ktlintFormat","dup:check:json":"jscpd src extensions test scripts --format typescript,javascript --pattern \"**/*.{ts,tsx,js,mjs,cjs}\" --gitignore --noSymlinks --ignore \"**/node_modules/**,**/dist/**,**/.git/**,**/coverage/**,**/build/**,**/.build/**,**/.artifacts/**\" --min-lines 12 --min-tokens 80 --reporters json --output .artifacts/jscpd","protocol:check":"pnpm protocol:gen && pnpm protocol:gen:swift && git diff --exit-code -- dist/protocol.schema.json apps/macos/Sources/OpenClawProtocol/GatewayModels.swift apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift","test:contracts":"pnpm test:contracts:channels && pnpm test:contracts:plugins","test:docker:qr":"bash scripts/e2e/qr-import-docker.sh","test:extension":"node scripts/test-extension.mjs","test:sectriage":"pnpm exec vitest run --config vitest.gateway.config.ts && vitest run --config vitest.unit.config.ts --exclude src/daemon/launchd.integration.test.ts --exclude src/process/exec.test.ts","android:install":"cd apps/android && ./gradlew :app:installPlayDebug","config:docs:gen":"node --import tsx scripts/generate-config-doc-baseline.ts --write","deadcode:report":"pnpm deadcode:knip; pnpm deadcode:ts-prune; pnpm deadcode:ts-unused","docs:spellcheck":"bash scripts/docs-spellcheck.sh","test:docker:all":"pnpm test:docker:live-build && OPENCLAW_SKIP_DOCKER_BUILD=1 pnpm test:docker:live-models && OPENCLAW_SKIP_DOCKER_BUILD=1 pnpm test:docker:live-gateway && pnpm test:docker:openwebui && pnpm test:docker:onboard && pnpm test:docker:gateway-network && pnpm test:docker:mcp-channels && pnpm test:docker:qr && pnpm test:docker:doctor-switch && pnpm test:docker:plugins && pnpm test:docker:cleanup","test:extensions":"node scripts/test-parallel.mjs --surface extensions","android:assemble":"cd apps/android && ./gradlew :app:assemblePlayDebug","canon:check:json":"node scripts/canon.mjs check --json","docs:check-links":"node scripts/docs-link-audit.mjs","ios:beta:archive":"bash scripts/ios-beta-archive.sh","ios:beta:prepare":"bash scripts/ios-beta-prepare.sh","plugin-sdk:usage":"node --import tsx scripts/analyze-plugin-sdk-usage.ts","test:auth:compat":"vitest run --config vitest.gateway.config.ts src/gateway/server.auth.compat-baseline.test.ts src/gateway/client.test.ts src/gateway/reconnect-gating.test.ts src/gateway/protocol/connect-error-details.test.ts","test:changed:max":"node scripts/test-parallel.mjs --profile max --changed origin/main","test:install:e2e":"bash scripts/test-install-sh-e2e-docker.sh","test:perf:budget":"node scripts/test-perf-budget.mjs","config:docs:check":"node --import tsx scripts/generate-config-doc-baseline.ts --check","config:schema:gen":"node --import tsx scripts/generate-base-config-schema.ts --write","deadcode:ts-prune":"pnpm dlx ts-prune src extensions scripts","format:docs:check":"git ls-files 'docs/**/*.md' 'docs/**/*.mdx' 'README.md' | xargs oxfmt --check","gateway:dev:reset":"OPENCLAW_SKIP_CHANNELS=1 node scripts/run-node.mjs --dev gateway --reset","test:perf:imports":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test","build:strict-smoke":"pnpm canvas:a2ui:bundle && node scripts/tsdown-build.mjs && node scripts/runtime-postbuild.mjs && node scripts/build-stamp.mjs && pnpm build:plugin-sdk:dts && node --import tsx scripts/write-plugin-sdk-entry-dts.ts && node scripts/check-plugin-sdk-exports.mjs","canvas:a2ui:bundle":"bash scripts/bundle-a2ui.sh","deadcode:ts-unused":"pnpm dlx ts-unused-exports tsconfig.json --ignoreTestFiles --exitWithCount","plugin-sdk:api:gen":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --write","protocol:gen:swift":"node --import tsx scripts/protocol-gen-swift.ts","test:e2e:openshell":"OPENCLAW_E2E_OPENSHELL=1 vitest run --config vitest.e2e.config.ts test/openshell-sandbox.e2e.test.ts","test:install:smoke":"bash scripts/test-install-sh-docker.sh","test:perf:hotspots":"node scripts/test-hotspots.mjs","test:startup:bench":"node --import tsx scripts/bench-cli-startup.ts","config:channels:gen":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --write","config:schema:check":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:spellcheck:fix":"bash scripts/docs-spellcheck.sh --write","test:docker:cleanup":"bash scripts/test-cleanup-docker.sh","test:docker:onboard":"bash scripts/e2e/onboard-docker.sh","test:docker:plugins":"bash scripts/e2e/plugins-docker.sh","test:startup:memory":"node scripts/check-cli-startup-memory.mjs","android:lint:android":"cd apps/android && ./gradlew :app:lintDebug","build:plugin-sdk:dts":"tsc -p tsconfig.plugin-sdk.dts.json","plugin-sdk:api:check":"node --import tsx scripts/generate-plugin-sdk-api-baseline.ts --check","test:build:singleton":"node scripts/test-built-plugin-singleton.mjs","test:parallels:linux":"bash scripts/e2e/parallels-linux-smoke.sh","test:parallels:macos":"bash scripts/e2e/parallels-macos-smoke.sh","config:channels:check":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check","test:coverage:changed":"vitest run --config vitest.unit.config.ts --coverage --changed origin/main","test:docker:openwebui":"bash scripts/e2e/openwebui-docker.sh","android:bundle:release":"bun apps/android/scripts/build-release-aab.ts","plugin-sdk:facades:gen":"node scripts/generate-plugin-sdk-facades.mjs --write","test:contracts:plugins":"OPENCLAW_TEST_PROFILE=serial pnpm exec vitest run --config vitest.contracts.config.ts src/plugins/contracts","test:docker:live-build":"bash scripts/test-live-build-docker.sh","test:extensions:memory":"node scripts/profile-extension-memory.mjs","test:parallels:windows":"bash scripts/e2e/parallels-windows-smoke.sh","test:perf:profile:main":"node scripts/run-vitest-profile.mjs main","android:run:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug && adb shell am start -n ai.openclaw.app/.MainActivity","deadcode:report:ci:knip":"mkdir -p .artifacts/deadcode && pnpm deadcode:knip > .artifacts/deadcode/knip.txt 2>&1 || true","plugin-sdk:sync-exports":"node scripts/sync-plugin-sdk-exports.mjs","test:contracts:channels":"OPENCLAW_TEST_PROFILE=serial pnpm exec vitest run --config vitest.contracts.config.ts src/channels/plugins/contracts","test:docker:live-models":"bash scripts/test-live-models-docker.sh","test:install:e2e:openai":"OPENCLAW_E2E_MODELS=openai bash scripts/test-install-sh-e2e-docker.sh","test:startup:bench:save":"node --import tsx scripts/bench-cli-startup.ts --preset all --runs 5 --warmup 1 --output .artifacts/cli-startup-bench-all.json","android:test:integration":"OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_ANDROID_NODE=1 vitest run --config vitest.live.config.ts src/gateway/android-node.capabilities.live.test.ts","android:test:third-party":"cd apps/android && ./gradlew :app:testThirdPartyDebugUnitTest","check:base-config-schema":"node --import tsx scripts/generate-base-config-schema.ts --check","docs:check-i18n-glossary":"node scripts/check-docs-i18n-glossary.mjs","docs:check-links:anchors":"node scripts/docs-link-audit.mjs --anchors","lint:agent:ingress-owner":"node scripts/check-ingress-agent-owner-context.mjs","plugin-sdk:check-exports":"node scripts/sync-plugin-sdk-exports.mjs --check","plugin-sdk:facades:check":"node scripts/generate-plugin-sdk-facades.mjs --check","release:plugins:npm:plan":"node --import tsx scripts/plugin-npm-release-plan.ts","test:docker:live-gateway":"bash scripts/test-live-gateway-models-docker.sh","test:docker:mcp-channels":"bash scripts/e2e/mcp-channels-docker.sh","test:perf:profile:runner":"node scripts/run-vitest-profile.mjs runner","test:perf:update-timings":"node scripts/test-update-timings.mjs","test:startup:bench:check":"node scripts/test-cli-startup-bench-budget.mjs","test:startup:bench:smoke":"node --import tsx scripts/bench-cli-startup.ts --preset real --case gatewayStatusJson --runs 1 --warmup 0 --output .artifacts/cli-startup-bench-smoke.json","check:no-conflict-markers":"node scripts/check-no-conflict-markers.mjs","gen:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --write","release:plugins:npm:check":"node --import tsx scripts/plugin-npm-release-check.ts","test:docker:doctor-switch":"bash scripts/e2e/doctor-install-switch-docker.sh","test:docker:live-acp-bind":"bash scripts/test-live-acp-bind-docker.sh","test:live:models-profiles":"node scripts/test-live.mjs -- src/agents/models.profiles.live.test.ts","test:parallels:npm-update":"bash scripts/e2e/parallels-npm-update-smoke.sh","test:perf:imports:changed":"OPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 pnpm test -- --changed origin/main","test:startup:bench:update":"node scripts/test-update-cli-startup-bench.mjs","test:voicecall:closedloop":"node scripts/test-voicecall-closedloop.mjs","lint:ui:no-raw-window-open":"node scripts/check-no-raw-window-open.mjs","release:openclaw:npm:check":"node --import tsx scripts/openclaw-npm-release-check.ts","test:install:e2e:anthropic":"OPENCLAW_E2E_MODELS=anthropic bash scripts/test-install-sh-e2e-docker.sh","test:live:gateway-profiles":"node scripts/test-live.mjs -- src/gateway/gateway-models.profiles.live.test.ts","android:install:third-party":"cd apps/android && ./gradlew :app:installThirdPartyDebug","check:host-env-policy:swift":"node scripts/generate-host-env-security-policy-swift.mjs --check","deadcode:report:ci:ts-prune":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-prune > .artifacts/deadcode/ts-prune.txt 2>&1 || true","test:docker:gateway-network":"bash scripts/e2e/gateway-network-docker.sh","android:assemble:third-party":"cd apps/android && ./gradlew :app:assembleThirdPartyDebug","deadcode:report:ci:ts-unused":"mkdir -p .artifacts/deadcode && pnpm deadcode:ts-unused > .artifacts/deadcode/ts-unused-exports.txt 2>&1 || true","lint:tmp:no-random-messaging":"node scripts/check-no-random-messaging-tmp.mjs","test:docker:live-cli-backend":"bash scripts/test-live-cli-backend-docker.sh","lint:tmp:no-raw-channel-fetch":"node scripts/check-no-raw-channel-fetch.mjs","test:gateway:watch-regression":"node scripts/check-gateway-watch-regression.mjs","lint:auth:pairing-account-scope":"node scripts/check-pairing-account-scope.mjs","lint:auth:no-pairing-store-group":"node scripts/check-no-pairing-store-group-auth.mjs","test:perf:update-memory-hotspots":"node scripts/test-update-memory-hotspots.mjs","lint:plugins:no-extension-imports":"node scripts/check-plugin-extension-import-boundary.mjs","stage:bundled-plugin-runtime-deps":"node scripts/stage-bundled-plugin-runtime-deps.mjs","lint:web-fetch-provider-boundaries":"node scripts/check-web-fetch-provider-boundaries.mjs","lint:web-search-provider-boundaries":"node scripts/check-web-search-provider-boundaries.mjs","lint:webhook:no-low-level-body-read":"node scripts/check-webhook-auth-body-order.mjs","test:perf:update-timings:extensions":"node scripts/test-update-timings.mjs --config vitest.extensions.config.ts","check:bundled-provider-auth-env-vars":"node scripts/generate-bundled-provider-auth-env-vars.mjs --check","lint:tmp:channel-agnostic-boundaries":"node scripts/check-channel-agnostic-boundaries.mjs","check:bundled-channel-config-metadata":"node --import tsx scripts/generate-bundled-channel-config-metadata.ts --check","lint:plugins:no-extension-src-imports":"node --import tsx scripts/check-no-extension-src-imports.ts","lint:plugins:no-register-http-handler":"node scripts/check-no-register-http-handler.mjs","release:openclaw:npm:verify-published":"node --import tsx scripts/openclaw-npm-postpublish-verify.ts","lint:extensions:no-plugin-sdk-internal":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=plugin-sdk-internal","lint:extensions:no-src-outside-plugin-sdk":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=src-outside-plugin-sdk","lint:plugins:plugin-sdk-subpaths-exported":"node scripts/check-plugin-sdk-subpath-exports.mjs","lint:extensions:no-relative-outside-package":"node scripts/check-extension-plugin-sdk-boundary.mjs --mode=relative-outside-package","lint:plugins:no-extension-test-core-imports":"node --import tsx scripts/check-no-extension-test-core-imports.ts","lint:plugins:no-monolithic-plugin-sdk-entry-imports":"node --import tsx scripts/check-no-monolithic-plugin-sdk-entry-imports.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:2bccb063-cd01-4335-8b61-f7859f1dd4e2"}},"_resolved":"/home/runner/work/openclaw/openclaw/preflight-tarball/openclaw-2026.4.2.tgz","_integrity":"sha512-vtPmvWeGoLdtE17mgznxoP2Qi/lKC5yEwPv+BE5CmS15wJ4WbcbYUa01zI7EkyIq8+Ym84Xc2q6ToRq6UF7gPg==","repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"_npmVersion":"11.11.0","description":"Multi-channel AI gateway with extensible messaging integrations","directories":{"doc":"docs","test":"test"},"_nodeVersion":"24.14.1","dependencies":{"ws":"^8.20.0","ajv":"^8.18.0","tar":"7.5.13","zod":"^4.3.6","hono":"4.12.9","jiti":"^2.6.1","long":"^5.3.2","uuid":"^13.0.0","yaml":"^2.8.3","chalk":"^5.6.2","json5":"^2.2.3","jszip":"^3.10.1","sharp":"^0.34.5","tslog":"^4.10.2","croner":"^10.0.1","dotenv":"^17.3.1","gaxios":"7.1.4","undici":"^7.24.6","express":"^5.2.1","chokidar":"^5.0.0","linkedom":"^0.18.12","commander":"^14.0.3","file-type":"22.0.0","ipaddr.js":"^2.3.0","pdfjs-dist":"^5.6.205","sqlite-vec":"0.1.9","markdown-it":"^14.1.1","osc-progress":"^0.3.0","@line/bot-sdk":"^10.6.0","cli-highlight":"^2.1.11","matrix-js-sdk":"41.3.0-rc.0","node-edge-tts":"^1.2.10","@clack/prompts":"^1.1.0","playwright-core":"1.58.2","qrcode-terminal":"^0.12.0","@homebridge/ciao":"^1.3.6","@lydell/node-pty":"1.2.0-beta.3","@sinclair/typebox":"0.34.49","@mariozechner/pi-ai":"0.64.0","@mariozechner/pi-tui":"0.64.0","@mozilla/readability":"^0.6.0","@aws-sdk/client-bedrock":"3.1020.0","@agentclientprotocol/sdk":"0.17.1","@anthropic-ai/vertex-sdk":"^0.14.4","@modelcontextprotocol/sdk":"1.29.0","@mariozechner/pi-agent-core":"0.64.0","@mariozechner/pi-coding-agent":"0.64.0","@matrix-org/matrix-sdk-crypto-wasm":"18.0.0"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.32.1","readmeFilename":"README.md","devDependencies":{"lit":"^3.3.2","tsx":"^4.21.0","jscpd":"4.0.8","jsdom":"^29.0.1","oxfmt":"0.43.0","oxlint":"^1.58.0","semver":"7.7.4","tsdown":"0.21.7","vitest":"^4.1.2","@types/ws":"^8.18.1","typescript":"^6.0.2","@types/node":"^25.5.0","@lit/context":"^1.1.6","signal-utils":"0.21.1","@types/express":"^5.0.6","@grammyjs/types":"^3.25.0","oxlint-tsgolint":"^0.18.1","@lit-labs/signals":"^0.2.0","@types/markdown-it":"^14.1.2","@vitest/coverage-v8":"^4.1.2","@types/qrcode-terminal":"^0.12.2","@typescript/native-preview":"7.0.0-dev.20260401.1"},"peerDependencies":{"node-llama-cpp":"3.18.1","@napi-rs/canvas":"^0.1.89"},"optionalDependencies":{"openshell":"0.1.0","@matrix-org/matrix-sdk-crypto-nodejs":"^0.4.0"},"peerDependenciesMeta":{"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openclaw_2026.4.2_1775156522187_0.3513204854482128","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-01-29T11:08:11.861Z","modified":"2026-04-02T19:34:57.938Z","0.0.1":"2026-01-29T11:08:12.101Z","2026.1.29-beta.1":"2026-01-30T02:20:55.235Z","2026.1.29-beta.2":"2026-01-30T03:02:11.646Z","2026.1.29-beta.3":"2026-01-30T03:11:31.731Z","2026.1.29-beta.4":"2026-01-30T03:28:15.173Z","2026.1.29-beta.5":"2026-01-30T03:38:47.268Z","2026.1.29-beta.7":"2026-01-30T04:02:58.217Z","2026.1.29":"2026-01-30T04:49:17.280Z","2026.1.30":"2026-01-31T13:11:58.089Z","2026.2.1":"2026-02-02T11:45:27.606Z","2026.2.2":"2026-02-04T00:56:41.932Z","2026.2.2-1":"2026-02-04T01:27:05.304Z","2026.2.2-2":"2026-02-04T01:32:47.566Z","2026.2.2-3":"2026-02-04T02:07:15.985Z","2026.2.3":"2026-02-05T01:38:27.585Z","2026.2.3-1":"2026-02-05T07:58:05.642Z","2026.2.6":"2026-02-07T01:50:47.396Z","2026.2.6-1":"2026-02-07T06:58:31.167Z","2026.2.6-2":"2026-02-07T08:33:28.417Z","2026.2.6-3":"2026-02-07T08:46:48.158Z","2026.2.9":"2026-02-09T19:01:11.300Z","2026.2.12":"2026-02-13T01:53:22.639Z","2026.2.13":"2026-02-14T03:20:08.219Z","2026.2.14":"2026-02-15T02:59:48.267Z","2026.2.15":"2026-02-16T03:56:42.422Z","2026.2.17":"2026-02-18T02:47:54.422Z","2026.2.19":"2026-02-19T16:05:33.610Z","2026.2.19-1":"2026-02-19T16:48:15.099Z","2026.2.19-2":"2026-02-19T17:02:05.631Z","2026.2.21":"2026-02-21T16:02:01.230Z","2026.2.21-1":"2026-02-21T16:42:58.440Z","2026.2.21-2":"2026-02-21T17:10:33.153Z","2026.2.22":"2026-02-23T00:36:27.582Z","2026.2.22-1":"2026-02-23T01:04:08.398Z","2026.2.22-2":"2026-02-23T01:19:21.625Z","2026.2.23-beta.1":"2026-02-24T04:55:42.721Z","2026.2.23":"2026-02-24T05:40:17.896Z","2026.2.24":"2026-02-25T02:50:19.980Z","2026.2.25-beta.1":"2026-02-26T03:43:46.305Z","2026.2.25":"2026-02-26T04:16:34.010Z","2026.2.26":"2026-02-26T23:59:10.915Z","2026.3.1-beta.1":"2026-03-02T04:37:28.953Z","2026.3.1":"2026-03-02T04:50:50.547Z","2026.3.2-beta.1":"2026-03-03T03:42:30.514Z","2026.3.2":"2026-03-03T04:36:54.843Z","2026.3.7-beta.1":"2026-03-08T04:46:48.332Z","2026.3.7":"2026-03-08T05:46:01.183Z","2026.3.8-beta.1":"2026-03-09T06:57:10.754Z","2026.3.8":"2026-03-09T07:44:44.237Z","2026.3.11-beta.1":"2026-03-12T04:17:45.649Z","2026.3.11":"2026-03-12T05:05:47.469Z","2026.3.12":"2026-03-13T04:13:28.358Z","2026.3.13-beta.1":"2026-03-14T05:01:32.040Z","2026.3.13":"2026-03-14T05:36:38.206Z","2026.3.22-beta.1":"2026-03-23T09:47:46.993Z","2026.3.22":"2026-03-23T11:10:33.721Z","2026.3.23-beta.1":"2026-03-23T19:17:05.268Z","2026.3.23":"2026-03-23T23:15:44.243Z","2026.3.23-1":"2026-03-24T00:44:11.918Z","2026.3.23-2":"2026-03-24T03:09:17.478Z","2026.3.24-beta.1":"2026-03-25T12:19:20.492Z","2026.3.24-beta.2":"2026-03-25T14:32:33.713Z","2026.3.24":"2026-03-25T16:57:13.942Z","2026.3.28-beta.1":"2026-03-28T23:03:29.623Z","2026.3.28":"2026-03-29T02:02:57.581Z","2026.3.31-beta.1":"2026-03-31T20:12:46.266Z","2026.3.31":"2026-03-31T21:28:37.089Z","2026.4.1-beta.1":"2026-04-01T15:52:31.971Z","2026.4.1":"2026-04-01T17:29:53.692Z","2026.4.2":"2026-04-02T19:02:03.564Z"},"bugs":{"url":"https://github.com/openclaw/openclaw/issues"},"license":"MIT","homepage":"https://github.com/openclaw/openclaw#readme","keywords":[],"repository":{"url":"git+https://github.com/openclaw/openclaw.git","type":"git"},"description":"Multi-channel AI gateway with extensible messaging integrations","maintainers":[{"name":"steipete","email":"steipete@gmail.com"}],"readme":"","readmeFilename":""}